Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ plugins:

# Archives
jekyll-archives:
enabled: all
enabled:
- categories
- years
- months
- days
layout: archive
permalinks:
category: '/archives/:name/'
Expand All @@ -41,6 +45,11 @@ defaults:
values:
layout: "archive"
type: "authors"
- scope:
path: "_posts/community"
values:
layout: "post"
permalink: /community-blog/:title/

# Pagination
paginate: 6
Expand Down
14 changes: 6 additions & 8 deletions _layouts/archive.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,14 @@ <h2>Archive of posts {% if page.type == "year" %} during {{ page.type }} {% elsi
</div>
<div class="row listrecent">
{% if page.type == "authors" %}
{% for post in site.posts %}
{% if post.authors contains page.username or page.username == post.authors %}
{% include postbox.html %}
{% endif %}
{% assign author_posts = site.posts | where_exp: "post", "post.authors contains page.username or page.username == post.authors" %}
{% for post in author_posts %}
{% include postbox.html %}
{% endfor %}
{% else %}
{% for post in page.posts %}
{% include postbox.html %}
{% endfor %}
{% for post in page.posts %}
{% include postbox.html %}
{% endfor %}
{% endif %}
</div>
</section>

20 changes: 18 additions & 2 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -153,12 +153,20 @@
<a class="nav-link" href="{{ site.baseurl }}/library/">Library</a>
</li> -->

{% if page.url == "/coc/" %}
{% if page.url == "/blog/" %}
<li class="nav-item active">
{% else %}
<li class="nav-item">
{% endif %}
<a class="nav-link" href="{{ site.baseurl }}/coc/">COC</a>
<a class="nav-link" href="{{ site.baseurl }}/blog/">Monthly Meetup Blog</a>
</li>

{% if page.url == "/community-blog/" %}
<li class="nav-item active">
{% else %}
<li class="nav-item">
{% endif %}
<a class="nav-link" href="{{ site.baseurl }}/community-blog/">Community Blog</a>
</li>

<li class="nav-item">
Expand Down Expand Up @@ -252,6 +260,14 @@ <h1 class="sitetitle">{{ site.name }}</h1>
<a href="{{ site.baseurl }}/library/">Library</a>
</li> -->

<li class="nav-item" style="display:inline; margin: 2em;">
<a href="{{ site.baseurl }}/blog/">Monthly Meetup Blog</a>
</li>

<li class="nav-item" style="display:inline; margin: 2em;">
<a href="{{ site.baseurl }}/community-blog/">Community Blog</a>
</li>

<li class="nav-item" style="display:inline; margin: 2em;">
<a href="{{ site.baseurl }}/coc/">COC</a>
</li>
Expand Down
129 changes: 129 additions & 0 deletions _posts/community/2026-04-20-welcome-to-the-community-blog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
layout: post
title: "How to Create a Blog Post for the Community Blog"
date: 2026-04-20
authors:
- ramgopalsiddh
categories: [ community ]
description: "A comprehensive guide on how to create and contribute blog posts to the BangPypers Community Blog."
featured: false
---

## How to Create a Blog Post for the Community Blog

Welcome to the BangPypers Community Blog! This guide will walk you through the process of creating and publishing your own blog post.

### Getting Started

The Community Blog uses GitHub and Jekyll to publish content. All blog posts are written in Markdown format and stored in the `_posts/community/` directory of our repository. This is separate from the main blog posts in `_posts/`, which are typically written by core organizers.

### Step-by-Step Guide to Creating a Blog Post

#### 1. **Fork the Repository**

First, fork the BangPypers repository from our GitHub page to your own account. This allows you to make changes without affecting the main content.

#### 2. **Create a New File**

Create a new Markdown file in the `_posts/community/` directory with the following naming convention:

```
YYYY-MM-DD-post-title.md
```

Example: `2025-02-21-my-first-post.md`

#### 3. **Add Front Matter**

Every blog post must start with YAML front matter that looks like this:

```yaml
---
layout: post
title: "Your Blog Post Title"
date: YYYY-MM-DD
authors:
- your-username
categories: [ community, python, tutorial ]
description: "A brief description of your blog post (appears in previews)."
featured: false
---
```

- **title**: The title of your blog post
- **date**: Publication date in YYYY-MM-DD format
- **authors**: List your author handle (add yourself in `_authors/` directory if new)
- **categories**: Relevant tags for your post (available: community, python, tutorial, workshop etc.)
- **description**: A short summary for social sharing
- **featured**: Set to `true` to highlight your post on the homepage
- **image**: Optional URL to a featured image for social sharing

#### Author Registration

If you're a new author, create a profile in the `_authors/` directory. Create a file named `your-username.md` with YAML front matter like:

```yaml
---
username: your-username
name: "Your Full Name"
logo: https://example.com/avatar.jpg
email: your-email@example.com
twitter: https://twitter.com/yourhandle
web: https://yourwebsite.com
description: "A short bio about yourself."
---
```

This profile will appear with your posts.
```


#### 4. **Write Your Content**

Use Markdown formatting to write your blog post. Here are some useful formatting tips:


#### 5. **Preview Your Post Locally**

Before submitting, preview your post to ensure it renders correctly:

1. Install Jekyll and dependencies: `bundle install`
2. Run the site locally: `bundle exec jekyll serve`
3. Open http://localhost:4000 to view your post
4. Check formatting, links, and images

#### 6. **Submit Your Post**

Once your post is ready:

1. Commit your changes to your fork
2. Create a pull request to the main repository with a clear title.
3. Our team will review your post.
4. Reviewers check for: adherence to guidelines, quality, relevance, and technical accuracy
5. If changes are requested, update your PR accordingly
6. Once approved, it will be published to the community blog


### Content Guidelines

- Posts should be Python or community-related
- Be respectful and follow our [Code of Conduct](/coc.html)
- Avoid promotional or overly commercial content
- Attribution is important—cite your sources
- Posts should be original or properly attributed if previously published elsewhere

### Need Help?

If you have questions about creating a blog post, feel free to:
- Ask on our [Discord server](https://discord.gg/Tnhbqh33zd)
- Open an issue on [GitHub](https://github.com/bangpypers/bangalore.python.org.in)
- Join our [mailing list](http://mail.python.org/mailman/listinfo/bangpypers)

### Troubleshooting

- **Jekyll won't build?** Ensure you have Ruby and Bundler installed. Run `bundle install` to install dependencies.
- **Images not appearing?** Check the URL is correct and accessible. For local images, ensure they're in the right path.
- **Front matter errors?** Validate your YAML syntax—use a YAML validator online.
- **Post not showing?** Check the date is not in the future and `hidden` is `false`.

We look forward to your contributions!
42 changes: 42 additions & 0 deletions assets/css/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,45 @@
@import
"syntax"
;

/* Exclusive Tabs for Home Page */
.exclusive-tabs-header {
display: flex !important;
flex-direction: row !important;
border-bottom: 1px solid rgba(0, 0, 0, .125) !important;
margin-bottom: 27px;
padding: 0;
}
.exclusive-tab-link {
cursor: pointer !important;
opacity: 0.3 !important;
transition: all 0.3s ease;
margin-right: 40px !important;
padding-bottom: 20px !important;
display: inline-block !important;
border-bottom: 1px solid transparent !important;
margin-bottom: -1px !important;
font-weight: 700 !important;
font-size: 1.4rem !important;
color: #292b2c !important;
}
.exclusive-tab-link.is-active {
opacity: 1 !important;
border-bottom: 1px solid rgba(0,0,0,0.44) !important;
}
.exclusive-tab-link:hover {
opacity: 0.7 !important;
text-decoration: none !important;
}
.exclusive-pane:not(.is-visible) {
display: none !important;
}
.exclusive-pane.is-visible {
display: block !important;
}
.exclusive-content-area {
margin-top: 30px;
}
.pagination a {
cursor: pointer;
}
9 changes: 2 additions & 7 deletions authors.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,8 @@
</span>
<span class="author-meta">
<span class="post-name"><a href="{{author.url}}">{{ author.name }}</a></span><br/>
{% assign number_of_posts = 0 %}
{% for post in site.posts %}
{% if post.authors contains author.username or author.username == post.authors %}
{% assign number_of_posts = number_of_posts | plus: 1 %}
{% endif %}
{% endfor %}
<span class="post-date">Posts contributed: {{ number_of_posts }}</span>
{% assign author_posts = site.posts | where_exp: "doc", "doc.authors contains author.username or author.username == doc.authors" %}
<span class="post-date">Posts contributed: {{ author_posts.size }}</span>
</span>
<span class="post-read-more"><a href="{{author.url}}" title="Read Story"><svg class="svgIcon-use" width="25" height="25" viewbox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"></path></svg></a></span>
<div class="clearfix"></div>
Expand Down
3 changes: 2 additions & 1 deletion blog.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
layout: page
title: Blog
title: Monthly Meetup Blog
description: List of all posts by &quot;BangPypers – The Bangalore Python User Group&quot;.
---

Expand All @@ -12,6 +12,7 @@

<div class="col-lg-12 col-md-12 mb-30px">
{% for post in site.posts %}
{% if post.categories contains 'community' %}{% continue %}{% endif %}
{% assign currentDate = post.date | date: "%Y" %}
{% if currentDate != myDate %}
{% unless forloop.first %}</ul>{% endunless %}
Expand Down
31 changes: 31 additions & 0 deletions community-blog.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
layout: page
title: Community Blog
description: List of all posts in the Community Blog.
permalink: /community-blog/
---

<!-- Community Blog Index
================================================== -->
<section class="recent-posts">

<div class="row listrecent">

<div class="col-lg-12 col-md-12 mb-30px">
{% assign community_posts = site.posts | where: "categories", "community" %}
{% for post in community_posts %}
{% assign currentDate = post.date | date: "%Y" %}
{% if currentDate != myDate %}
{% unless forloop.first %}</ul>{% endunless %}
<h3>{{ currentDate }}</h3>
<ul style="list-style-type:none;">
{% assign myDate = currentDate %}
{% endif %}
<li><span class="text-muted">{{ post.date | date: "%B %-d" }}</span> - <a href="{{ post.url | prepend: site.baseurl | prepend: site.url }}">{{ post.title }}</a></li>
{% if forloop.last %}</ul>{% endif %}
{% endfor %}
</div>

</div>

</section>
Loading