feat: migrate README parser to markdown-it-py and refresh website

Switch readme_parser.py from regex-based parsing to markdown-it-py for
more robust and maintainable Markdown AST traversal. Update build pipeline,
templates, styles, and JS to support the new parser output. Refresh GitHub
stars data and update tests to match new parser behavior.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Vinta Chen
2026-03-18 20:33:36 +08:00
parent 95b6b3cc69
commit 280f250ce0
12 changed files with 1599 additions and 883 deletions

View File

@@ -55,7 +55,7 @@
</footer>
<noscript
><p style="text-align: center; padding: 1rem; color: #666">
><p class="noscript-msg">
JavaScript is needed for search and filtering.
</p></noscript
>

View File

@@ -67,10 +67,10 @@
<thead>
<tr>
<th class="col-num"><span class="sr-only">#</span></th>
<th class="col-name">Project Name</th>
<th class="col-stars">GitHub Stars</th>
<th class="col-name" data-sort="name">Project Name</th>
<th class="col-stars" data-sort="stars">GitHub Stars</th>
<th class="col-commit" data-sort="commit-time">Last Commit</th>
<th class="col-cat">Category</th>
<th class="col-group">Group</th>
<th class="col-arrow"><span class="sr-only">Details</span></th>
</tr>
</thead>
@@ -95,29 +95,24 @@
{% if entry.stars is not none %}{{ "{:,}".format(entry.stars) }}{%
else %}&mdash;{% endif %}
</td>
<td class="col-commit"
{% if entry.last_commit_at %}data-commit="{{ entry.last_commit_at }}"{% endif %}
>{% if entry.last_commit_at %}<time datetime="{{ entry.last_commit_at }}">{{ entry.last_commit_at[:10] }}</time>{% else %}&mdash;{% endif %}</td>
<td class="col-cat">
<button class="tag" data-type="cat" data-value="{{ entry.category }}">
{{ entry.category }}
</button>
</td>
<td class="col-group">
<button class="tag" data-type="group" data-value="{{ entry.group }}">
{{ entry.group }}
</button>
</td>
<td class="col-arrow"><span class="arrow">&rarr;</span></td>
</tr>
<tr class="expand-row" id="expand-{{ loop.index }}">
<td></td>
<td colspan="5">
<td colspan="3">
<div class="expand-content">
<div class="expand-tags-mobile">
<span class="expand-tag">{{ entry.category }}</span>
<span class="expand-tag">{{ entry.group }}</span>
</div>
{% if entry.description %}
<div class="expand-desc">{{ entry.description | safe }}</div>
{% endif %} {% if entry.also_see %}
{% endif %}
{% if entry.also_see %}
<div class="expand-also-see">
Also see: {% for see in entry.also_see %}<a
href="{{ see.url }}"
@@ -138,11 +133,16 @@
target="_blank"
rel="noopener"
>{{ entry.url | replace("https://", "") }}</a
>{% if entry.pushed_at %}<span class="expand-sep">&middot;</span
>Last pushed {{ entry.pushed_at[:10] }}{% endif %}
>
</div>
</div>
</td>
<td class="col-cat">
<button class="tag" data-type="group" data-value="{{ entry.group }}">
{{ entry.group }}
</button>
</td>
<td></td>
</tr>
{% endfor %}
</tbody>