In this article, we are going to see how we can insert a working table of contents in blogger that too with a single shortcode. Blogger is a platform where there are lots of limitations compared to WordPress where a single plugin would do the job.

Now onwards you don’t have to depend upon long codes and javascript which would slow down your website. We present you the first shortcode based automatic table of content for blogger.

Features of our Plugin

We have designed this plugin for blogger such that no server load or third-party scripts are loaded besides the base jquery. And it only loads after your entire page is loaded so that other important content is loaded first and making sure our code doesn’t hurt them.

table of content for blogger
TOC Pro V 1.0
  • Complete Shortcode based
  • One time setup
  • Optimized Code for Performance
  • Toggle functionality
  • Minimal CSS

And the best thing is, It’s completely free and licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Benefits of TOC

Table of Contents provide lots of benefits for a blog like it will help visitor to get an idea of your article. If your article is lengthy it would be a helpful thing for a reader to navigate between sections.

This can catch lazy readers to stay in your article and boost your CTR, this is not all the benefits there are lots of SEO benefits that we will discuss below.

SEO Benefits

There are lots of benefits in terms of SEO like Jump to links and one-line Sitelinks below articles.

Jump to Links in Google Search

Jump to links is very useful when you wrote a lengthy article and one of your sub-keywords is ranked on google. Jump to links would catch visitors quickly as it would match the searched keyword and take them directly to the portion of the particular article.

Jump to Links

One-line Sitelinks

One-line sitelinks works like the ordinary sitelinks but the only difference is that it would be listing the contents in your TOC plugin. So whatever you wrote in your article would be highlighted below your post.

toc pagelinks
One-Line Sitelinks

Table of Contents in Blogger

You have to configure little things before using the shortcode. This is a onetime job and after that, don’t have to worry about it.

First of all, make sure that jQuery is already installed in your blog, it is usually present in most of the themes and if yure not sure about this just open your theme and search for jquery in the search bar.

How to Insert a table of Content

From your blogger dashboard click Edit HTML in Theme panel and paste the below code after the </body> tag.

<script async='async' defer='defer'>
var head,newLine,el,title,link,ToC="<nav class='table-of-contents' role='navigation'><h4 onclick='toc()'>Contents</h4><ul style='display:none'>";$("article h2, article h3, article h4, article h5").attr("id",function(arr){return "point" + arr;});$("article h2, article h3, article h4, article h5").each(function(){el=$(this),title=el.text(),link="#"+el.attr("id"),ToC+=newLine="<li><a href='"+link+"'>"+title+"</a></li>"}),ToC+="</ul></nav>",$(".toc-pro").prepend(ToC);function toc() {$(".table-of-contents ul").toggle();}
</script>

After that paste the below CSS between <style> and </style>

/* TOC by MFK (bloginos.com) */
.table-of-contents{flex:auto;width:fit-content;background:#eee;font-size:14px;padding:11px;margin:8px 0 30px 0}
.table-of-contents li{margin:0 0 0.25em 0}
.table-of-contents a{color:#2a5365}
.table-of-contents h4{margin:0;cursor:pointer}
.table-of-contents h4:before{font-family:FontAwesome;content:"\f0c9";padding-right:7px;}

Save your theme and you’re set!

After that got to your blogger post editor and switch to HTML mode. Use this code

<div class='toc-pro'></div> 

to insert the TOC in any of your posts.

Plugin Support for AMP Themes

It’s a fact that AMP doesn’t support all Javascript codes, you can refer the official page for all supported elements here. There is no way to run TOC over valid AMP HTML pages. But we can run the TOC in desktop versions without affecting valid AMP pages.

NOTE: You will not get the full shortcode benefit as above, but this is optimized for AMP themes and would be better because it’s built with AMP elements and Javascript. It’s a foolish thing to burden our AMP themes to load jQuery unnecessarily.

The above code depends upon the jQuery which is not at all needed for an AMP theme so we have created a TOC that is build with pure Javascript and AMP elements.

If you are a beginner you will find a little bit hard to understand this, no problem just follow below steps to insert a TOC in your AMP themes.

From your Blogger dashboard go to Theme and click Edit HTML and paste the below code before the </body> tag

<b:if cond='not data:blog.isMobileRequest and data:view.isPost'>
<script>
var TOCpro=i=headlength=gethead=0;for(headlength=document.getElementById(&quot;myArticle&quot;).querySelectorAll(&quot;h2, h3, h4, h5&quot;).length,i=0;i&lt;headlength;i++)gethead=document.getElementById(&quot;myArticle&quot;).querySelectorAll(&quot;h2, h3, h4, h5&quot;)[i].textContent,document.getElementById(&quot;myArticle&quot;).querySelectorAll(&quot;h2, h3, h4, h5&quot;)[i].setAttribute(&quot;id&quot;,&quot;point&quot;+i),TOCpro=&quot;&lt;li&gt;&lt;a href=&#39;#point&quot;+i+&quot;&#39;&gt;&quot;+gethead+&quot;&lt;/a&gt;&lt;/li&gt;&quot;,document.getElementById(&quot;toc-pro&quot;).innerHTML+=TOCpro;
</script>
</b:if>

Paste the CSS between the <style amp-custom='amp-custom'> and </style> and Save the theme.

/* TOC */
.toc{font-size:20px;font-weight:600;cursor:pointer;background-color:#edeef1;padding:7px 11px;width:fit-content;margin:15px 0}.toc:focus,.toc li:focus{outline:none}.toc svg{vertical-align:middle;width:20px;height:20px}
#toc-pro {background-color:#edeef1;margin:0;padding:0 5px 0 11px;width: fit-content;}#toc-pro a{color:#222}#toc-pro li{font-size: 15px;font-weight:400}

Before Saving the theme you have to find the article tag and add an id attribute with id=’myArticle’ and it would look like this and Save your theme.

<article class='post hentry' id='myArticle' itemscope='itemscope' itemtype='https://schema.org/BlogPosting'>

After that just go to the post editor and switch to HTML mode and paste the below code to insert TOC in any of your posts.

<div class="toc" on="tap:toc-pro.toggleVisibility" role="button" tabindex="0">
Table of Contents <svg height="18" viewbox="0 0 24 24" width="18"><path d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z" fill="#000000"></path></svg>
<div hidden="hidden" id="toc-pro"></div></div>

Debugging the Errors

All the codes are optimized and tested in various themes but can’t be the same in every case. If you find any problem with your theme you can comment below we will be happy to help you.

Conclusion

I hope that you liked this article on table of contents in blogger and found helpful for your blog. If so please share this article with your friends who would also be benefitted. If you find any problem or issues you can comment below.

LEAVE A REPLY

Please enter your comment!
Please enter your name here