Beautiful
This commit is contained in:
parent
4d8a9dff8e
commit
a5109e1b20
3 changed files with 83 additions and 4 deletions
28
README.md
28
README.md
|
|
@ -1,9 +1,31 @@
|
||||||
# (S)ophie's (S)tatic (S)ite (G)enerator
|
# (S)ophie's (S)tatic (S)ite (G)enerator
|
||||||
|
|
||||||
## Usage
|
Sophie's Static Site Generator (aka. SSSG) is a infnintely expandable SSG based on plugins. It ships with some plugins already included, such as:
|
||||||
`bun add git+https://git.sad.ovh/sophie/sssg`
|
1. A compile time JS runner `sssg/src/plugins/compile-time-js`
|
||||||
|
Example: `{& 1+3 &}` will give you `4` in the generated code
|
||||||
|
2. Development plugin `sssg/src/plugins/dev`
|
||||||
|
Creates a websocket server for instant updates and a HTTP server for serving up data at (by default) `localhost:8080`.
|
||||||
|
3. Image optimizations `sssg/src/plugins/image-optimization`
|
||||||
|
Optimizes all of your images sometimes losslessly. Uses the `sharp` NPM module to re-encode all image files.
|
||||||
|
4. Markdown compiler `sssg/src/plugins/markdown-compiler`
|
||||||
|
Compiles all `.md` files into `.html` files, while taking out the [metadata](metadata.md).
|
||||||
|
5. Markdown metadata extractor `sssg/src/plugins/markdown-metadata`
|
||||||
|
Extracts metadata into a .json file with the same name as the .MD file. Metadata format follows [this format.](metadata.md)
|
||||||
|
6. PostCSS `sssg/src/plugins/postcss`
|
||||||
|
PostCSS plugin, allows you to use PostCSS in your app.
|
||||||
|
7. Typescript compiler `sssg/src/plugins/postcss`
|
||||||
|
Allows you to compile typescript into .js files. Supports TSX with Preact.
|
||||||
|
8. Variables `ssg/src/plugins/variables`
|
||||||
|
Define variables in the build script to later use in the code. `__SOME_VARIABLE__`.
|
||||||
|
|
||||||
## example
|
You can easily create more plugins.
|
||||||
|
|
||||||
|
All plugins are tested induvidually and in different ways. You can run all of the tests with `bun test`, however every commit they're already tested on both Windows and Linux.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
`bun add sssg`
|
||||||
|
|
||||||
|
## Example
|
||||||
```ts
|
```ts
|
||||||
import SSSG from "sssg";
|
import SSSG from "sssg";
|
||||||
import Dev from "sssg/src/plugins/dev";
|
import Dev from "sssg/src/plugins/dev";
|
||||||
|
|
|
||||||
34
metadata.md
Normal file
34
metadata.md
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Metadata Format
|
||||||
|
This format stores metadata at the top of a file using `key=value`
|
||||||
|
pairs.
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
key=value
|
||||||
|
key=value
|
||||||
|
key=value
|
||||||
|
====
|
||||||
|
(rest of the file)
|
||||||
|
|
||||||
|
- Each line before the separator must be `key=value`.
|
||||||
|
- The separator is a line containing only `=` characters (like `===`
|
||||||
|
or `====`).
|
||||||
|
- Anything after the separator is regular file content.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
title=My Song
|
||||||
|
artist=Pink Floyd
|
||||||
|
year=1973
|
||||||
|
====
|
||||||
|
Lyrics go here...
|
||||||
|
|
||||||
|
## Parsed Result
|
||||||
|
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"title": "My Song",
|
||||||
|
"artist": "Pink Floyd",
|
||||||
|
"year": "1973"
|
||||||
|
}
|
||||||
|
```
|
||||||
25
package.json
25
package.json
|
|
@ -3,9 +3,32 @@
|
||||||
"module": "index.ts",
|
"module": "index.ts",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "A static site generator built with Bun, TypeScript, and Preact.",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/bun": "^1.1.8"
|
"@types/bun": "^1.1.8"
|
||||||
},
|
},
|
||||||
|
"keywords": [
|
||||||
|
"static-site-generator",
|
||||||
|
"ssg",
|
||||||
|
"preact",
|
||||||
|
"typescript",
|
||||||
|
"bun",
|
||||||
|
"esbuild"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"bun": ">=1.0.0"
|
||||||
|
},
|
||||||
|
"author": "Sophie Drijj <sophie@sad.ovh>",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.sad.ovh/sophie/sssg/sssg.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://git.sad.ovh/sophie/sssg/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://sad.ovh",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": "^5.0.0"
|
"typescript": "^5.0.0"
|
||||||
},
|
},
|
||||||
|
|
@ -19,4 +42,4 @@
|
||||||
"preact": "^10.23.2",
|
"preact": "^10.23.2",
|
||||||
"sharp": "^0.33.5"
|
"sharp": "^0.33.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue