Today I made some significant improvements to this blog with the help of GitHub Copilot. Not only did we convert our blog posts from HTML to Markdown format, but we also added two exciting new features: a dynamic GitHub repositories page and an academic publications page.

Converting to Markdown

Markdown is a lightweight markup language that’s perfect for writing blog posts because:

  1. It’s easier to read and write than HTML
  2. It converts easily to well-formatted HTML
  3. It supports all the features we need (code blocks, lists, headers, etc.)
  4. It’s widely used in the development community

Here’s an example of how clean and simple markdown syntax is:

# This is a heading
- This is a bullet point
- Here's another one

And here's some `inline code`

Dynamic GitHub Repositories

One of the most exciting additions is the new repositories page that automatically fetches and displays my GitHub repositories. This feature:

  • Pulls data directly from the GitHub API
  • Shows repository descriptions, stars, and fork counts
  • Updates automatically when I create new repositories
  • Includes last update dates
  • Features a clean, card-based design with hover effects

Here’s a snippet of the JavaScript that powers this feature:

async function fetchRepositories() {
    const response = await fetch('https://api.github.com/users/ivanrulik/repos?sort=updated');
    const repos = await response.json();
    // Display repositories in a responsive grid
    repos.forEach(repo => {
        // Create and populate repository cards
    });
}

Academic Publications Integration

Another major addition is the publications page that integrates with ORCID to display my academic work. This feature:

  • Fetches publication data from ORCID’s API
  • Displays publication titles, types, and years
  • Includes DOI links when available
  • Updates automatically when new publications are added
  • Uses a clean, academic-style layout

The publications are fetched using the ORCID API:

async function fetchPublications() {
    const response = await fetch('https://pub.orcid.org/v3.0/0000-0002-7448-5755/works', {
        headers: {
            'Accept': 'application/json'
        }
    });
    // Process and display publications
}

The Conversion Process

The conversion process was straightforward thanks to GitHub Copilot. We kept all the important features of our posts, including:

  • YAML front matter for metadata
  • Code blocks with syntax highlighting
  • Headers and lists
  • All the original content

What’s Next?

With these improvements, the blog is now more dynamic and showcases both my software development work and academic publications. Some future improvements I’m considering:

  1. Adding more markdown features like:
    • Tables for structured data
    • Block quotes for important notes
    • Image captions
  2. Enhancing the repository cards with:
    • Language statistics
    • Recent commit activity
    • Repository topics
  3. Expanding the publications page with:
    • Citation counts
    • Publication abstracts
    • Co-author information
  4. Creating markdown snippets for common post structures
  5. Adding a markdown style guide for consistency

These updates have transformed the blog from a simple static site into a dynamic showcase of my work across both software development and academia. Stay tuned for more updates and improvements to the blog!