{"id":15145077,"url":"https://github.com/akshay-rajan/blog","last_synced_at":"2026-01-20T04:01:54.015Z","repository":{"id":256982903,"uuid":"856988063","full_name":"akshay-rajan/blog","owner":"akshay-rajan","description":"Blog using Jekyll","archived":false,"fork":false,"pushed_at":"2025-06-08T06:08:18.000Z","size":2024,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T07:19:08.291Z","etag":null,"topics":["github-pages","jekyll","ruby"],"latest_commit_sha":null,"homepage":"https://akshay-rajan.github.io/blog/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akshay-rajan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-13T15:31:19.000Z","updated_at":"2025-06-08T06:08:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"071dd616-3574-4744-ab08-1ac06982a0a6","html_url":"https://github.com/akshay-rajan/blog","commit_stats":null,"previous_names":["akshay-rajan/blog"],"tags_count":0,"template":false,"template_full_name":"chadbaldwin/simple-blog-bootstrap","purl":"pkg:github/akshay-rajan/blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay-rajan%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay-rajan%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay-rajan%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay-rajan%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshay-rajan","download_url":"https://codeload.github.com/akshay-rajan/blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay-rajan%2Fblog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28595318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-pages","jekyll","ruby"],"created_at":"2024-09-26T11:07:46.118Z","updated_at":"2026-01-20T04:01:54.009Z","avatar_url":"https://github.com/akshay-rajan.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [![Icons](https://skillicons.dev/icons?i=ruby)](https://skillicons.dev)  Blog using Jekyll \n\nJekyll allows us to **generate static sites** and write content in markdown.\nThe content can be stored in Github itself, and hosted freely via Github Pages.\nJekyll uses *Liquid* templating language for creating custom layouts and *includes*.\n\n### Contents\n\n- [Requirements](#requirements)\n- [Getting Started](#getting-started)\n- [Project Structure](#project-structure)\n- [Front Matter](#front-matter)\n- [Posts](#posts)\n- [Pages](#pages)\n- [Permalinks](#permalinks)\n- [Default Front Matter](#default-front-matter)\n- [Themes](#themes)\n\n### Requirements\n- Ruby \n  ```bash\n  sudo apt-get install ruby-full\n  ```\n- Ruby Gems (Package Manager for Ruby) \n  ```bash\n  gem -v\n  ````\n- Jekyll \n  ```bash\n  gem install jekyll bundler\n  jekyll -v\n  ```\n### Getting Started\n\nCreate a new project:\n```bash\njekyll new my_blog\n```\nMove into the project directory, and install missing gems:\n```bash\ncd my_blog\nbundle install\n```\nServe the website:\n```bash\nbundle exec jekyll serve --livereload\n```\nThe site is now live at http://127.0.0.1:4000/. \n\u003e After the first serve, just do `jekyll serve`\n\n### Project Structure\n\n- `_posts`: Blog posts\n- `_site`: Final product generated by Jekyll\n- `_config.yml`: Settings for the website\n\n### Front Matter\n\nThe front matter is a `YAML/JSON` block that provides metadata for a specific page or post.\nIt is placed at the beginning of the file between two sets of three dashes (`---`). \n```yaml\n---\nlayout: post\ntitle: My First Blog Post\ndate: 2022-01-01\nauthor: John Doe \ncategories:\n  - Jekyll\n  - Markdown\n---\n```\nThe URL of the page also depends on the front matter.\nCustom variables (like 'author' above) can be accessed from the layouts.\n\n### Posts\n\nTo add a post, create a new file somewhere inside `_posts`.\nJekyll requires blog post files to be named according to the following format:\n\n`YYYY-MM-DD-title.markdown`\n\n- Common formats for posts include markdown and html.\n\nInclude the `layout: \"post\"` front matter, or a custom layout.\n\nBy default, the title and date is generated from the filename.\n\nThe blog posts can be organized into different folders in the `_posts` directory, without causing any problems to the site.\n\n\u003e Draft posts can be kept inside `_drafts`.\n\u003e To see the drafts, serve the projects through\n  ```\n  jekyll serve --draft\n  ```\n\u003e Drafts does not have to follow the naming convention.\n\n### Pages\n\nPages like the `about.markdown` can be included by simply creating a markdown file on the root of the project.\n\n### Permalinks\n\nTo make the URL independent of the front matter, we need to use permanent links for the posts.\n```yml\npermalink: \"/url-for-this-post/\"\n```\nWe can use variables in the link:\n```yml\npermalink: \"/:title\"\n```\n\n### Default Front Matter\n\nWe can define default front matter in the `_config.yml`:\n\n```yml\ndefaults:\n  - \n    scope:\n      path: \"\" # Path to the files in which the defaults will be applied\n      type: \"post\"\n    values:\n      layout: \"post\" # Default layout for the files in the above path\n```\n\n### Themes\n\nThe default theme is `minima`. More themes can be found at [rubygems.org](https://rubygems.org).\n\nTo change theme, just add a new line to the `Gemfile` and install\n```Gemfile\ngem \"jekyll-theme-hacker\"\n```\n```bash\nbundle install\n```\nFinally, update the theme in `_config.yml` and restart the server via `bundle exec jekyll serve`.\n\nMake sure the *layouts* in the front matter are available for the current theme.\n\n### Layouts\n\nEach theme defines some layouts. \nWe can override / create custom layouts by creating a new folder `_layouts`.\nInside this, add new layouts as `mylayout.html`.\n\nTo grab the content of the posts, use the *Liquid* templating language:\n```html\n{{ content }}\n```\nWe can assign hierarchical layouts, for example, a general layout followed by all the pages, and specific layouts for each category of posts.\n\nThis is done by creating the general `layout.html`, and then using it as the `layout` front matter in another layout. \n\n---\nReferences: \n- [Giraffe Academy's Playlist](https://youtube.com/playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB\u0026si=d5X-u4ORJgHZ558h)\n- [Chad Baldwin's Blog](https://chadbaldwin.net/2021/03/14/how-to-build-a-sql-blog.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshay-rajan%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshay-rajan%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshay-rajan%2Fblog/lists"}