feat: add admin dashboard, pipeline service, lightbox, and update dependencies
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
{% extends "base.html" %} {% block title %}{{ page_title }} — HF Daily Papers{%
|
||||
{% extends "base.html" %}{% from "partials/paper_card.html" import render_card %}
|
||||
{% block title %}{{ page_title }} — HF Daily Papers{%
|
||||
endblock %} {% block content %}
|
||||
<section class="search-page">
|
||||
{# 搜索表单 #}
|
||||
@@ -81,67 +82,7 @@ endblock %} {% block content %}
|
||||
{% if results %}
|
||||
<div class="paper-list">
|
||||
{% for paper in results %}
|
||||
<article class="paper-card search-result" data-arxiv="{{ paper.arxiv_id }}">
|
||||
<div class="paper-card-header">
|
||||
<h2 class="paper-title">
|
||||
<a href="/paper/{{ paper.arxiv_id }}">
|
||||
{% set snippet = snippets.get(paper.id, {}) %} {% if snippet and
|
||||
snippet.title_zh %} {{ snippet.title_zh | safe }} {% elif
|
||||
paper.title_zh %} {{ paper.title_zh }} {% else %} {{ paper.title_en
|
||||
}} {% endif %}
|
||||
</a>
|
||||
</h2>
|
||||
<span class="paper-upvotes">👍 {{ paper.upvotes }}</span>
|
||||
{% if distances and paper.arxiv_id in distances %}
|
||||
<span class="similarity-score" title="语义相似度距离">
|
||||
🎯 {{ "%.3f"|format(distances[paper.arxiv_id]) }}
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if snippet and snippet.abstract %}
|
||||
<p class="paper-snippet">{{ snippet.abstract | safe }}</p>
|
||||
{% elif paper.summary and paper.summary.one_line %}
|
||||
<p class="paper-one-line">{{ paper.summary.one_line }}</p>
|
||||
{% elif paper.abstract %}
|
||||
<p class="paper-abstract-preview">
|
||||
{{ paper.abstract[:200] }}{% if paper.abstract|length > 200 %}…{% endif
|
||||
%}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<div class="paper-meta">
|
||||
<span class="paper-authors">
|
||||
{{ paper.authors|map(attribute='name')|join(', ')|truncate(80) }}
|
||||
</span>
|
||||
<span class="paper-date">{{ paper.paper_date }}</span>
|
||||
</div>
|
||||
|
||||
<div class="paper-tags">
|
||||
{% for t in paper.tags[:5] %}
|
||||
<span class="tag">{{ t.tag }}</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="paper-footer">
|
||||
<span
|
||||
class="summary-badge summary-{{ paper.summary_status.status if paper.summary_status else 'none' }}"
|
||||
>
|
||||
{# djlint:off #}
|
||||
{% if not paper.summary_status or paper.summary_status.status == 'pending' %}
|
||||
未总结
|
||||
{% elif paper.summary_status.status == 'processing' %}
|
||||
🔄 总结中
|
||||
{% elif paper.summary_status.status in ('failed', 'permanent_failure') %}
|
||||
❌ 总结失败
|
||||
{% elif paper.summary_status.status == 'done' %}
|
||||
✅ 已总结
|
||||
{% endif %}
|
||||
{# djlint:on #}
|
||||
</span>
|
||||
<a href="/paper/{{ paper.arxiv_id }}" class="btn-detail">详情 →</a>
|
||||
</div>
|
||||
</article>
|
||||
{{ render_card(paper, snippets=snippets, distances=distances, variant="search") }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user