Onepage and Blog in the same website

Could it be possible to have a root page “/” that was a onepage homepage and the page “/blog” that was a blog page, like in the demo? All in one website. Thanks for the help.

Yes, simply download and get the one-page skeleton working first. Then download the blog-skeleton and copy the folder from user/pages/ and drop it into the blog-skeleton’s user/pages/ folder alongside it’s existing 01.home. Maybe rename it so it’s to ensure the order is home, then blog.

After that you need to decide what you want to do about the menu. By default one-page skeleton has an on-page menu, where blog has a more traditional menu. The site has this exact setup with a one-page homepage and and blog at /blog. To turn off the on-page menu for the homepage (onepage modular content) open up the 01.home/ file and add this line in the header section:

onpage_menu: false

That will deactivate the onpage menu for the homepage and use the home/blog type links.

Just trying now. I’ll post if it works. Thanks!

works great here (as mentioned above). just do copy all user/plugins/* from blog skeleton to the (final) onepage skeleton.

Worked great for me as well, with one difference in the order. When I downloaded one-page skeleton first and then blog-skeleton, the archive plugin did not work correctly and it would always go to July archive. I fixed it by downloading blog-skeleton first and then one-page skeleton.

I have a similar situation, I have used the blog layout for 3 different pages on a site, and I am trying to get the shop as a fourth page, and I want the same menu to display for all 4 pages.
Is there a way for me to get the shop site running alongside these other 3 blog pages?

I forgot to include a link.

I think you need to install the snipcart plugin first. it’s not finding it.

I had it in there and removed it to start from scratch. I have put the plugin snipcart & lightslider back in now and I am getting this error:


The merge filter only works with arrays or hashes; array and NULL given in “snipcart.html.twig” at line 4.

The Lightslider plugin was updated a couple of weeks ago, and the shop skeleton was updated to use it properly. Did you start fresh with skeletons or are you mix-matching the older skeletons with the newer plugin?

Ahha, that is it, I was using an outdated download of the snipcart plugin, I downloaded new versions of both and installed those and it is working totally fine. Thanks much!

We want similar functionality but want to use the one-page-skeleton feature of parallax with a new item “blog”. For an example we want to have menu as: Home Highlights Features Blog.
and we have directory structure as:

How to do this?

By default Grav makes any folder with a number in front visible in the menu. So add numbers to highlights and features like home and blog.

features and highlights are the subfolder of home:
_features Screenshot from 2015-03-25 10:33:57

Would be helpful in the future if you put these kinds of things between triple dashes --- so they get converted to code.

If you want to have the first 3 items (home, highlights, features) as the on-page menu as it is currently in the one-page skeleton, but just with an extra menu item that takes you to the blog, you can simply add it manually to the navigation override block in the templates/modular.html.twig file add manually add the link to the blog page after the on-page links are added via the for loop:

{% block header_navigation %}
    {% if show_onpage_menu %}
        <ul class="navigation">
        {% for module in page.collection() %}

            {% set current_module = ( or module.activeChild) ? 'active' : '' %}
            <li class="{{ current_module }}"><a href="#{{ _self.pageLinkName( }}">{{ }}</a></li>

        {% endfor %}
        {% set active = ( or page.activeChild) ? 'active' : '' %}
         <li class="{{ active }}"><a href="/blog">Blog</a></li>
    {% else %}
        {{  parent() }}
    {% endif %}
{% endblock %}

In that case /blog hyperlink is not working. And by navigating the blog page manually, menu is showing only two item “Home Blog” .
What should I change for /blog hyperlink working?

The ‘onepage’ menu only works for the homepage as its dynamically created by the elements in the page. I think its best if you create a manual menu that goes to the items you need. That way it will be there on all pages.

To do this you will need to do a couple of things:

  1. Turn off the onpage menu by adding a header item to your modular home page md file:
onpage_menu: false
  1. Edit the partials/navigation.html.twig and replace that entire file with a simple list:
<ul class="navigation">
  <li><a href="/">Home</a></li>
  <li><a href="/#highlights">Highlights</a></li>
  <li><a href="/#features">Features</a></li>
  <li><a href="/blog">Blog</a></li>

Something like that. Feel free to adjust the items, urls etc.

When trying to implement this, the scrolling effect is not working as in one-page-skeleton.
I want to implement the same functionality as in one-page-skeleton with blog.

Make sure you update the antimatter theme via GPM.

I am having trouble getting this to work on a freshly installed Debian 8.3 (32-bit) server with Apache, hosted in DigitalOcean. I just installed Apache, PHP and unzip (plus the Debian packages upgrade).

Steps taken:

  1. Installed one-page skeleton - worked fine.
  2. Added /pages and /plugins directories from the blog skeleton.
  3. Changed onpage_menu to false (in the onepage file)
  4. Changed / to
  5. Changed title in to Blog (so it shows as Blog in the menu)
  6. Cleared Grav cache (bin/grav clear-cache)

The homepage shows up and the menu has Home and Blog entries. If I click Blog the error is “The requested URL /blog was not found on this server.”

I tried it also with RewriteBase enabled in .htaccess, but the result is the same.

I just cannot figure out what I did wrong. Suggestions?