scraps 2.2.0

Scraps is a portable CLI knowledge hub for managing interconnected Markdown documentation with Wiki-link notation.
{% component scrap_rows(scraps, base_url, timezone) %}
    <ul class="scrap-rows">
        {% for scrap in scraps %}
            <li class="item">
                <a class="row" href="{{ base_url }}scraps/{{ scrap.html_file_name }}">
                    {% if scrap.thumbnail %}
                        <img class="thumbnail" alt="" src="{{ scrap.thumbnail }}" loading="lazy" />
                    {% endif %}
                    <span class="body">
                        <span class="head">
                            <span class="title">{{ scrap.title }}</span>
                            {% if scrap.ctx %}<span class="ctx">{{ scrap.ctx }}</span>{% endif %}
                        </span>
                        {% if scrap.summary %}<span class="summary">{{ scrap.summary }}</span>{% endif %}
                    </span>
                    <span class="graph">
                        {% if scrap.commited_ts %}<span class="metric date">{{ scrap.commited_ts | date(format="%Y-%m-%d", timezone=timezone) }}</span>{% endif %}
                        <span class="metric">{{ scrap.links_count }} ref{% if scrap.links_count != 1 %}s{% endif %} &#183; {{ scrap.backlinks_count }} backlink{% if scrap.backlinks_count != 1 %}s{% endif %}</span>
                    </span>
                </a>
            </li>
        {% endfor %}
    </ul>
{% endcomponent scrap_rows %}

{% component scrap_index(scraps, base_url) %}
    <ul class="scrap-index">
        {% for scrap in scraps %}
            <li class="item">
                <a class="entry" href="{{ base_url }}scraps/{{ scrap.html_file_name }}">
                    <span class="title">{{ scrap.title }}</span>
                    {% if scrap.ctx %}<span class="ctx">{{ scrap.ctx }}</span>{% endif %}
                    <span class="count">{{ scrap.backlinks_count }}</span>
                </a>
            </li>
        {% endfor %}
    </ul>
{% endcomponent scrap_index %}

{% component scrap_links(scraps, base_url) %}
    <ul class="scrap-links">
        {% for scrap in scraps %}
            <li class="item">
                <a class="link" href="{{ base_url }}scraps/{{ scrap.html_file_name }}">
                    <span class="title">{{ scrap.title }}</span>
                    {% if scrap.ctx %}<span class="ctx">{{ scrap.ctx }}</span>{% endif %}
                </a>
            </li>
        {% endfor %}
    </ul>
{% endcomponent scrap_links %}

{% component tag_links(tags, base_url, slice_size=100) %}
    <ul class="tag-links">
        {% for tag in tags | slice(end=slice_size) %}
            <li class="item">
                <a class="link" href="{{ base_url }}tags/{{ tag.slug }}.html">
                    <span class="title">#{{ tag.title }}</span><span class="count">{{ tag.backlinks_count }}</span>
                </a>
            </li>
        {% endfor %}
        {% if tags | length > slice_size %}
            <li class="item">
                <a class="link more" href="{{ base_url }}tags/">More&#8230;</a>
            </li>
        {% endif %}
    </ul>
{% endcomponent tag_links %}

{% component link_card(autolink) %}
<a class="link-card" href="{{ autolink.url }}" target="_blank" rel="noopener noreferrer">
    <svg class="icon" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M6.5 9.5 L9.5 6.5"></path><path d="M7.5 4.5 L9 3 A2.1 2.1 0 0 1 12 6 L10.5 7.5"></path><path d="M8.5 11.5 L7 13 A2.1 2.1 0 0 1 4 10 L5.5 8.5"></path></svg>
    <span class="body">
        <span class="host">{{ autolink.host }}</span>
        <span class="url">{{ autolink.url }}</span>
    </span>
</a>
{% endcomponent link_card %}