2017-09-05 4 views
2

すべてのカラムとレイアウトのウィジェットを1か所で定義したいと思います。私はこれらの線に沿って何かが含まれるであろうアポストロフィCMSでマクロからエリアウィジェットを定義する方法

このコードはcolumnWidgets.html私4Columnレイアウトウィジェットで次に

{% macro columnWidgets(data, option) %} 
{{ apos.area(data.widget, '{{option}}', { 
blockLevelControls: true, 
widgets: { 
'apostrophe-rich-text': { 
    toolbar: [ 'Styles', 'Bold', 'Italic', 'Blockquote', 'Link', 'Anchor', 'Unlink', 'BulletedList' ], 
    styles: [ 
    { name: 'Paragraph', element: 'p' }, 
    { name: 'Quote/Section Descriptor', element: 'h3' }, 
    { name: 'Main Heading', element: 'h1',attributes: { 'class': 'main-heading'} } 
    ] 
}, 
'apostrophe-html': { 
    toolbar: [ 'Styles', 'Bold', 'Italic', 'Link', 'Unlink', 'Anchor', 'Table', 'BulletedList', 'Blockquote', 'Strike', 'Subscript', 'Superscript','Image','slideshow' ], 
    styles: [ 
    { name: 'Marker: Yellow', element: 'span', styles: { 'background-color': 'Yellow' } } 
    ] 
}, 
'apostrophe-images': { 
    minSize: [ 700, 350 ], 
    aspectRatio: [ 2, 1 ], 
    size: 'full' 
} 
} 
}) }} 
{% endmacro %} 

/ビュー/マクロになります。

{columnwidgetsの%として%の輸入 'マクロ/ columnWidgets.html'}

{{apps.columnWidgets(データ、 'COLUMN1')}}

答えて

1

確かに、私たちは私たちの中で、このすべての時間を行います自分のプロジェクト。

// in app.js 

modules: { 
    'apostrophe-templates': { 
    viewsFolderFallback: __dirname + '/views' 
    }, ... 
} 

{# In views/macros/areas.html %} 

{% macro content(context, name) %} 
    {{ apos.area(context, name, { 
    widgets: { 
     'apostrophe-rich-text': { 
     toolbar: [ 'Styles', 'Bold', 'Italic', 'Link', 'Anchor', 'Unlink', 'BulletedList' ] 
     }, 
     'apostrophe-images': {}, 
     'apostrophe-files': {}, 
     'apostrophe-video': {} 
    } 
    }) }} 
{% endmacro %} 

{# In any other template in any module #} 

{% import "macros/areas.html" as areas %} 
{{ areas.content(data.page, 'body') }} 

viewsFolderFallbackの使用は、任意のモジュールからなど、拡張含ま インポートテンプレートファイルのフォールバック位置になるように最上位のフォルダを共有可能にするための素晴らしい利便性です。

+0

は、私はエラーを取得しています: を e.stack http://0.0.0.0:3000に聞く:テンプレートのエラーをレンダリング:(列-2-ウィジェット:widget.html) エラー:テンプレート名でなければなりません文字列:NaN at Object.exports.prettifyError(/Users/woodbr/projects/earlham/node_modules/nunjucks/src/lib.js:34:15) /Users/woodbr/projects/earlham/node_modules/nunjucks/src /environment.js:486:31 –

+0

nunjucksがマクロに問題があるように見える テンプレート名は文字列でなければなりません。NaN –

+0

申し訳ありませんが、私のインポートコールから引用符を残して、その修正を試してみてください。 –

関連する問題