{% extends "second-edition/base.html" %}

{% import "macros.html" as macros %}

{% block title %}{{ config.title }}{% endblock title %}

{% block main %}
{% set posts_section = get_section(path = "second-edition/posts/_index.md") %}
{% set posts = posts_section.pages %}

<div class="front-page-introduction">
    <p>
        This blog series creates a small operating system in the
        <a href="https://www.rust-lang.org/">Rust programming language</a>. Each post is a small tutorial and includes all
        needed code, so you can follow along if you like. The source code is also available in the corresponding
        <a href="https://github.com/phil-opp/blog_os">Github repository</a>.
    </p>
    <p>Latest post:
        {% set latest_post = posts|last %}
        <strong><a href="/{{ latest_post.path | safe }}">{{ latest_post.title }}</a></strong>
    </p>
</div>

<div id="bare-bones" class="post-category bare-bones">Bare Bones</div>
<div class="posts bare-bones">
    {{ macros::post_link(page=posts.0) }}
    {{ macros::post_link(page=posts.1) }}
    {{ macros::post_link(page=posts.2) }}
    {{ macros::post_link(page=posts.3) }}
</div>

<div id="exceptions" class="post-category exceptions">Exceptions</div>
<div class="posts exceptions">
    {{ macros::post_link(page=posts.4) }}
    {{ macros::post_link(page=posts.5) }}
    {{ macros::post_link(page=posts.6) }}
</div>

<div id="memory-management" class="post-category memory-management">Memory Management</div>
<div class="posts memory-management">
    {{ macros::post_link(page=posts.7) }}
    {{ macros::post_link(page=posts.8) }}
    {{ macros::post_link(page=posts.9) }}
</div>

<div class="posts subscribe">
    <h2 class="post-title">Subscribe</h2>
    <p>Receive notifications about new posts and other major changes! You can either:</p>

    <p><ul>
        <li>Subscribe to our <a href="/rss.xml">RSS/Atom Feed</a>,</li>
        <li>Subscribe to <a href="https://github.com/phil-opp/blog_os/issues/479">this GitHub issue</a>, or</li>
        <li>Subscribe to our <a href="https://tinyletter.com/phil-opp/">email newsletter</a>.</li>
    </ul></p>
</div>

<div class="posts first-edition">
    <h2 class="post-title">First Edition</h2>
    You are viewing the second edition of “Writing an OS in Rust”, which is still in progress. The <a href="{{ get_url(path = "/first-edition") | safe }}">first edition</a> has more content, but is no longer updated. We try our best to incorporate the missing content soon.
</div>

<hr>

<div class="frontpage-section">
    {% set extra = get_section(path = "second-edition/extra/_index.md") %}
    <h1>{{ extra.title }}</h1>
    <ul>
        {% for subsection in extra.subsections %}
            <li><a href="/{{ subsection.path | safe }}">{{ subsection.title }}</a></li>
        {% endfor %}
        {% for page in extra.pages %}
            <li><a href="/{{ page.path | safe }}">{{ page.title }}</a></li>
        {% endfor %}
    </ul>
</div>

<div class="frontpage-section">
    <h1>Status Updates</h1>
    {% set status_updates = get_section(path = "status-update/_index.md") %}
    <p>{{ status_updates.description }}</p>
    <ul>
        {% for page in status_updates.pages | slice(end=3) %}
            <li><b><a href="/{{ page.path | safe }}">{{ page.title }}</a></b></li>
        {% endfor %}
        <li><a href="{{ get_url(path="@/status-update/_index.md") | safe }}"><em>view all »</em></a></li>
    </ul>
</div>

<div class="frontpage-section">
    <h1>Support Me</h1>
    {% include "support.html" %}
</div>

<aside id="recent-updates">
    <div class="block">
        <h2>Recent Updates</h2>
        {% include "auto/recent-updates.html" %}
    </div>

    <div class="block">
        <h2>Repository</h2>
        <div class="gh-repo-box">
            <div>
                <svg viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"></path></svg>
                <a href="https://github.com/phil-opp/blog_os" class="repo-link">
                    <span title="blog_os">phil-opp/blog_os</span>
                </a>
            </div>

            <p class="subtitle">
                Writing an OS in Rust
            </p>

            <p class="stars-forks">
                <a href="https://github.com/phil-opp/blog_os/stargazers" class="stars">
                    <svg aria-label="stars" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"></path></svg>
                    {% include "auto/stars.html" %}
                </a>
                <a href="https://github.com/phil-opp/blog_os/network/members" class="forks">
                    <svg aria-label="forks" viewBox="0 0 10 16" version="1.1" width="10" height="16" role="img"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"></path></svg>
                    {% include "auto/forks.html" %}
                </a>

                <a href="https://github.com/sponsors/phil-opp" class="sponsor" href="#support-me">
                    <svg viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 2c-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-1.632.086-2.954 1.333-3 3 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.047-1.69-1.342-2.913-3-3z"></path></svg>
                    Sponsor
                </a>
            </p>
        </div>
    </div>

</aside>

{% endblock main %}
