Compare commits
4 commits
0de6e8453f
...
7b5d149ecc
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b5d149ecc | |||
| 517a25d91d | |||
| ada7eb3cdd | |||
| 358e6e59e3 |
70 changed files with 1738 additions and 1268 deletions
|
|
@ -1,3 +1,3 @@
|
||||||
# Microsites
|
# Websites
|
||||||
|
|
||||||
Monorepo of my microsites
|
Monorepo of my websites
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@
|
||||||
"format": "prettier --write \"**/*.{js,cjs,mjs,ts,tsx,md,mdx}\""
|
"format": "prettier --write \"**/*.{js,cjs,mjs,ts,tsx,md,mdx}\""
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint-config-custom": "workspace:*",
|
"eslint": "^8.42.0",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-config-turbo": "^1.10.1",
|
||||||
"prettier": "latest",
|
"prettier": "latest",
|
||||||
"prettier-plugin-tailwindcss": "^0.3.0",
|
"prettier-plugin-tailwindcss": "^0.3.0",
|
||||||
"turbo": "latest"
|
"turbo": "latest"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"name": "config",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"dependencies": {}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
content: [
|
|
||||||
'../../packages/ui/components/**/*.{ts,tsx}',
|
|
||||||
'./src/**/*.{ts,tsx}',
|
|
||||||
'../../packages/ui/**/*.{js,ts,jsx,tsx}',
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {}
|
|
||||||
},
|
|
||||||
plugins: []
|
|
||||||
}
|
|
||||||
5
packages/content/package.json
Normal file
5
packages/content/package.json
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "content",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
11
packages/content/src/training/kubernetes.md
Normal file
11
packages/content/src/training/kubernetes.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
title: Kubernetes školení
|
||||||
|
slug: kubernetes
|
||||||
|
description: TODO
|
||||||
|
image: ../images/kubernetes.png
|
||||||
|
price:
|
||||||
|
open: 9000
|
||||||
|
corporate: 29000
|
||||||
|
days: 2
|
||||||
|
featured: true
|
||||||
|
---
|
||||||
11
packages/content/src/training/terraform.md
Normal file
11
packages/content/src/training/terraform.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
title: Terraform školení
|
||||||
|
slug: terraform
|
||||||
|
description: TODO
|
||||||
|
image: ../images/terraform.png
|
||||||
|
price:
|
||||||
|
open: 5000
|
||||||
|
corporate: 19000
|
||||||
|
days: 1
|
||||||
|
featured: false
|
||||||
|
---
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
extends: ["next", "turbo", "prettier"],
|
|
||||||
rules: {
|
|
||||||
"@next/next/no-html-link-for-pages": "off",
|
|
||||||
"react/jsx-key": "off",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
"name": "eslint-config-custom",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"main": "index.js",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"eslint": "^8.0.0",
|
|
||||||
"eslint-config-next": "^13.0.0",
|
|
||||||
"eslint-config-prettier": "^8.3.0",
|
|
||||||
"eslint-plugin-react": "7.32.2",
|
|
||||||
"eslint-config-turbo": "latest"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"typescript": "^4.7.4"
|
|
||||||
},
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
packages/training-theme/src/Layout.tsx
Normal file
0
packages/training-theme/src/Layout.tsx
Normal file
0
packages/training-theme/src/components/Container.tsx
Normal file
0
packages/training-theme/src/components/Container.tsx
Normal file
0
packages/training-theme/src/components/Dates.tsx
Normal file
0
packages/training-theme/src/components/Dates.tsx
Normal file
0
packages/training-theme/src/components/Footer.tsx
Normal file
0
packages/training-theme/src/components/Footer.tsx
Normal file
0
packages/training-theme/src/components/Header.tsx
Normal file
0
packages/training-theme/src/components/Header.tsx
Normal file
|
|
@ -1,3 +0,0 @@
|
||||||
# `tsconfig`
|
|
||||||
|
|
||||||
These are base shared `tsconfig.json`s from which all other `tsconfig.json`'s inherit from.
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
|
||||||
"display": "Default",
|
|
||||||
"compilerOptions": {
|
|
||||||
"composite": false,
|
|
||||||
"declaration": true,
|
|
||||||
"declarationMap": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"inlineSources": false,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"moduleResolution": "node",
|
|
||||||
"noUnusedLocals": false,
|
|
||||||
"noUnusedParameters": false,
|
|
||||||
"preserveWatchOutput": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"strict": true
|
|
||||||
},
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
|
||||||
"display": "Next.js",
|
|
||||||
"extends": "./base.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
|
||||||
"allowJs": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"strict": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"noEmit": true,
|
|
||||||
"incremental": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"module": "esnext",
|
|
||||||
"resolveJsonModule": true,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"jsx": "preserve"
|
|
||||||
},
|
|
||||||
"include": ["src", "next-env.d.ts"],
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"name": "tsconfig",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"files": [
|
|
||||||
"base.json",
|
|
||||||
"nextjs.json",
|
|
||||||
"react-library.json"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
|
||||||
"display": "React Library",
|
|
||||||
"extends": "./base.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"jsx": "react-jsx",
|
|
||||||
"lib": ["ES2015"],
|
|
||||||
"module": "ESNext",
|
|
||||||
"target": "es6"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
import * as React from "react";
|
|
||||||
export const Button = () => {
|
|
||||||
return <button>Boop</button>;
|
|
||||||
};
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
import * as React from "react";
|
|
||||||
export * from "./Button";
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
"name": "ui",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"main": "./index.tsx",
|
|
||||||
"types": "./index.tsx",
|
|
||||||
"license": "MIT",
|
|
||||||
"scripts": {
|
|
||||||
"lint": "eslint *.ts*"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/react": "^18.0.17",
|
|
||||||
"@types/react-dom": "^18.0.6",
|
|
||||||
"eslint": "^8.0.0",
|
|
||||||
"eslint-config-custom": "workspace:*",
|
|
||||||
"react": "^18.2.0",
|
|
||||||
"tsconfig": "workspace:*",
|
|
||||||
"typescript": "^4.5.2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/postcss.config')
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/tailwind.config')
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "tsconfig/react-library.json",
|
|
||||||
"include": ["."],
|
|
||||||
"exclude": ["dist", "build", "node_modules"]
|
|
||||||
}
|
|
||||||
2070
pnpm-lock.yaml
generated
2070
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +0,0 @@
|
||||||
const withTM = require("next-transpile-modules")(["ui"]);
|
|
||||||
|
|
||||||
module.exports = withTM({
|
|
||||||
reactStrictMode: true,
|
|
||||||
});
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
"name": "argocd-skoleni.cz",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"dev": "next dev",
|
|
||||||
"build": "next build",
|
|
||||||
"start": "next start",
|
|
||||||
"lint": "next lint"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"next": "13.4.4",
|
|
||||||
"react": "18.2.0",
|
|
||||||
"react-dom": "18.2.0",
|
|
||||||
"ui": "workspace:*",
|
|
||||||
"config": "workspace:*"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/core": "^7.0.0",
|
|
||||||
"eslint-config-custom": "workspace:*",
|
|
||||||
"eslint": "8.41.0",
|
|
||||||
"next-transpile-modules": "10.0.0",
|
|
||||||
"tsconfig": "workspace:*",
|
|
||||||
"@types/node": "^18.0.0",
|
|
||||||
"@types/react": "18.2.7",
|
|
||||||
"typescript": "^4.5.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/postcss.config')
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { Button } from "ui";
|
|
||||||
|
|
||||||
export default function Web() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>argocd-skoleni.cz</h1>
|
|
||||||
<Button />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/tailwind.config')
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "tsconfig/nextjs.json",
|
|
||||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
extends: ["custom"],
|
|
||||||
};
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
First, run the development server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
||||||
|
|
||||||
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
|
|
||||||
|
|
||||||
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
|
|
||||||
|
|
||||||
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
|
|
||||||
|
|
||||||
## Learn More
|
|
||||||
|
|
||||||
To learn more about Next.js, take a look at the following resources:
|
|
||||||
|
|
||||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
||||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
||||||
|
|
||||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
|
||||||
|
|
||||||
## Deploy on Vercel
|
|
||||||
|
|
||||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
|
|
||||||
|
|
||||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
|
||||||
5
sites/kubernetes-skoleni.cz/next-env.d.ts
vendored
5
sites/kubernetes-skoleni.cz/next-env.d.ts
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
/// <reference types="next" />
|
|
||||||
/// <reference types="next/image-types/global" />
|
|
||||||
|
|
||||||
// NOTE: This file should not be edited
|
|
||||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
const withTM = require("next-transpile-modules")(["ui"]);
|
|
||||||
|
|
||||||
module.exports = withTM({
|
|
||||||
reactStrictMode: true,
|
|
||||||
});
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
"name": "kubernetes-skoleni.cz",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"dev": "next dev",
|
|
||||||
"build": "next build",
|
|
||||||
"start": "next start",
|
|
||||||
"lint": "next lint"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"next": "13.4.4",
|
|
||||||
"react": "18.2.0",
|
|
||||||
"react-dom": "18.2.0",
|
|
||||||
"ui": "workspace:*",
|
|
||||||
"config": "workspace:*"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/core": "^7.0.0",
|
|
||||||
"eslint-config-custom": "workspace:*",
|
|
||||||
"eslint": "8.41.0",
|
|
||||||
"next-transpile-modules": "10.0.0",
|
|
||||||
"tsconfig": "workspace:*",
|
|
||||||
"@types/node": "^18.0.0",
|
|
||||||
"@types/react": "18.2.7",
|
|
||||||
"typescript": "^4.5.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/postcss.config')
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { Button } from "ui";
|
|
||||||
|
|
||||||
export default function Web() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>kubernetes-skoleni.cz</h1>
|
|
||||||
<Button />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/tailwind.config')
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "tsconfig/nextjs.json",
|
|
||||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
extends: ["custom"],
|
|
||||||
};
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
First, run the development server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
||||||
|
|
||||||
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
|
|
||||||
|
|
||||||
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
|
|
||||||
|
|
||||||
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
|
|
||||||
|
|
||||||
## Learn More
|
|
||||||
|
|
||||||
To learn more about Next.js, take a look at the following resources:
|
|
||||||
|
|
||||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
||||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
||||||
|
|
||||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
|
||||||
|
|
||||||
## Deploy on Vercel
|
|
||||||
|
|
||||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
|
|
||||||
|
|
||||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
|
||||||
5
sites/r11y.news/next-env.d.ts
vendored
5
sites/r11y.news/next-env.d.ts
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
/// <reference types="next" />
|
|
||||||
/// <reference types="next/image-types/global" />
|
|
||||||
|
|
||||||
// NOTE: This file should not be edited
|
|
||||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
const withTM = require("next-transpile-modules")(["ui"]);
|
|
||||||
|
|
||||||
module.exports = withTM({
|
|
||||||
reactStrictMode: true,
|
|
||||||
});
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/postcss.config')
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { Button } from "ui";
|
|
||||||
|
|
||||||
export default function Web() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>Web</h1>
|
|
||||||
<Button />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
module.exports = require('config/tailwind.config')
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "tsconfig/nextjs.json",
|
|
||||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
27
sites/terraform-skoleni.cz/app/layout.tsx
Normal file
27
sites/terraform-skoleni.cz/app/layout.tsx
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { Footer } from 'components/Footer';
|
||||||
|
import 'styles/global.css';
|
||||||
|
import { Metadata } from 'next';
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: {
|
||||||
|
default: 'Terraform školení - Vojtěch Mareš',
|
||||||
|
template: '%s | Next.js App Router',
|
||||||
|
},
|
||||||
|
description:
|
||||||
|
'Terraform školení pro začátečníky i pokročilé | Školí Vojtěch Mareš - DevOps konzultant, lektor a mentor',
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function RootLayout({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<html lang="cs">
|
||||||
|
<body>
|
||||||
|
{children}
|
||||||
|
<Footer />
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
}
|
||||||
26
sites/terraform-skoleni.cz/app/page.tsx
Normal file
26
sites/terraform-skoleni.cz/app/page.tsx
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { Container } from "components/Container";
|
||||||
|
|
||||||
|
import { Hero } from "../components/Hero";
|
||||||
|
import { Dates } from "../components/Dates";
|
||||||
|
import { Price } from "../components/Price";
|
||||||
|
import { CourseDetails } from "components/CourseDetails";
|
||||||
|
|
||||||
|
export default function Page() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<main>
|
||||||
|
<Hero />
|
||||||
|
<div className="bg-amber-500 h-8" />
|
||||||
|
{/* <Dates /> */}
|
||||||
|
<Container className="mt-12 md:grid md:grid-cols-5 md:gap-x-4 md:gap-y-4">
|
||||||
|
<div className="md:col-span-3">
|
||||||
|
<CourseDetails />
|
||||||
|
</div>
|
||||||
|
<div className="mt-8 md:col-span-2 md:mt-0">
|
||||||
|
<Price />
|
||||||
|
</div>
|
||||||
|
</Container>
|
||||||
|
</main>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
75
sites/terraform-skoleni.cz/components/Button.tsx
Normal file
75
sites/terraform-skoleni.cz/components/Button.tsx
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
import Link from "next/link";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import { ReactNode } from "react";
|
||||||
|
|
||||||
|
const baseStyles = {
|
||||||
|
solid:
|
||||||
|
"group inline-flex items-center justify-center rounded-full font-semibold focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2",
|
||||||
|
outline:
|
||||||
|
"group inline-flex ring-1 items-center justify-center rounded-full focus:outline-none",
|
||||||
|
};
|
||||||
|
|
||||||
|
const variantStyles = {
|
||||||
|
solid: {
|
||||||
|
black:
|
||||||
|
"bg-black text-white hover:bg-slate-700 active:bg-slate-800 focus-visible:outline-slate-900",
|
||||||
|
amber:
|
||||||
|
"bg-amber-500 text-white hover:bg-amber-600 active:bg-amber-800 focus-visible:outline-amber-500",
|
||||||
|
white:
|
||||||
|
"bg-white text-black hover:bg-amber-50 active:bg-amber-200 focus-visible:outline-white",
|
||||||
|
},
|
||||||
|
outline: {
|
||||||
|
black:
|
||||||
|
"ring-slate-200 text-black hover:ring-slate-300 active:bg-slate-100 focus-visible:outline-amber-500 focus-visible:ring-slate-300",
|
||||||
|
white:
|
||||||
|
"ring-slate-700 text-white hover:ring-slate-500 active:ring-slate-700 focus-visible:outline-white",
|
||||||
|
amber: "", // Outline buttons cannot be amber
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const transitionStyle = "transition duration-150 ease-in-out";
|
||||||
|
|
||||||
|
const sizeStyles = {
|
||||||
|
medium: "px-4 py-2 text-sm",
|
||||||
|
large: "px-8 py-4 text-base",
|
||||||
|
};
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
variant?: "solid" | "outline";
|
||||||
|
color?: "black" | "white" | "amber";
|
||||||
|
size?: "medium" | "large";
|
||||||
|
className?: string;
|
||||||
|
href?: string;
|
||||||
|
children?: ReactNode;
|
||||||
|
};
|
||||||
|
|
||||||
|
export function Button({
|
||||||
|
variant = "solid",
|
||||||
|
color = "black",
|
||||||
|
size = "medium",
|
||||||
|
className,
|
||||||
|
href,
|
||||||
|
children,
|
||||||
|
}: Props) {
|
||||||
|
if (variant === "outline" && color === "amber") {
|
||||||
|
throw new Error("Outline buttons cannot be amber");
|
||||||
|
}
|
||||||
|
|
||||||
|
className = clsx(
|
||||||
|
baseStyles[variant],
|
||||||
|
variantStyles[variant][color],
|
||||||
|
sizeStyles[size],
|
||||||
|
transitionStyle,
|
||||||
|
className
|
||||||
|
);
|
||||||
|
|
||||||
|
if (href !== undefined) {
|
||||||
|
return (
|
||||||
|
<Link href={href} className={className}>
|
||||||
|
{children}
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return <button className={className}>{children}</button>;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
sites/terraform-skoleni.cz/components/Container.tsx
Normal file
15
sites/terraform-skoleni.cz/components/Container.tsx
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
import clsx from "clsx";
|
||||||
|
import { ReactNode } from "react";
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
className?: string;
|
||||||
|
children?: ReactNode;
|
||||||
|
};
|
||||||
|
|
||||||
|
export function Container({ className, children }: Props) {
|
||||||
|
return (
|
||||||
|
<div className={clsx("mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", className)}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
44
sites/terraform-skoleni.cz/components/CourseDetails.tsx
Normal file
44
sites/terraform-skoleni.cz/components/CourseDetails.tsx
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
export function CourseDetails() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<h1 className="text-2xl font-medium">Co to je Terraform a k čemu se používá?</h1>
|
||||||
|
<p className="text-slate-700">
|
||||||
|
Terraform je nástroj, který se používá ke správě infrastruktury v cloudu, jak veřejném (AWS, Azure, GCP), tak privátním (OpenStack, VMware vSphere).
|
||||||
|
Terraform Vám umožní spravovat infrastruktutru jako kód, to znamená verzovanou v Gitu, přidávání resources pomocí merge (pull) requestů a mnoho dalších výhod. Infrastrukturu můžete dále nasadit do testovacího prostředí přesně tak, jako je v produkci bez zbytečného úsilí. O všech komponentách máte přehled a můžete predikovat ceny. Konec klikání infrastruktury, zkuste Terraform.
|
||||||
|
Terraform umožnuje spravovat více cloudových providerů současne, zároveň umožnuje pracovat s hibridními cloudy (část v privátním cloudu, část ve veřejném).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h1 className="text-2xl font-medium">Jak školení probíhá</h1>
|
||||||
|
<p className="text-slate-700">Školení je formou workshopu, všechno si podrobně vyzkoušíme a vysvětlíme. Ukážeme si jak Terraform pracuje, jak jej používat v teamu a jak jím spravovat infrastukturu. Uděláme si příklad infrastruktury jednoduché aplikace, kde nastavíme vše - od DNS, přes Kubernetes cluster po S3 file storage.</p>
|
||||||
|
|
||||||
|
<h1 className="text-2xl font-medium">Co Vás naučím</h1>
|
||||||
|
<ul>
|
||||||
|
<li className="my-0">Základní koncept Terraformu a "Infrastructure as Code"</li>
|
||||||
|
<li className="my-0">Výhody Terraformu proti Ansible, Puppetu, ...</li>
|
||||||
|
<li className="my-0">Konfigurace Terraformu pro práci v teamu</li>
|
||||||
|
<li className="my-0">Ovládání Terraform CLI</li>
|
||||||
|
<li className="my-0">Úvod do Terraform Configuration Language (HCL)</li>
|
||||||
|
<li className="my-0">Terraform Providers - napojení na cloudy</li>
|
||||||
|
<li className="my-0">Práce s resources v Terraformu</li>
|
||||||
|
<li className="my-0">Terraform moduly</li>
|
||||||
|
<li className="my-0">Best Practice</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h1 className="text-2xl font-medium">Pro koho je školení určeno</h1>
|
||||||
|
<p className="text-slate-700">Školení je určeno pro DevOps a adminy, kteří chtějí lépe a efektivněji spravovat infrastrukturu. Zároveň také pro vývojáře, kteří se starají o nejakou infrastrukturu v cloudech.</p>
|
||||||
|
|
||||||
|
<h1 className="text-2xl font-medium">Předchozí znalosti</h1>
|
||||||
|
<ul>
|
||||||
|
<li className="my-0">Základní znalost veřejných cloudů (AWS, DigitalOcean, Azure, ...)</li>
|
||||||
|
<li className="my-0">Základy práce v terminálu</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h1 className="text-2xl font-medium">Technické požadavky</h1>
|
||||||
|
<ul>
|
||||||
|
<li className="my-0">Nainstalovaný Terraform</li>
|
||||||
|
<li className="my-0">Přístup na internet (ideálně bez korporatni proxy)</li>
|
||||||
|
<li className="my-0">Vlastní účet v DigitalOceanu výhodou</li>
|
||||||
|
</ul>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
35
sites/terraform-skoleni.cz/components/Dates.tsx
Normal file
35
sites/terraform-skoleni.cz/components/Dates.tsx
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
export function Dates() {
|
||||||
|
return (
|
||||||
|
<div className="mt-8 mx-auto max-w-3xl px-4 sm:px-6 lg:px-8">
|
||||||
|
<h2 className="text-4xl">Veřejné termíny</h2>
|
||||||
|
<div className="mt-8 flow-root">
|
||||||
|
<div className="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
|
||||||
|
<div className="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8">
|
||||||
|
<table className="min-w-full divide-y divide-gray-300">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col" className="py-3.5 pl-4 pr-3 text-left font-semibold text-gray-900 sm:pl-0">Místo</th>
|
||||||
|
<th scope="col" className="px-3 py-3.5 text-left font-semibold text-gray-900">Datum</th>
|
||||||
|
<th scope="col" className="px-3 py-3.5 text-left font-semibold text-gray-900">Volná místa?</th>
|
||||||
|
<th scope="col" className="relative py-3.5 pl-3 pr-4 sm:pr-0">
|
||||||
|
<span className="sr-only">Registrovat</span>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody className="divide-y divide-gray-200">
|
||||||
|
<tr>
|
||||||
|
<td className="whitespace-nowrap py-4 pl-4 pr-3 font-medium text-gray-900 sm:pl-0">Praha</td>
|
||||||
|
<td className="whitespace-nowrap px-3 py-4 text-gray-500">30. května 2023</td>
|
||||||
|
<td className="whitespace-nowrap px-3 py-4 text-gray-500">Ano</td>
|
||||||
|
<td className="relative whitespace-nowrap py-4 pl-3 pr-4 text-right font-medium sm:pr-0">
|
||||||
|
<a href="#" className="underline">Registrovat<span className="sr-only">, na termín školení</span></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
159
sites/terraform-skoleni.cz/components/Footer.tsx
Normal file
159
sites/terraform-skoleni.cz/components/Footer.tsx
Normal file
|
|
@ -0,0 +1,159 @@
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
import { Container } from "./Container";
|
||||||
|
import { Button } from "./Button";
|
||||||
|
|
||||||
|
export function Footer() {
|
||||||
|
return (
|
||||||
|
<footer className="bg-slate-50">
|
||||||
|
<Container className="py-8">
|
||||||
|
<div className="py-4">
|
||||||
|
<div className="grid grid-cols-1 gap-y-6 lg:grid-cols-4 lg:gap-4">
|
||||||
|
<div>
|
||||||
|
<h4 className="text-lg font-medium">Vojtěch Mareš</h4>
|
||||||
|
<ul className="mt-4 list-none">
|
||||||
|
<li>
|
||||||
|
<Link href="tel:+420732490651" className="underline">
|
||||||
|
+420 732 490 651
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link
|
||||||
|
href="mailto:iam@vojtechmares.com"
|
||||||
|
className="underline"
|
||||||
|
>
|
||||||
|
iam@vojtechmares.com
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="mt-4">
|
||||||
|
Company ID
|
||||||
|
<br />
|
||||||
|
<code id="company-id">06999280</code>
|
||||||
|
</li>
|
||||||
|
<li className="mt-2">
|
||||||
|
VAT ID
|
||||||
|
<br />
|
||||||
|
<code id="vat-id">CZ9709180063</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-medium">Další školení</h3>
|
||||||
|
<ul className="mt-4 list-disc pl-4">
|
||||||
|
<li>
|
||||||
|
<Link href="https://www.vojtechmares.com/skoleni/kubernetes" className="underline">
|
||||||
|
Kubernetes
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="https://www.vojtechmares.com/skoleni/git" className="underline">Git</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="https://www.vojtechmares.com/skoleni/terraform" className="underline">
|
||||||
|
Terraform
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="https://www.vojtechmares.com/skoleni/argocd" className="underline">ArgoCD</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-medium">Důležité odkazy</h3>
|
||||||
|
<ul className="mt-4 list-disc pl-4">
|
||||||
|
<li>
|
||||||
|
<Link
|
||||||
|
href="https://vojtechmares.com/?utm_source=microsite&utm_medium=terraform-skoleni.cz&utm_content=link"
|
||||||
|
className="underline"
|
||||||
|
>
|
||||||
|
vojtechmares.com
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link
|
||||||
|
href="https://skoleni.io/?utm_source=vojtechmares&utm_medium=vojtechmares-com-website&utm_content=link"
|
||||||
|
className="underline"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
Skoleni.io
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link
|
||||||
|
href="https://devopsaci.cz/?utm_source=vojtechmares&utm_medium=vojtechmares-com-website&utm_content=link"
|
||||||
|
className="underline"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
DevOpsaci.cz
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-medium">Máte zájem o školení?</h3>
|
||||||
|
<p className="mt-4">
|
||||||
|
TBD.
|
||||||
|
</p>
|
||||||
|
<Button
|
||||||
|
href="mailto:iam@vojtechmares.com"
|
||||||
|
className="mt-5"
|
||||||
|
>
|
||||||
|
Napište mi
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-col items-center border-t border-slate-400/10 py-10 sm:flex-row-reverse sm:justify-between">
|
||||||
|
<div className="flex gap-x-6">
|
||||||
|
<Link
|
||||||
|
href="https://www.linkedin.com/in/vojtech-mares/"
|
||||||
|
target="_blank"
|
||||||
|
className="group"
|
||||||
|
aria-label="Vojtěch Mareš na LinkedIn"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
// role="img"
|
||||||
|
// viewBox="0 0 24 24"
|
||||||
|
// xmlns="http://www.w3.org/2000/svg"
|
||||||
|
aria-hidden="true"
|
||||||
|
className="h-6 w-6 fill-black group-hover:fill-slate-700"
|
||||||
|
>
|
||||||
|
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
|
||||||
|
</svg>
|
||||||
|
</Link>
|
||||||
|
<Link
|
||||||
|
href="https://twitter.com/vojtechmares_"
|
||||||
|
target="_blank"
|
||||||
|
className="group"
|
||||||
|
aria-label="Vojtěch Mareš na Twitter"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
className="h-6 w-6 fill-black group-hover:fill-slate-700"
|
||||||
|
>
|
||||||
|
<path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0 0 22 5.92a8.19 8.19 0 0 1-2.357.646 4.118 4.118 0 0 0 1.804-2.27 8.224 8.224 0 0 1-2.605.996 4.107 4.107 0 0 0-6.993 3.743 11.65 11.65 0 0 1-8.457-4.287 4.106 4.106 0 0 0 1.27 5.477A4.073 4.073 0 0 1 2.8 9.713v.052a4.105 4.105 0 0 0 3.292 4.022 4.093 4.093 0 0 1-1.853.07 4.108 4.108 0 0 0 3.834 2.85A8.233 8.233 0 0 1 2 18.407a11.615 11.615 0 0 0 6.29 1.84" />
|
||||||
|
</svg>
|
||||||
|
</Link>
|
||||||
|
<Link
|
||||||
|
href="https://github.com/vojtechmares"
|
||||||
|
target="_blank"
|
||||||
|
className="group"
|
||||||
|
aria-label="Vojtěch Mareš na GitHub"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
className="h-6 w-6 fill-black group-hover:fill-slate-700"
|
||||||
|
>
|
||||||
|
<path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844a9.59 9.59 0 0 1 2.504.337c1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.02 10.02 0 0 0 22 12.017C22 6.484 17.522 2 12 2Z" />
|
||||||
|
</svg>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
<p className="mt-6 text-slate-700 sm:mt-0">
|
||||||
|
Copyright © {new Date().getFullYear()} Vojtěch Mareš. Všechna
|
||||||
|
práva vyhrazena.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Container>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
34
sites/terraform-skoleni.cz/components/Hero.tsx
Normal file
34
sites/terraform-skoleni.cz/components/Hero.tsx
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
import Image from 'next/image';
|
||||||
|
import clsx from 'clsx';
|
||||||
|
import { Container } from './Container';
|
||||||
|
import terraformLogo from '../images/terraform.svg';
|
||||||
|
|
||||||
|
export function Hero() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="bg-black pt-16 pb-16">
|
||||||
|
<Container className="flex flex-col justify-center md:flex-row md:justify-around md:items-end">
|
||||||
|
<Image
|
||||||
|
src={terraformLogo}
|
||||||
|
width="1500"
|
||||||
|
height="1500"
|
||||||
|
alt=""
|
||||||
|
priority
|
||||||
|
className={clsx(
|
||||||
|
"h-32 w-32",
|
||||||
|
terraformLogo.src.endsWith(".svg") ? "invert" : "rounded-full"
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
<div className="self-center">
|
||||||
|
<h1 className="text-center font-display text-5xl font-medium tracking-tight text-white sm:text-7xl leading-10">
|
||||||
|
Terraform školení
|
||||||
|
</h1>
|
||||||
|
<p className="mt-6 max-w-xl text-xl tracking-tight text-slate-100">
|
||||||
|
Školí: Vojtěch Mareš - DevOps konzultant, lektor a mentor
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Container>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
45
sites/terraform-skoleni.cz/components/Price.tsx
Normal file
45
sites/terraform-skoleni.cz/components/Price.tsx
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
import { Button } from "./Button"
|
||||||
|
|
||||||
|
export function Price() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="mt-8 overflow-hidden rounded-lg bg-slate-50 shadow md:mt-0">
|
||||||
|
<div className="px-4 pt-5 sm:px-6">
|
||||||
|
<h3 className="text-lg font-medium leading-6 text-black">
|
||||||
|
Cena za školení
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div className=" px-4 pb-5 pt-2">
|
||||||
|
<dl className="sm:divide-y sm:divide-slate-400">
|
||||||
|
<div className="py-4 sm:grid sm:grid-cols-2 sm:gap-4 sm:py-5 sm:px-6">
|
||||||
|
<dt className="font-medium text-slate-700">
|
||||||
|
Veřejný termín
|
||||||
|
</dt>
|
||||||
|
<dd className="mt-1 text-black sm:mt-0">
|
||||||
|
5500 CZK bez DPH
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<div className="py-4 sm:grid sm:grid-cols-2 sm:gap-4 sm:py-5 sm:px-6">
|
||||||
|
<dt className="font-medium text-slate-700">
|
||||||
|
Firemní školení
|
||||||
|
</dt>
|
||||||
|
<dd className="mt-1 text-black sm:mt-0">
|
||||||
|
19 000 CZK bez DPH
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mt-8">
|
||||||
|
<Button
|
||||||
|
variant="solid"
|
||||||
|
color="amber"
|
||||||
|
className="w-full text-lg font-medium"
|
||||||
|
href="mailto:iam@vojtechmares.com"
|
||||||
|
>
|
||||||
|
Nezávazně poptat
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
BIN
sites/terraform-skoleni.cz/images/terraform.png
Normal file
BIN
sites/terraform-skoleni.cz/images/terraform.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
1
sites/terraform-skoleni.cz/images/terraform.svg
Normal file
1
sites/terraform-skoleni.cz/images/terraform.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Terraform</title><path d="M1.44 0v7.575l6.561 3.79V3.787zm21.12 4.227l-6.561 3.791v7.574l6.56-3.787zM8.72 4.23v7.575l6.561 3.787V8.018zm0 8.405v7.575L15.28 24v-7.578z"/></svg>
|
||||||
|
After Width: | Height: | Size: 253 B |
6
sites/terraform-skoleni.cz/next.config.js
Normal file
6
sites/terraform-skoleni.cz/next.config.js
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
const nextConfig = {
|
||||||
|
transpilePackages: ['ui'],
|
||||||
|
reactStrictMode: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = nextConfig;
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "r11y.news",
|
"name": "terraform-skoleni.cz",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
@ -9,20 +9,20 @@
|
||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"clsx": "^1.2.1",
|
||||||
"next": "13.4.4",
|
"next": "13.4.4",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0"
|
||||||
"ui": "workspace:*",
|
|
||||||
"config": "workspace:*"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.0.0",
|
"@babel/core": "^7.22.1",
|
||||||
"eslint-config-custom": "workspace:*",
|
"@types/node": "^18.16.16",
|
||||||
"eslint": "8.41.0",
|
|
||||||
"next-transpile-modules": "10.0.0",
|
|
||||||
"tsconfig": "workspace:*",
|
|
||||||
"@types/node": "^18.0.0",
|
|
||||||
"@types/react": "18.2.7",
|
"@types/react": "18.2.7",
|
||||||
"typescript": "^4.5.3"
|
"autoprefixer": "^10.4.14",
|
||||||
|
"eslint": "8.41.0",
|
||||||
|
"eslint-config-next": "^13.0.0",
|
||||||
|
"postcss": "^8.4.24",
|
||||||
|
"tailwindcss": "^3.3.2",
|
||||||
|
"typescript": "5.1.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
8
sites/terraform-skoleni.cz/postcss.config.js
Normal file
8
sites/terraform-skoleni.cz/postcss.config.js
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
// If you want to use other PostCSS plugins, see the following:
|
||||||
|
// https://tailwindcss.com/docs/using-with-preprocessors
|
||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
3
sites/terraform-skoleni.cz/styles/global.css
Normal file
3
sites/terraform-skoleni.cz/styles/global.css
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
10
sites/terraform-skoleni.cz/tailwind.config.js
Normal file
10
sites/terraform-skoleni.cz/tailwind.config.js
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
'./components/**/*.{ts,tsx}',
|
||||||
|
'./app/**/*.{ts,tsx}',
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {}
|
||||||
|
},
|
||||||
|
plugins: []
|
||||||
|
}
|
||||||
44
sites/terraform-skoleni.cz/tsconfig.json
Normal file
44
sites/terraform-skoleni.cz/tsconfig.json
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"composite": false,
|
||||||
|
"declaration": true,
|
||||||
|
"declarationMap": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"inlineSources": false,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"preserveWatchOutput": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"strict": true,
|
||||||
|
"target": "es5",
|
||||||
|
"lib": [
|
||||||
|
"dom",
|
||||||
|
"dom.iterable",
|
||||||
|
"esnext"
|
||||||
|
],
|
||||||
|
"allowJs": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"incremental": true,
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "next"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"next-env.d.ts",
|
||||||
|
"**/*.ts",
|
||||||
|
"**/*.tsx",
|
||||||
|
".next/types/**/*.ts"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in a new issue