Build initial Astro site
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
|
||||
# jetbrains setting folder
|
||||
.idea/
|
||||
@@ -0,0 +1,22 @@
|
||||
## Development
|
||||
|
||||
When starting the dev server, use background mode:
|
||||
|
||||
```
|
||||
astro dev --background
|
||||
```
|
||||
|
||||
Manage the background server with `astro dev stop`, `astro dev status`, and `astro dev logs`.
|
||||
|
||||
## Documentation
|
||||
|
||||
Full documentation: https://docs.astro.build
|
||||
|
||||
Consult these guides before working on related tasks:
|
||||
|
||||
- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/)
|
||||
- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/)
|
||||
- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/)
|
||||
- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/)
|
||||
- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/)
|
||||
- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/)
|
||||
@@ -0,0 +1,33 @@
|
||||
# Influence Tools website
|
||||
|
||||
Astro static site for `influence.tools`.
|
||||
|
||||
## Local development
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
|
||||
The deployable output is `dist/`.
|
||||
|
||||
## Deployment
|
||||
|
||||
The production document root is `/srv/moi-websites/influence-tools` on the
|
||||
Hostinger VPS. Agents should retrieve the dedicated deployment values
|
||||
process-locally from Infisical project `Influence Infrastructure`, environment
|
||||
`prod`, using the following keys:
|
||||
|
||||
- `MOI_HOSTINGER_DEPLOY_HOST`
|
||||
- `MOI_HOSTINGER_DEPLOY_PORT`
|
||||
- `MOI_HOSTINGER_DEPLOY_USER`
|
||||
- `MOI_HOSTINGER_DEPLOY_PRIVATE_KEY`
|
||||
- `MOI_INFLUENCE_TOOLS_SITE_PATH`
|
||||
|
||||
Never commit credentials or copy secret values into this repository.
|
||||
@@ -0,0 +1,5 @@
|
||||
// @ts-check
|
||||
import { defineConfig } from 'astro/config';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({});
|
||||
Generated
+4126
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "influence-tools-web",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"engines": {
|
||||
"node": ">=22.12.0"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^7.3.3"
|
||||
},
|
||||
"allowScripts": {
|
||||
"esbuild": true
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 655 B |
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||
<style>
|
||||
path { fill: #000; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #FFF; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 749 B |
@@ -0,0 +1,55 @@
|
||||
---
|
||||
const title = 'Influence Tools';
|
||||
const description = 'Open tools and durable records for the Ministry of Influence.';
|
||||
---
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<meta name="description" content={description} />
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<header><a class="brand" href="/">influence<span>.tools</span></a><span class="status">BUILDING IN PUBLIC</span></header>
|
||||
<main>
|
||||
<p class="kicker">The Ministry's working layer</p>
|
||||
<h1>Tools for seeing<br /><span>what moves power.</span></h1>
|
||||
<p class="lede">A home for open tools, structured records, and agent-readable work supporting the Ministry of Influence.</p>
|
||||
<div class="grid">
|
||||
<article><span class="number">01</span><h2>Evidence</h2><p>Records designed to show what was observed, where it came from, and how someone else can check it.</p><a href="https://git.influence.tools/Influence-Tools/Ministry">View the public repository →</a></article>
|
||||
<article><span class="number">02</span><h2>Agents</h2><p>Clear structures and durable instructions so people and software can work from the same source of truth.</p><a href="https://wiki.influence.tools">Read the operating wiki →</a></article>
|
||||
<article><span class="number">03</span><h2>Republic OS</h2><p>A version-controlled substrate for representing public institutions, relationships, law, and change.</p><span class="muted">In development</span></article>
|
||||
</div>
|
||||
</main>
|
||||
<footer><span>Influence Tools</span><a href="https://ministryofinfluence.org">Ministry of Influence ↗</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<style>
|
||||
:global(*) { box-sizing: border-box; }
|
||||
:global(html) { background: #e8e6df; color: #191918; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
|
||||
:global(body) { margin: 0; min-height: 100vh; }
|
||||
header, footer { max-width: 1320px; margin: auto; padding: 28px 5vw; display: flex; justify-content: space-between; align-items: center; }
|
||||
.brand { color: #191918; font-size: 1.15rem; font-weight: 800; letter-spacing: -.06em; text-decoration: none; }
|
||||
.brand span { color: #d4492f; }
|
||||
.status, .kicker, .number, .muted { color: #77756f; font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
|
||||
main { max-width: 1320px; margin: auto; padding: 15vh 5vw 12vh; }
|
||||
.kicker { color: #d4492f; }
|
||||
h1 { max-width: 920px; margin: 20px 0; font-size: clamp(3.5rem, 9vw, 8rem); line-height: .9; letter-spacing: -.1em; font-weight: 800; }
|
||||
h1 span { color: #d4492f; }
|
||||
.lede { max-width: 610px; color: #5b5a55; font-size: 1.2rem; line-height: 1.55; }
|
||||
.grid { border-top: 1px solid #aaa8a0; margin-top: 15vh; display: grid; grid-template-columns: repeat(3, 1fr); }
|
||||
article { min-height: 300px; padding: 25px 28px 25px 0; border-right: 1px solid #aaa8a0; margin-right: 28px; display: flex; flex-direction: column; }
|
||||
article:last-child { border: 0; margin-right: 0; }
|
||||
.number { color: #d4492f; }
|
||||
h2 { margin: 55px 0 12px; font-size: 1.35rem; letter-spacing: -.06em; }
|
||||
article p { color: #5b5a55; line-height: 1.6; max-width: 330px; }
|
||||
article a { color: #191918; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; margin-top: auto; }
|
||||
.muted { margin-top: auto; }
|
||||
footer { border-top: 1px solid #aaa8a0; color: #77756f; font-size: .75rem; }
|
||||
footer a { color: #d4492f; }
|
||||
@media (max-width: 750px) { header, footer { padding: 22px 24px; } main { padding: 12vh 24px 10vh; } .status { display: none; } .grid { grid-template-columns: 1fr; gap: 0; } article, article:last-child { border-right: 0; border-bottom: 1px solid #aaa8a0; margin: 0; min-height: 250px; } }
|
||||
</style>
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"extends": "astro/tsconfigs/strict",
|
||||
"include": [".astro/types.d.ts", "**/*"],
|
||||
"exclude": ["dist"]
|
||||
}
|
||||
Reference in New Issue
Block a user