node package manager



proof of concept!

Apostrophe's solution for simple vector maps. Subclasses apostrophe-snippets. Uses raphael.js.


Make sure you have the module installed in and required by your project:

npm install apostrophe-raphael --save

Now, in app.js when you're setting up your modules, simply add 'apostrophe-raphael' to the modules object.

modules: {
  'apostrophe-ui-2': { },
  'apostrophe-editor-2': { },
  'apostrophe-raphael': { },
  // ... and so on 

And then make sure the 'raphael' page type is added with the others. It should look something like this:

pages: {
  types: [
    { name: 'default', label: 'Default (Two Column)' },
    { name: 'blog', label: 'Blog' },
    { name: 'raphael', label: 'US Map' }

Lastly, add the menu to the Apostrophe admin bar so our content can be edited. In views/global/outerLayout.html, include aposRaphaelMenu with the other menu calls:

{{ aposPagesMenu({ page: page, edit: edit }) }}
<!-- right in here -->
{{ aposRaphaelMenu(permissions) }}
{{ aposPeopleMenu(permissions) }}
{{ aposGroupsMenu(permissions) }}
{{ aposMediaMenu({ edit: permissions.guest })}}
{{ aposTagsMenu({ edit: permissions.admin }) }}

Map Types

By default, apostrophe-raphael renders a map of the United States but that's easy to change! You can pass a mapType option to the module. You'll probably also want to change the label and icon accordingly.

'apostrophe-raphael': {
  mapType: 'world',
  label: 'World Map',
  icon: 'globe',