Skip to content

lumeland/themes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lume themes registry

This registry is used to create the Themes section at https://lume.land/themes/. It's also used by Lume init to automatically setup new Lume projects.

Data schema

interface Theme {
  /**
   * An unique identifier for the theme.
   * It's used to install the theme using the `--theme=id` flag.
   */
  id: string;

  /** The name of the theme */
  name: string;

  /** A short description of the theme. */
  description: string;

  /** An array of tags to search and filter. */
  tags: string[];

  /** Lume version required. Everything but `3` is ignored. */
  lume_version: number;

  /** The author of the theme */
  author: {
    name: string;
    url: string;
  };

  /** The URL of the Git repository with the theme code. */
  repo: string;

  /** An URL with a demo of the theme. */
  demo: string;

  /**
   * An array of objects with screenshots of the theme.
   * Every screenshot can have four versions
   * The images are stored in the `/screens` directory.
   */
  screens: Array<{
    desktop: string;
    desktop_dark?: string;
    mobile?: string;
    mobile_dark?: string;
  }>;

  /** An object with the data to import the theme */
  module: {
    /**
     * The module name. Used as the variable name to import the module:
     * `import [name] from [specifier]`
     */
    name: string;

    /**
     * Module Id in the format [registry]/[package].
     * Supported registered so far: denoland, jsdelivr
     */
    id: string;

    /**
     * URL origin to create the import map
     * The URL MUST NOT include the version
     * it's obtained and updated automatically
     */
    origin: string;

    /* The path to the main module to import (ex: `/mod.ts`) */
    main: string;

    /**
     * If the theme includes LumeCMS, the name of the configuration file
     * ex: `/_cms.ts`
     */
    cms?: string;

    /** An array of files to be copied to the src folder. */
    src?: string[];

    /**
     * The path of the src directory in the theme repo if it's not the root.
     * ex: `/src`
     */
    srcdir?: string;

    /** Optional compile options to include in the deno.json file. */
    compileOptions?: Record<string, unknown>;

    /** Optional imports for the import map. */
    imports?: Record<string, string>;

    /** Optional unstable flags for Deno. */
    unstable?: string[];
  };
}

About

Lume themes registry

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •