2017-09-05 1 views
2

Ich möchte die Widgets für alle meine Spalten und Layouts an einer Stelle definieren.So definieren Sie Bereichs-Widgets aus einem Makro in Apostroph CMS

Dieser Code würde

{% 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 %} 

Da ist in meinem 4Column Layout-Widget in views/Makros/columnWidgets.html sein ich etwas in dieser Richtung umfassen würde.

{% Import 'Makros/columnWidgets.html' als columnwidgets%}

{{apps.columnWidgets (Daten, 'column1')}}

Antwort

1

Sicher, wir tun dies die ganze Zeit in unserem eigene Projekte.

// 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') }} 

Die Verwendung von viewsFolderFallback ist eine nette Annehmlichkeit, um einen Top-Level-Ordner freigegeben importierten eine Ausweichpunkt für Vorlagendateien zu werden, enthalten, erweiterte etc. von jedem Modul.

+0

Ich erhalte eine Fehlermeldung: auf Zuhören http://0.0.0.0:3000 e.stack: Template machen Fehler: (Spalte-2-Widgets: widget.html) Fehler: Vorlagennamen ein sein muss Zeichenfolge: NaN bei Object.exports.prettifyError (/Users/woodbr/projects/earlham/node_modules/nunjucks/src/lib.js:34:15) unter/Users/woodbr/projects/earlham/node_modules/nunjucks/src /environment.js:486:31 –

+0

Sieht aus wie Nunjucks hat Probleme mit dem Makro Vorlagennamen müssen eine Zeichenfolge sein: NaN –

+0

Sorry, ich habe die Anführungszeichen aus meinem Import-Aufruf, versuchen Sie mit diesem Update. –

Verwandte Themen