2017-12-04 3 views
0

일부 플러그인을 사용하여 metalsmith와 (과) 定 形 화하려고 시도하지만 metalmith-layouts 및 metalsmith-in-place 작업을 함께 만들 수 없습니다. 나는 많은 것들을 시도하고 그들 중 하나가 작동하도록 성공하지만 템플릿 엔진을 사용하는 두 번째는 결코하지 못하게한다 (예를 들어 핸들 바). metalsmith-layouts에서 .hbs 파일을 읽지 않으려 고합니다.metalmith-layouts 및 metalsmith-in-place 작업을 할 수 없습니다.

제대로 핸들 바를 설치했는데 jstransform-handlebars (그리고 .hbs 파일이 metalsmith-in-place에 의해 적절하게 변형되지만 metalsmith 레이아웃으로 작동하지 않을 수 있습니다 ... 그리고 이것은 정말로 짜증납니다).

내 목표는 콘텐츠가 핸들 막대와 같은 템플릿 엔진을 사용하여 렌더링되는 레이아웃 파일을 사용하는 것입니다. 여기

내하는 index.js 코드 :

const path = require('path'); 
const metalsmith = require('metalsmith'); 
const inPlace = require('metalsmith-in-place'); 
const layouts = require('metalsmith-layouts'); 
const assets = require('metalsmith-assets'); 
const sass = require('metalsmith-sass'); 
const htmlMinifier = require("metalsmith-html-minifier"); 
const permalinks = require('metalsmith-permalinks'); 

metalsmith(__dirname) 
    .source('src') 
    .destination('dist') 
    .use(sass({ 
     file: './src/scss/*.scss', 
     outputDir: "css/" 
    })) 
    .use(inPlace())        //Template engine uses Handlebars 
    .use(layouts({ 
     engine: 'handlebars', 
     default: "layout.html.hbs" 
    }))  
    .use(htmlMinifier()) 
    .use(permalinks({ 
     relative: false, 
     pattern: ':url' 
    }))  
    .use(assets({ 
     source: 'assets' 
    })) 
    .build((err) => err && console.error(err)); 

그리고 여기 내 디렉토리입니다 :

source file tree

+0

'index' 또는'test-page'의 내용은 무엇입니까? –

+0

콘텐츠가이 문제에서 중요한 역할을하지는 않지만 레이아웃의 콘텐츠는 간단합니다. {{title}} {{{contents}}}, index is : 홈 페이지이고 테스트 페이지는 다음과 같습니다. 테스트 페이지. –

+0

실제로 메타 데이터가 차이를 만들 수 있습니다. 또한 레이아웃을 그대로 유지할 수있는 것처럼 보입니다. –

답변

0

내가 마지막으로 레이아웃 파일은 .html 파일이어야 결론에 도달했다 . 그 html 파일의 내용은 파일에도 불구하고

.use(layouts({ 
    engine: handlebars 
})) 

에 지정된 엔진을 처리하는 것은 상당히 혼란이 형식의 .hbs 파일이 아닙니다. In-place 플러그인은 내용 페이지에 템플릿 엔진을 사용하는 데 유용합니다.

관련 문제