forked from retoor/devplacepy
- Add comprehensive documentation for backend content rendering in AGENTS.md, detailing the new `render_content` and `render_title` Jinja globals built on mistune with media processing, emoji shortcodes, and XSS protection
- Document the `X-Response-Time` header and bottom-left render time indicator in README.md
- Update bot token pricing documentation to clarify fallback vs gateway cost headers
- Add `email_accounts` to soft-delete tables and `idx_users_role` composite index in database schema
- Implement `telegram_pairings` and `telegram_links` table creation with column migration and indexes
- Add `/profile/{username}/telegram` endpoint to docs API with request/unpair actions
- Register `TelegramService` in main.py lifespan and add `response_timing` middleware emitting `X-Response-Time` header
- Introduce `TelegramPairForm` model and `guard_public_host_sync` synchronous host validation function
28 lines
1.0 KiB
HTML
28 lines
1.0 KiB
HTML
{% extends "base.html" %}
|
|
{% block extra_head %}
|
|
<link rel="stylesheet" href="{{ static_url('/static/css/feed.css') }}">
|
|
<link rel="stylesheet" href="{{ static_url('/static/css/post.css') }}">
|
|
{% endblock %}
|
|
{% block content %}
|
|
<div class="saved-page">
|
|
<h1 class="saved-title">Saved</h1>
|
|
<div class="saved-list">
|
|
{% for item in items %}
|
|
<a href="{{ item.url }}" class="saved-item">
|
|
<span class="saved-type badge">{{ item.type_label }}</span>
|
|
<span class="saved-item-title">{{ render_title(item.title) }}</span>
|
|
<span class="saved-item-time">{{ dt_ago(item.created_at) if item.created_at else item.time_ago }}</span>
|
|
</a>
|
|
{% else %}
|
|
<div class="empty-state">Nothing saved yet. Use the Save button on posts, gists, projects and news.</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
{% if next_cursor %}
|
|
<div class="load-more-wrap">
|
|
<a href="/bookmarks/saved?before={{ next_cursor }}" class="btn btn-secondary">Load more</a>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endblock %}
|