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
|
||||
|
||||
## Usage
|
||||
`bun add git+https://git.sad.ovh/sophie/sssg`
|
||||
Sophie's Static Site Generator (aka. SSSG) is a infnintely expandable SSG based on plugins. It ships with some plugins already included, such as:
|
||||
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
|
||||
import SSSG from "sssg";
|
||||
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",
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
"version": "1.0.0",
|
||||
"description": "A static site generator built with Bun, TypeScript, and Preact.",
|
||||
"devDependencies": {
|
||||
"@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": {
|
||||
"typescript": "^5.0.0"
|
||||
},
|
||||
|
|
@ -19,4 +42,4 @@
|
|||
"preact": "^10.23.2",
|
||||
"sharp": "^0.33.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue