Automatic in-page navigation plugin? I'm writing some pretty huge articles consisting of multiple (80+) Matrix blocks of various types. They're so long they'd benefit from in-article navigation for skip-links.

WordPress has a plugin called autogen_menu which creates linked navigation from the header hierarchy in a post. You just put in a small snippet where you want the generated nav to go and it generates all the links (and presumably id's on the headers) itself. Has Craft got anything similar, I've not been able to find a plugin that does this?

Or, would this be better outside of Craft entirely and done as JS?
If I'm understanding you correctly, you want users when they visit your site to have a secondary menu that has links to various points in the article. That would actually be very easy to do in Craft. It's also possible for you to paginate a page, but that would be far more in-depth.

For skip links, you would need to run over the matrix twice. You will also need an anchor matrix block. It can either be a dedicated block for anchor tags, or a header block. You run over it the first time to create your menu:

&lt;ul class="article menu"&gt;
{% for block in entry.articleMatrix.type('header') %}
    &lt;li&gt;&lt;a href="#{{ block.header|slugify }}"&gt;{{ block.header }}&lt;/a&gt;&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;


Then later when you are running over your article, you can check for block type and add the id as needed:

{% if block.type == "header" %}
    &lt;h1 id="{{ block.header|slugify }}"&gt;{{ block.header }}&lt;/h1&gt;
{% endif %}


This is a really basic example. It uses Bob Olde Hampsink's slugify plugin (it uses Craft's built in slug method). It would be better if you could determine (maybe with a drop down field in your block) what level of heading the block is. I suggest you also cache each matrix loop for performance.