Поиск по этому блогу

четверг, 26 мая 2016 г.

Пробуем Metalsmith, metalsmith-base и ждем счастья - есть статьи автора и статьи последователей

Идеи автора полностью совпали с моими. Если мне нужен не движок для блога, а нечто более гибкое, то неплохо было бы: 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

Скорее установим

In [ ]:
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... Странно это... Не думаем долго и просто копируем весь дистрибутив:

In [ ]:
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

In [ ]:
F:\stradorusite\_metalsmith>cd metalsmith/examples/static-site

Как работает эта команда? Нам нужно ее выполнить в Windows. Вот директория, в до запуска

In [ ]:
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>
In [ ]:
# %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

In [ ]:
F:\stradorusite\_metalsmith\metalsmith\examples\static-site>
make build

ПОйдем другим путем, что делают эти файлы?

In [ ]:
# %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; }
  });
In [ ]:
# %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"
  }
}
In [ ]:
####Запустим node debug index.js
In [ ]:
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
In [ ]:
и подвисаем насмерть

Запускаем node index.js

И вот эти фалы обновились (время создания...), а папки - нет

In [ ]:
├───build
      index.html
   
   └───posts
       ├───first-post
              index.html
       
       ├───fourth-post
              index.html
       
       ├───second-post
              index.html
       
       └───third-post
               index.html

Отвлекся и решил поискать варианты документации под мои задачи

Нашел в документации искомый дистрибутив на evocode.com evocode

In [ ]:
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
|########################################################


Посты чуть ниже также могут вас заинтересовать

Комментариев нет: