50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
<p align="center">
|
||
<img width="250" src="https://git.sr.ht/~ayoayco/mcfly/blob/main/assets/mcfly-logo-sm.png" alt="rRick & Morty cartoon" />
|
||
</p>
|
||
|
||
<h1 align="center">McFly Docs</h1>
|
||
|
||
<p align="center"><strong>McFly</strong> is a no-framework framework<br />that assists in building on the Web</p>
|
||
|
||
<p align="center">
|
||
<img src="https://img.shields.io/badge/from-the_future-blue?style=flat" />
|
||
<img src="https://img.shields.io/badge/status-legit-purple?style=flat" />
|
||
<a href="https://mc-fly.vercel.app/demo" target="_blank"><img src="https://img.shields.io/badge/see-the_demo_↗️-blue?style=flat&colorB=28CF8D" /></a>
|
||
</p>
|
||
|
||
## Special directories
|
||
|
||
**1. `./src/pages/`**
|
||
|
||
- file-based routing for `.html` files
|
||
- directly use custom elements & static fragments (no imports or registry maintenance needed)
|
||
- use `<script server:setup>` to define logic that runs on the server, which then gets stripped away
|
||
|
||
**2. `./src/components/`**
|
||
|
||
- custom element constructor files (only `.js` files for now)
|
||
- all components are automatically registered using their file names; a `hello-world.js` component can be used as `<hello-world>`
|
||
- static `.html` fragments; a `my-header.html` fragment can be directly used as `<my-header>`
|
||
|
||
**3. `./src/api/`**
|
||
|
||
- file-based routing for REST API endpoints
|
||
- e.g., `./src/api/users.ts` can be accessed via `http://<domain>/api/users`
|
||
- TypeScript or JavaScript welcome!
|
||
|
||
## McFly config
|
||
|
||
To tell McFly you want to use components, pass the mode (only `"js"` for now) to the `components` prop mcfly.config.ts
|
||
|
||
```js
|
||
import defineConfig from './packages/define-config'
|
||
|
||
export default defineConfig({
|
||
components: 'js',
|
||
})
|
||
```
|
||
|
||
---
|
||
|
||
_Just keep building_<br />
|
||
_A project by [Ayo](https://ayco.io)_
|