速查表

所有配置选项都在一个简单的页面中

Lume 实例化

以下是创建新站点时所有可用的选项(以及默认值):

const site = lume(
  {
    /** 站点源文件的路径 */
    src: "./",

    /** 构建目标路径 */
    dest: "./_site",

    /** 是否在构建前清空目标文件夹(在 `dest` 中定义) */
    emptyDest: true,

    /** 默认包含路径 */
    includes: "_includes",

    /** 站点位置(用于生成最终 URL) */
    location: new URL("http://localhost"),

    /** 设置为 true 以生成美观的 URL (`/about-me/`) */
    prettyUrls: true,

    /** 本地服务器选项 */
    server: {
      /** 监听端口 */
      port: 3000,

      /** 在浏览器中打开服务器 */
      open: false,

      /** 404 错误时提供的文件 */
      page404: "/404.html",

      /** 服务器的可选中间件 */
      middlewares: [];
    },

    /** 本地观察器选项 */
    watcher: {
      /** 观察器忽略的路径 */
      ignore: [
        "/.git",
        (path) => path.endsWith("/.DS_Store"),
      ],

      /** 检查更改的间隔,单位为毫秒 */
      debounce: 100,
    },

    /** 组件选项 */
    components: {
      /** 用于访问组件的变量名 */
      variable: "comp",

      /** 用于保存组件 CSS 代码的文件名 */
      cssFile: "/components.css",

      /** 用于保存组件 Javascript 代码的文件名 */
      jsFile: "/components.js",
    }
  },
  {
    /** 默认加载的 url 插件的选项 */
    url: undefined,

    /** 默认加载的 json 插件的选项 */
    json: undefined,

    /** 默认加载的 markdown 插件的选项 */
    markdown: undefined,

    /** 默认加载的 modules 插件的选项 */
    modules: undefined,

    /** 默认加载的 nunjucks 插件的选项 */
    nunjucks: undefined,

    /** 默认加载的 search 插件的选项 */
    search: undefined,

    /** 默认加载的 paginate 插件的选项 */
    paginate: undefined,

    /** 默认加载的 yaml 插件的选项 */
    yaml: undefined,
  }
)

Lume 站点配置

所有可用于配置站点构建的可用函数:

/** 注册事件监听器 */
site.addEventListener(eventType, fn);

/** 注册插件 */
site.use(plugin);

/** 注册一个指定名称的脚本 */
site.script(name, commandOrFunction);

/** 注册数据加载器 */
site.loadData(extensions, loader);

/** 注册 HTML 页面加载器和其他选项 */
site.loadPages(extensions, loader);
site.loadPages(extensions, options);

/** 注册静态资源页面加载器 */
site.loadAssets(extensions, loader);

/** 注册预处理器 */
site.preprocess(extensions, fn);

/** 注册处理器 */
site.process(extensions, fn);

/** 注册模板过滤器 */
site.filter(name, fn, async = false);

/** 注册模板助手函数 */
site.helper(name, fn, options);

/** 注册数据变量 */
site.data(name, value, scope = "/");

/** 注册页面 */
site.page(pageData, scope = "/");

/** 注册组件 */
site.component(context, component, scope = "/");

/** 配置在数据层叠中合并键的策略 */
site.mergeKey(key, merge, scope = "/");

/** 复制静态文件/文件夹 */
site.copy(from, to);

/** 复制剩余文件 */
site.copyRemainingFiles(filter);

/** 忽略文件或文件夹 */
site.ignore(...paths);

/** 配置独立的作用域以优化更新后的构建 */
site.scopedUpdates(...scopes);

/** 定义远程文件 */
site.remoteFile(filename, url);

Lume 函数

site 实例中的其他实用函数:

/** 返回根目录的绝对路径 */
site.root(...subdirs);

/** 返回 src 目录的绝对路径 */
site.src(...subdirs);

/** 返回 dest 目录的绝对路径 */
site.dest(...subdirs);

/** 触发事件 */
site.dispatchEvent(event);

/** 运行使用 `site.script()` 注册的脚本 */
site.run(script);

/** 清空 dest 目录 */
site.clear();

/** 构建站点 */
site.build();

/** 重新构建站点,重新加载更改的文件 */
site.update(changedFiles);

/** 渲染单个页面 (供 on_demand 插件使用) */
site.renderPage(file, extraData);

/** 返回任何页面/文件的最终 URL */
site.url(path, absolute = false);

/** 获取任何文件的内容 */
site.getContent(file, loader);