Идеи автора полностью совпали с моими. Если мне нужен не движок для блога, а нечто более гибкое, то неплохо было бы: 0) Шаблонизатор на nodejs, 1)Подход к настройкам, как в Gulp 3)Примеры сборок и модулей
Пробуя шаблонизатор я обнаружил сборку metalsmith-base, в которой реализована мечта 4)Добавить шаблонизатор к Gulp, а не Gulp в шаблонизатор...
Надеюсь, что это именно то, что нужно... Здесь: Установил сборку metalsmith, и рядом metalsmith-base, поднял сервер metalsmith-base..., распечатал логи и файлы настроек... Первые опасения: слишком много предупреждений об устаревших версиях в metalsmith-base...
Metalsmith In Metalsmith, all of the logic is handled by plugins. You simply chain them together. Here's what the simplest blog looks like... Metalsmith(__dirname)
Building a blog with Metalsmith By Rob Ribeiro | Published 3.5.2015 | Updated 3.30.2015
evocode github
evocode Mastering metalsmith: best practices for static sites
Скорее установим¶
F:\stradorusite\_metalsmith>npm install metalsmith
F:\stradorusite\_metalsmith
`-- metalsmith@2.1.0
+-- absolute@0.0.1
+-- async@0.9.2
+-- chalk@0.5.1
| +-- ansi-styles@1.1.0
| +-- escape-string-regexp@1.0.5
| +-- has-ansi@0.1.0
| | `-- ansi-regex@0.2.1
| +-- strip-ansi@0.3.0
| `-- supports-color@0.2.0
+-- clone@0.1.19
+-- co-fs-extra@0.0.2
| +-- co-fs@1.2.0
| | +-- co-from-stream@0.0.0
| | | `-- co-read@0.0.1
| | `-- thunkify@0.0.1
| `-- fs-extra@0.12.0
| +-- jsonfile@2.3.1
| `-- ncp@0.6.0
+-- commander@2.9.0
| `-- graceful-readlink@1.0.1
+-- fs-extra@0.10.0
| +-- jsonfile@1.2.0
| +-- mkdirp@0.5.1
| | `-- minimist@0.0.8
| `-- ncp@0.5.1
+-- gray-matter@2.0.2
| +-- ansi-red@0.1.1
| | `-- ansi-wrap@0.1.0
| +-- extend-shallow@2.0.1
| | `-- is-extendable@0.1.1
| `-- js-yaml@3.6.1
| +-- argparse@1.0.7
| | `-- sprintf-js@1.0.3
| `-- esprima@2.7.2
+-- has-generators@1.0.1
+-- is@2.2.1
+-- is-utf8@0.2.1
+-- recursive-readdir@1.3.0
| `-- minimatch@0.3.0
| +-- lru-cache@2.7.3
| `-- sigmund@1.0.1
+-- rimraf@2.5.2
| `-- glob@7.0.3
| +-- inflight@1.0.5
| | `-- wrappy@1.0.2
| +-- inherits@2.0.1
| +-- minimatch@3.0.0
| | `-- brace-expansion@1.1.4
| | +-- balanced-match@0.4.1
| | `-- concat-map@0.0.1
| +-- once@1.3.3
| `-- path-is-absolute@1.0.0
+-- stat-mode@0.2.1
+-- thunkify@2.1.2
+-- unyield@0.0.1
| `-- co@3.1.0
+-- ware@1.3.0
| `-- wrap-fn@0.1.5
`-- win-fork@1.1.1
npm WARN enoent ENOENT: no such file or directory, open 'F:\stradorusite\_metalsmith\package.json'
npm WARN _metalsmith No description
npm WARN _metalsmith No repository field.
npm WARN _metalsmith No README data
npm WARN _metalsmith No license field.
F:\stradorusite\_metalsmith>
Проверяем, что стоит в папке... Оказывается только node_modules... Странно это... Не думаем долго и просто копируем весь дистрибутив:
F:\stradorusite\_metalsmith>git clone https://github.com/metalsmith/metalsmith.git
Cloning into 'metalsmith'...
remote: Counting objects: 1490, done.
remote: Compressing objects: 100% (6/6), done.
Receiving objects: 100% (1490/1490), 2.28 MiB | 1.22 MiB/s, done.4Receiving objects: 95% (1416/1490), 1.86 MiB | 1.22 MiB/s
Resolving deltas: 6% (44/703)
Resolving deltas: 100% (703/703), done.
Checking connectivity... done.
Checking out files: 100% (154/154), done.
F:\stradorusite\_metalsmith>
Пробуем пример static-site c make build¶
F:\stradorusite\_metalsmith>cd metalsmith/examples/static-site
Как работает эта команда? Нам нужно ее выполнить в Windows. Вот директория, в до запуска
F:\stradorusite\_metalsmith\metalsmith\examples\static-site>tree /F
Структура папок тома MYLINUXLIVE
Серийный номер тома: CE7F-8134
F:.
│ Makefile
│ Readme.md
│ index.js
│ package.json
│
├───build
│ │ index.html
│ │
│ └───posts
│ ├───first-post
│ │ index.html
│ │
│ ├───fourth-post
│ │ index.html
│ │
│ ├───second-post
│ │ index.html
│ │
│ └───third-post
│ index.html
│
├───layouts
│ layout.html
│ post.html
│
└───src
│ index.md
│
└───posts
first-post.md
fourth-post.md
second-post.md
third-post.md
F:\stradorusite\_metalsmith\metalsmith\examples\static-site>
# %load F:\stradorusite\_metalsmith\metalsmith\examples\static-site\makefile
build: node_modules
node index.js
node_modules: package.json
npm install
.PHONY: build
Предполагаю, что сначала создаеся папка node_modules, а потом в ней запускается npm install..., а вот node index.js почему на первом месте? Гуглить лень...
Но может быть Git Bush попробовать? Пробуем. Нет такой команды...make
F:\stradorusite\_metalsmith\metalsmith\examples\static-site>
make build
ПОйдем другим путем, что делают эти файлы?
# %load F:\stradorusite\_metalsmith\metalsmith\examples\static-site\index.js
var Metalsmith = require('metalsmith');
var markdown = require('metalsmith-markdown');
var layouts = require('metalsmith-layouts');
var permalinks = require('metalsmith-permalinks');
Metalsmith(__dirname)
.metadata({
title: "My Static Site & Blog",
description: "It's about saying »Hello« to the World.",
generator: "Metalsmith",
url: "http://www.metalsmith.io/"
})
.source('./src')
.destination('./build')
.clean(false)
.use(markdown())
.use(permalinks())
.use(layouts({
engine: 'handlebars'
}))
.build(function(err, files) {
if (err) { throw err; }
});
# %load F:\stradorusite\_metalsmith\metalsmith\examples\static-site\package.json
{
"name": "static-site-example",
"private": true,
"dependencies": {
"handlebars": "^4.0.5",
"metalsmith": "^2.1.0",
"metalsmith-layouts": "^1.4.1",
"metalsmith-markdown": "^0.2.1",
"metalsmith-permalinks": "^0.5.0"
}
}
####Запустим node debug index.js
F:\stradorusite\_metalsmith\metalsmith\examples\static-site>node debug index.js
< Debugger listening on port 5858
connecting to 127.0.0.1:5858 ... ok
break in F:\stradorusite\_metalsmith\metalsmith\examples\static-site\index.js:1
> 1 var Metalsmith = require('metalsmith');
2 var markdown = require('metalsmith-markdown');
3 var layouts = require('metalsmith-layouts');
debug> help
help
Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),
watch, unwatch, watchers, repl, exec, restart, kill, list, scripts, breakOnException, breakpoints, version
debug>c
и подвисаем насмерть
Запускаем node index.js¶
И вот эти фалы обновились (время создания...), а папки - нет
├───build
│ │ index.html
│ │
│ └───posts
│ ├───first-post
│ │ index.html
│ │
│ ├───fourth-post
│ │ index.html
│ │
│ ├───second-post
│ │ index.html
│ │
│ └───third-post
│ index.html
│
Отвлекся и решил поискать варианты документации под мои задачи
F:\stradorusite\_metalsmith\evocode\metalsmith-base>npm install
npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v7.0.
Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tre
e.
npm WARN deprecated lodash@1.0.2: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0.
Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tre
e.
npm WARN deprecated cross-spawn-async@2.2.4: cross-spawn no longer requires a build toolchain, use it in
stead!
npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select'
npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what'
npm WARN prefer global marked@0.3.5 should be installed with -g
npm WARN prefer global node-gyp@3.3.1 should be installed with -g
> node-sass@3.7.0 install F:\stradorusite\_metalsmith\evocode\metalsmith-base\node_modules\node-sass
> node scripts/install.js
|########################################################
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий