Ressources et styles

sitelo repose sur Vite : le JavaScript et le CSS frontend sont donc compilés automatiquement. Placez scripts et styles sous src/ (par exemple src/js et src/css), liez-les depuis votre HTML avec des URL relatives à la racine, et sitelo s’occupe du reste : TypeScript, imports CSS, bundling et minification.

Structure du projet

Les pages et les ressources partagent src/. Des dossiers comme js/ et css/ sont des conventions, pas des obligations — ce qui compte pour sitelo, c’est ce que votre HTML référence, pas le nom des dossiers.

my-site/
  src/
    index.ht.js          # page — renvoie du HTML
    css/
      styles.css         # lié depuis le HTML → inclus dans le bundle
    js/
      main.js            # lié depuis le HTML → inclus dans le bundle
      counter.ts         # importé par main.js → également dans le bundle
    lib/
      posts.js           # utilisé uniquement dans data() → jamais livré
  public/
    favicon.ico          # copié tel quel

Lier des ressources depuis le HTML

Référencez les fichiers avec des chemins relatifs à la racine. Un <script type="module"> ou un <link rel="stylesheet"> est ce qui indique à sitelo d’inclure ce fichier dans le build :

import { html, head, title, link, script, body, h1, button } from 'javascript-to-html'

export default () =>
  html({ lang: 'fr' },
    head(
      title('Mon site'),
      link({ rel: 'stylesheet', href: '/css/styles.css' }),
      script({ type: 'module', src: '/js/main.js' }),
    ),
    body(
      h1('Bonjour'),
      button({ id: 'count' }, '0'),
    ),
  )
import { createCounter } from './counter.ts'

const button = document.querySelector('#count')
const next = createCounter()

button.addEventListener('click', () => {
  button.textContent = String(next())
})
@import './tokens.css';

body {
  font-family: system-ui, sans-serif;
  margin: 0;
  padding: 2rem;
}

Ce que Vite compile

Besoin de PostCSS, Sass ou d’autres plugins Vite ? Ajoutez-les sous vite dans sitelo.config.js.

Zéro JS par défaut

Validation des ressources manquantes

Un <script src> ou un href de feuille de style pointant vers un fichier absent de src/ comme de public/ fait échouer le build. Vous préférez un avertissement ?

export default {
  missingAssets: 'warn',
}