A barebone eleventy and webpack template. Fork and go.
.js
(ES6, Babel, Polyfills).css
(Sass, PostCSS, Autoprefixer)noopener
and noreferrer
)Live demo https://eleventy-webpack.netlify.app
First install the dependencies:
npm install
Then you can:
Command | Description |
---|---|
npm run start |
Run your website on http://localhost:8080 |
npm run build |
Build your production website inside /_site |
npm run format |
Run prettier on all filles except /_site |
npm run analyze |
Output info on your bundle size |
Make sure you use the correct node.js version:
# with bash nvm
nvm use `cat .nvmrc`
# with windows nvm
nvm use $(cat .nvmrc)
# or just install the version specified inside `.nvmrc`
A very simple webpack.config.js
is included. Feel free to change it.
All shortcodes can be used inside .md
or .njk
files.
icon
Any SVG added to src/assets/icons
is bundled into a symbol sprite file and made available through this shortcode.
<!-- Assuming `src/assets/icons/github.svg` exist -->
{% icon "github" %} Github icon
<!-- Will be rendered as -->
<svg class="icon icon--github" role="img" aria-hidden="true">
<use xlink:href="/assets/images/sprite.svg#github"></use>
</svg>
image
Creates a WebP version of the image and the corresponding optimized JPEG / PNG. Images will be created in multiple sizes. See utils/shortcodes.js
for default values.
<!-- Assuming `src/assets/images/image.jpeg` of width 330px exist -->
{% image "image.jpeg", "Image alt" %}
<!-- Will be rendered as -->
<picture>
<source type="image/webp" srcset="/assets/images/678868de-320.webp 320w, /assets/images/678868de.webp 330w" sizes="90vw">
<source type="image/png" srcset="/assets/images/678868de-320.png 320w, /assets/images/678868de.png 330w" sizes="90vw">
<img loading="lazy" src="/assets/images/678868de.png" alt="Image alt" width="330" height="580">
</picture>
<!-- If a title is passed the shortcode will output a <figure> with <figcaption> -->
{% image "image.jpeg", "Image alt", "Image title" %}
<!-- Will be rendered as -->
<figure>
<picture>
<source type="image/webp" srcset="/assets/images/678868de-320.webp 320w, /assets/images/678868de.webp 330w" sizes="90vw">
<source type="image/png" srcset="/assets/images/678868de-320.png 320w, /assets/images/678868de.png 330w" sizes="90vw">
<img loading="lazy" src="/assets/images/678868de.png" alt="Image alt" width="330" height="580">
</picture>
<figcaption>Image title</figcaption>
</figure>
<!-- Additional options -->
{% image [100,100], "image.jpeg", "Image alt", "Image title", "my-class", false, "90vw" %}
<!-- Will be rendered as -->
<figure class="fig-my-class">
<picture>
<source type="image/webp" srcset="..." sizes="90vw">
<source type="image/png" srcset="..." sizes="90vw">
<img class="img-my-class" loading="eager" src="..." alt="Image alt" width="100" height="100">
</picture>
<figcaption>Image title</figcaption>
</figure>
markdown
Embed markdown easily.
{% markdown %}
Let's you use **Markdown** like _this_.
Or with includes {%- include 'content.md' -%}.
{% endmarkdown %}
All filters can be used inside .md
or .njk
files.
format
Format the passed date with date-fns:
<!-- Assuming page.date is a javascript date -->
{{ page.date | format("yyyy") }}
<!-- Will be rendered as -->
2020
formatISO
Format the passed date according to ISO format:
<!-- Assuming page.date is a javascript date -->
{{ page.date | formatISO }}
<!-- Will be rendered as -->
2020-09-18T19:00:52Z
markdown
Parse the passed string with markdown:
<!-- Assuming page.title is `# My header` -->
{{ page.title | markdown }}
<!-- Will be rendered as -->
<h1>My header</h1>
Eleventy 是一个更简单的静态站点生成器。Jekyll 的替代品,用 JavaScript 编写。将模板目录(不同类型)转换为 HTML。它默认为零配置,但有灵活的配置选项。Eleventy 与你的项目的现有目录结构一起工作。 Eleventy 使用独立的模板引擎 Eleventy 可以使用多种模板语言。适用于 HTML、Markdown、Liquid、Nunjucks、Handlebars
在我的11ty站点(skeleventy-starter)上,我想解析数百篇评论。这些评论被存储在我的数据文件夹中的一个名为reviews的文件夹中,作为单个YAML文件(名称如下:“entry-7128372832.yml”)。每个yaml文件如下所示: 但是,当我尝试在我的.njk文件中遍历review-data时: 我似乎既没有访问数据的权限,也没有在控制台中得到一个错误。我错过了什么?感谢