Skip to content

Репо сохраняет все ссылки, highlights и заметки из Readwise Reader в Markdown-файлы и статический веб-сайт для архивации и удобного доступа к ним.

Notifications You must be signed in to change notification settings

hazadus/readwise-links

Repository files navigation

Архив ссылок Readwise Reader

Утилита сохраняет все мои ссылки с highlights и заметками к ним из Readwise Reader в Markdown-отчёты и JSON-файл для архивации и удобного доступа к ним.

Что за Readwise Reader?

Readwise Reader – совершенно прекрасная софтина, позволяющая сохранять ссылки и любые материалы (посты, видео, PDF, книги), и потом читать их онлайн или через приложение на телефоне. Платная, но работает просто идеально. Пользуюсь ей ежедневно, и читаю всё через неё.

Reader объединяет в себе приложения нескольких классов: read later, хранилище ссылок, читалка. Можно даже кинуть в неё любой текст или письмо по email, и оно сохранится к прочтению во входящих. Можно смотреть видео YouTube, не отвлекаясь на предложения других видео, как это происходит на сайте. При этом, будет доступна транскрипция текста, который можно выделять и сохранять в заметки – очень полезно для учебных материалов. Для сохранения материалов предусмотрены плагины для браузеров. Если установить приложение на телефон, ссылки можно сохранять через него стандартными средствами системы. Причем и в плагинах, и в приложении при сохранении можно сразу присвоить теги или выбрать папку для сохранения (новые, отложенные и т.п.).

Возможностей и фишек ещё очень-очень много, но необязательно пользоваться ими всеми сразу. Вообще, меня не покидает мысль, что авторы сервиса прилагают очень много усилий для того, чтобы пользователь не отвлекался от главного – чтения.

Я сохраняю все интересные материалы в Readwise, и читаю через него. Если на странице слишком сложная вёрстка или много примеров кода, можно легко открыть оригинальную страницу. Если материал оказался негодным, я удаляю его. Таким образом, в архиве остаются только ценные ссылки.

Рекомендую попробовать Readwise абсолютно всем, кто любит читать, и читает много блогов, книг, постов в интернете.

Зачем нужно архивировать ссылки?

Если программа такая крутая, зачем из неё сохранять материалы ещё куда-то?..

Всё хорошее когда-то заканчивается, и софт тоже не вечен. Раньше я пользовался аналогичным, но бесплатным сервисом Omnivore. Мне хватало его возможностей. Но в один прекрасный день владельцы решили его закрыть! Пришлось перейти на Readwise. До этого я осознанно не пробовал Readwise, потому что он платный. Попробуй я его раньше, перешёл бы ещё до кончины Omnivore!

Я к тому, что мне не хотелось бы в один прекрасный день потерять ссылки на все накопленные материалы. Я частенько ищу нужные материалы в Readwise, поэтому нужно быть уверенным, что они никуда не исчезнут.

Добавлю, что существует официальный плагин для экспорта заметок из Readwise в Obsidian. Работает замечательно, тоже пользуюсь и рекомендую.

Как это работает?

  1. По расписанию каждую ночь запускается GitHub Action, который выполняет скрипт архивации ссылок.
  2. Скрипт:
  • запрашивает через API Reader все материалы, сохраненные в моём профиле
  • форматирует полученную инфу в Markdown и сохраняет в файлы с разбивкой:
    • по разделам – новые, отложенные, архивные и т.д.
    • по тэгам
  • сохраняет в файле формата JSON все ссылки с highlights и заметками к ним для использования в фронтовом приложении
  1. Action коммитит созданные файлы в репо.
  2. Запускается Action сборки и деплоя веб-приложения, которое собирается с использованием актуального JSON-файла с данными обо всех ссылках и деплоится на GitHub Pages.

В итоге, мы получаем актуальные списки ссылок и архив в виде истории коммитов. Ссылки доступны как в Markdown-файлах, так и в виде простого web-приложения.

Дополнительно для сохранения локального архива всех страниц по ссылкам реализован асинхронный скрапер. Он не запускается на GitHub, так как объём данных слишком велик для сохранения в репо. Я локально запускаю его сам время от времени, для актуализации архива. Работает он так:

  • Загружает статьи из файла articles.json, формирует очередь ссылок для обработки и запускает асинхронные задачи для загрузки страниц и их ресурсов.

  • После загрузки страницы, извлекает ссылки на изображения, JS и CSS, загружает их и сохраняет в файлы в поддиректории в указанной директории.

  • Затем изменяет в HTML ссылки на сохранённые файлы на локальные и сохраняет изменённый HTML в файл index.html.

  • Создаёт оглавление страниц в архиве, генерируя страницу по шаблону index.html.

Локальное оглавление похоже на урощенный вид веб-приложения, зато в каждой карточке есть ссылка на локальную директорию с файлами страницы.

Скрин страницы оглавления локального архива

При тестах архив в 1503 ссылки скрипт обработал за 21 минуту. Сохранил на диске 35008 файлов общим объёмом 3,71 Гб.

Наглядно работа всего этого хозяйства показана на схеме:

graph TD
    A[GitHub Actions<br/>Запуск по расписанию] --> B[Python Script<br/>Архиватор ссылок]

    B --> C[Readwise Reader API<br/>Получаем все материалы]
    C --> D[Форматируем в Markdown]
    C --> E[Сохраянем в JSON]

    D --> F[Разбиваем по категориям]
    F --> G[📥 New ]
    F --> H[🔎 Later]
    F --> I[⭐ Shortlist]
    F --> J[🗄️ Archive]

    D --> K[Разбиваем по тэгам]
    K --> L[🔖 Тэги в<br/>отдельных файлах]

    E --> M[articles.json<br/>with highlights & notes]

    G --> N[Коммит созданных файлов в репо]
    H --> N
    I --> N
    J --> N
    L --> N
    M --> N

    N --> O[Триггерится<br/>Deploy Action]
    O --> P[Собрать Web App<br/>используя новый articles.json]
    P --> Q[🕸️ GitHub Pages<br/>Web App]

    M -.-> R[Локальный скрэпер<br/>scrape.py]
    R --> S[Скачивает все страницы<br/>+ их ресурсы]
    S --> T[Изменяет ссылки в HTML<br/>на локальные файлы]
    T --> U[Генерит оглавление<br/>из шаблона]
    U --> V[💾 Локальный архив<br/>3.71 GB / 35K files]

    style A fill:#e1f5fe
    style B fill:#f3e5f5
    style C fill:#fff3e0
    style Q fill:#e8f5e8
    style V fill:#fff8e1
    style R fill:#fce4ec
Loading

Ссылки

Другие подходы к сохранению ссылок

Возможно, вам покажутся интересными предложенные в постах идеи.

Документация

About

Репо сохраняет все ссылки, highlights и заметки из Readwise Reader в Markdown-файлы и статический веб-сайт для архивации и удобного доступа к ним.

Topics

Resources

Stars

Watchers

Forks