This is the code of my blog: https://www.playingaws.com/
Static site generator with Jekyll
.
Public project.
This repository contains the source code for a Jekyll-based blog website focused on AWS topics. The site, "Playing AWS," is designed to help users learn, remove barriers, and practice AWS concepts.
The blog is built using the Jekyll static site generator with the Chirpy theme. It features a responsive design, SEO optimization, and integration with various services such as Google Analytics and Giscus for comments.
This code has been deployed here: https://www.playingaws.com/
blog-web-code/
├── _config.yml
├── _data/
├── _includes/
├── _layouts/
├── _plugins/
├── _posts/
├── _tabs/
├── assets/
├── CHANGELOG.md
├── index.html
└── README.md
_config.yml
: Main configuration file for the Jekyll site_data/
: Contains YAML files for contact information, localization, and sharing options_includes/
: Houses partial HTML files and JavaScript for various site components_layouts/
: Contains HTML templates for different page types_posts/
: Directory for blog post markdown files_tabs/
: Markdown files for main navigation tabsassets/
: Static assets including CSS, JavaScript, and images
- Ruby (version specified in
.ruby-version
file) - Bundler
- Node.js and npm (for asset compilation)
-
Clone the repository:
git clone https://github.com/alazaroc/blog-web-code.git cd blog-web-code
-
Install dependencies:
bundle install npm install
To start the development server:
bundle exec jekyll serve
Visit http://localhost:4000
in your browser to view the site.
To improve the quality of your content, you can run markdownlint
locally:
npx markdownlint "_posts/**/*.md" "_tabs/**/*.md" "README.md"
To see a summary of the most frequently failing rules and decide if you want to disable them, you can use:
npx markdownlint "_posts/**/*.md" "_tabs/**/*.md" "README.md" | grep -o 'MD[0-9]\\+' | sort | uniq -c | sort -nr
You can customize the rules by creating or modifying the .markdownlint.json
file in the project root.
Edit _config.yml
to customize site settings, including:
- Site title and description
- Social media links
- Google Analytics ID
- Comments system (Giscus)
-
Create new blog posts in the
_posts/
directory using the formatYYYY-MM-DD-title.md
. -
Use the front matter to set post metadata:
--- title: "Your Post Title" date: YYYY-MM-DD HH:MM:SS +/-TTTT categories: [Category1, Category2] tags: [tag1, tag2] ---
-
Write your post content in Markdown below the front matter.
- Modify
_includes/
files to change site components - Edit
assets/css/custom.css
for custom styles - Update
_data/
YAML files to change contact and sharing options
The blog follows a typical Jekyll static site generation process:
- Content is written in Markdown files (posts and pages)
- Jekyll processes these files along with the configuration and layout templates
- Static HTML files are generated
- These files are served to users via a web server
[Markdown Files] -> [Jekyll Processing] -> [Static HTML] -> [Web Server] -> [User's Browser]
Jekyll handles the conversion of Markdown to HTML, applies layouts and includes, and generates the final static files that can be served by any web server.
The deployment process is not specified in the provided files. However, given the static nature of Jekyll sites, common deployment options include:
- GitHub Pages
- AWS S3 + CloudFront
- Netlify
- Vercel
Ensure that you build the site locally (bundle exec jekyll build
) before deploying, or set up a CI/CD pipeline to automate the build and deployment process.
For more information on Jekyll and the Chirpy theme, refer to their respective documentation: