<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Courses on Ghafoor's Personal Blog</title><link>http://ghafoorsblog.com/series/courses/</link><description>Recent content in Courses on Ghafoor's Personal Blog</description><generator>Hugo</generator><language>en</language><managingEditor>noreply@example.com (AG Sayyed)</managingEditor><webMaster>noreply@example.com (AG Sayyed)</webMaster><copyright>Copyright © 2024-2026 AG Sayyed. All Rights Reserved.</copyright><lastBuildDate>Fri, 15 May 2026 13:20:20 +0100</lastBuildDate><atom:link href="http://ghafoorsblog.com/series/courses/index.xml" rel="self" type="application/rss+xml"/><item><title>Grid and Cards</title><link>http://ghafoorsblog.com/courses/ags/hbstack-content/hbstack/02-layout-scripts/02-module/005-grid-and-cards/</link><pubDate>Fri, 10 Oct 2025 17:06:05 +0100</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/hbstack-content/hbstack/02-layout-scripts/02-module/005-grid-and-cards/</guid><description>&lt;p class="lead text-primary"&gt;
Summary content goes here.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="hbstack-bootstrap-module"&gt;Hbstack Bootstrap Module&lt;/h2&gt;
&lt;p&gt;It comes with lot of features and components to build modern websites. The main information can be found at &lt;a
 href="https://bootstrap.hugomods.com/docs"
 
 target="_blank" rel="noopener noreferrer"&gt;Hugomods&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="using-image-grid-shortcode"&gt;Using Image Grid Shortcode&lt;/h3&gt;
&lt;p&gt;The shortcode takes a source directory as its input, that should be present in &lt;code&gt;data&lt;/code&gt; directory. This file provides a correct path to images along with their title. Path can be local or external URL.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The following shortcode reads the file from a data directory and displays the images.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="d-flex bs-img-grid flex-wrap gap-1 justify-content-center"&gt;
 &lt;div class="bs-img-grid-item text-center"&gt;
 
















 
 &lt;figure class="figure " &gt;
 &lt;picture &gt;
 &lt;img class="figure-img bs-img-grid-item-img" src="https://avatars.githubusercontent.com/u/128204519?s=200&amp;v=4&amp;width=200&amp;height=200" alt="HugoMods" title="HugoMods" loading="lazy" height="200" width="200" /&gt;
&lt;/picture&gt;

 &lt;figcaption class="figure-caption"&gt;HugoMods&lt;/figcaption&gt;
&lt;/figure&gt;

 &lt;/div&gt;
 &lt;div class="bs-img-grid-item text-center"&gt;
 
















 
 &lt;figure class="figure " &gt;
 &lt;picture &gt;
 &lt;img class="figure-img bs-img-grid-item-img" src="https://avatars.githubusercontent.com/u/127904984?s=200&amp;v=4&amp;width=200&amp;height=200" alt="HB Framework" title="HB Framework" loading="lazy" height="200" width="200" /&gt;
&lt;/picture&gt;

 &lt;figcaption class="figure-caption"&gt;HB Framework&lt;/figcaption&gt;
&lt;/figure&gt;

 &lt;/div&gt;
 &lt;div class="bs-img-grid-item text-center"&gt;
 
















 
 &lt;figure class="figure " &gt;
 &lt;picture &gt;
 &lt;img class="figure-img bs-img-grid-item-img" src="https://avatars.githubusercontent.com/u/17720932?s=200&amp;v=4&amp;width=200&amp;height=200" alt="Razon Yang" title="Razon Yang" loading="lazy" height="200" width="200" /&gt;
&lt;/picture&gt;

 &lt;figcaption class="figure-caption"&gt;Razon Yang&lt;/figcaption&gt;
&lt;/figure&gt;

 &lt;/div&gt;
&lt;/div&gt;


&lt;h3 id="article-cards-shortcode"&gt;Article Cards shortcode&lt;/h3&gt;

&lt;blockquote class="alert alert-danger" role="alert"&gt;
 &lt;p class="alert-heading fw-bold"&gt;
 &lt;svg aria-hidden="true" class="bi bi-exclamation-octagon hi-svg-inline me-1 me-lg-2" fill="currentColor" height="1em" viewBox="0 0 16 16" width="1em" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353zM5.1 1 1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/&gt;
 &lt;path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/&gt;
&lt;/svg&gt;Caution
 &lt;/p&gt;</description></item><item><title>Content_Panel module</title><link>http://ghafoorsblog.com/courses/ags/hbstack-content/hbstack/04-hbstack-configuration/01-module/005-content-panel/</link><pubDate>Tue, 30 Sep 2025 11:57:45 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/hbstack-content/hbstack/04-hbstack-configuration/01-module/005-content-panel/</guid><description>&lt;p class="lead text-primary"&gt;
Summary content goes here.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="what-the-content-panel-actually-does-"&gt;what the content panel actually does ✅&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;hb.content_panel&lt;/code&gt; module wires in a reusable panel that shows up on single-type pages (blog posts, docs pages, etc.). Out of the box it can surface three kinds of extras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Edit/Source buttons&lt;/strong&gt; – taken from the repo info you supply, so a reader can jump straight to “view source” or “edit this page” in GitHub/GitLab/etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Translation jump list&lt;/strong&gt; – if you run multilingual content, it auto-lists other language variants.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comment controls&lt;/strong&gt; – it can toggle comments globally or per section.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So it’s not required for a page to render, but it enriches every post/doc with these meta actions instead of you wiring them manually each time.&lt;/p&gt;</description></item><item><title>ESLint Setup and Configuration Guide</title><link>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/005-eslint/</link><pubDate>Sat, 20 Sep 2025 14:57:58 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/005-eslint/</guid><description>&lt;p class="lead text-primary"&gt;
Master ESLint from the ground up! This comprehensive guide covers everything from basic installation to advanced configuration setups. Learn how to enforce coding standards, extend popular style guides like Airbnb and Google, configure rules for different project types, and integrate ESLint seamlessly into your VS Code workflow for consistent, high-quality JavaScript development.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-what-is-eslint"&gt;🎯 What is ESLint&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;ESLint&lt;/strong&gt; is a static code analysis tool for identifying and fixing problems in JavaScript code. It helps developers:&lt;/p&gt;</description></item><item><title>Test Driven Development Setup With Jest in VS Code</title><link>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/002-td-setup/</link><pubDate>Fri, 19 Sep 2025 09:26:07 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/002-td-setup/</guid><description>&lt;p class="lead text-primary"&gt;
Test Driven Development (TDD) is a software development approach where tests are written before the actual code. This method helps ensure that the code meets its requirements and behaves as expected. In this guide, we will set up a TDD environment using Jest, a popular testing framework, in Visual Studio Code (VS Code). This setup is divided into several steps to help get started with TDD effectively. Assuming you have Node.js and npm installed, follow these steps:
&lt;/p&gt;</description></item><item><title>Spell Check</title><link>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/001-spell-check/</link><pubDate>Fri, 19 Sep 2025 00:24:23 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/02-module/001-spell-check/</guid><description>&lt;p class="lead text-primary"&gt;
Summary content goes here.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-introduction-to-spell-check-in-vs-code"&gt;📝 Introduction to Spell Check in VS Code&lt;/h2&gt;
&lt;p&gt;Spell check is an essential feature for maintaining the quality and professionalism of your Markdown documents. In Visual Studio Code (VS Code), you can setup spell check functionality using extensions that help identify and correct spelling errors as you write. Two extensions that are widely used for this purpose are &amp;ldquo;Code Spell Checker&amp;rdquo; and &amp;ldquo;Spell Right&amp;rdquo;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install a Spell Check Extension&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;hr&gt;
&lt;h2 id="faqs"&gt;FAQs&lt;/h2&gt;

 &lt;div
 class="accordion mb-4"
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-0"
 aria-expanded="true"
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-0"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-0"
 class="accordion-collapse collapse show"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-1"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-1"&gt;
 IBM DevOps and Software Engineering Professional Certificate
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-1"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-2"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-2"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-2"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-3"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-3"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-3"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-4"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-4"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-4"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-5"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-5"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-5"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-6"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-6"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-6"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-7"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-7"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-7"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-8"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-8"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-8"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-9"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-9"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-9"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-10"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-10"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-10"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-11"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-11"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-11"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="accordion-item"&gt;
 &lt;h3 class="accordion-header"&gt;
 &lt;button
 class="accordion-button fw-bold collapsed"
 type="button"
 data-bs-toggle="collapse"
 data-bs-target="#accordion-1779077208455112-coursevscode-linting0101m004qafaq-12"
 
 aria-controls="accordion-1779077208455112-coursevscode-linting0101m004qafaq-12"&gt;
 
 &lt;/button&gt;
 &lt;/h3&gt;
 &lt;div
 id="accordion-1779077208455112-coursevscode-linting0101m004qafaq-12"
 class="accordion-collapse collapse"
 data-bs-parent="#accordion-1779077208455112-coursevscode-linting0101m004qafaq"&gt;
 &lt;div class="accordion-body"&gt;
 
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;</description></item><item><title>Prettier Setup</title><link>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/01-module/004-prettier-setup/</link><pubDate>Mon, 15 Sep 2025 16:40:35 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/ags/vscode-content/vscode-linting-and-formatting/01-markdown/01-module/004-prettier-setup/</guid><description>&lt;p class="lead text-primary"&gt;
Summary content goes here.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
 href="https://prettier.io/"
 
 target="_blank" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt; is an opinionated code formatter that supports many languages and integrates with most editors.&lt;/li&gt;
&lt;li&gt;It enforces a consistent style by parsing your code and re-printing it with its own rules.&lt;/li&gt;
&lt;li&gt;This helps reduce debates about code style and allows developers to focus on writing code.&lt;/li&gt;
&lt;li&gt;Prettier can be used with vscode by installing &lt;a
 href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"
 
 target="_blank" rel="noopener noreferrer"&gt;this extension&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation"&gt;Installation&lt;/h3&gt;
&lt;p&gt;Follow the instructions on the above link provided to install the extension. Then create two empty files in the root of your project.&lt;/p&gt;</description></item></channel></rss>