Рубрики
Без рубрики

TOC-генератор медведя

Я человек, который глубоко полагается на приложение Notes Notes, в основном я использую Night Note для заметок для технических книг … Теги с Python, Opensource, Github, Showdev.

Я человек, который глубоко полагается на приложение Notes, в основном я использую Bear Note для заметок для технических книг или курсов. Когда записка стала огромной и включена огромные темы и заголовки внутри, TOC (оглавление) будет очень полезен для эффективного поиска. Поэтому я создал этот простой инструмент для генерации TOC в Neight Note.

Пользовательский интерфейс

Потому что это просто простой инструмент, я быстро построил пользовательский интерфейс с простыми настройками в Qtdesigner без каких-либо дополнительных редактирования.

DEV Workflow

Шаг1: Идентификатор экземпляра и HTML страницы этого примечания. [Операции внутри медведя Note]

Ссылка на Near Note API Документ API, мы определяем способ генерирования TOC с действительными скачками внутри медведя. Ref: https://bear.app/faq/x-callback-url%20scheme%20documentation/

def textFormat(self, aster, insert, factor):
    return '\t' * factor+aster+' '+'[' + insert + ']' + '(' + self.bearNoteUrl(insert) + ')\n'

Шаг 2: Нажмите кнопку «RUN», чтобы вызвать процесс соскабливания

Используйте BeautifulSoup для извлечения заголовков из HTML -файла:

  • Причина, причина, который экспортируется HTML-код, экспортируется из медведя, очень чистый, поэтому HTML.Parser достаточно, чтобы достичь нашей цели, и не нужно импортировать дополнительную библиотеку модулей, таких как «LXML»
  • Поиск всех строк HTML-кода и генерируйте соответствующие ссылки, которые сопоставляются с условиями (Здесь условия все виды заголовков, from j1’to’h5 ‘)
def scraping(self): 
    self.ui.textBrowser.clear()
    self.scrapResult = ''
    self.asteriskAdd()
    if self.htmlFilePath[0] != '' and len(self.ui.identifier.text()) != 0:
        url = open(self.htmlFilePath[0], encoding='utf-8', errors='ignore')
        bs = BeautifulSoup(url, 'html.parser')
        self.collectList = bs.find_all(['h1', 'h2', 'h3', 'h4'])
        self.scrapResult = "# Table of Contents\n"

        for i in self.collectList:
            if i.name == 'h1':
                insert = i.get_text()
                self.scrapResult+=self.textFormat(self.aster1,insert,0)
            elif i.name == 'h2':
                insert = i.get_text()
                self.scrapResult+=self.textFormat(self.aster2,insert,1)
            elif i.name == 'h3':
                insert = i.get_text()
                self.scrapResult+=self.textFormat(self.aster3,insert,2)
            elif i.name == 'h4':
                insert = i.get_text()
                self.scrapResult+=self.textFormat(self.aster4,insert,3)
            elif i.name == 'h5':
                insert = i.get_text()
                self.scrapResult+=self.textFormat(self.aster5,insert,4)
        self.scrapResult += '***\n'

        self.ui.textBrowser.append(self.scrapResult)

    else:
        QMessageBox.warning(self, 'Warning', 'identifier or html file needed!')

Шаг 3: Тексты Markdown TOC будут показаны в текстовом браузере внизу, а затем пользователи могут копировать и вставить их в Bear Note

Эксплуатация скриншота

Полученные результаты

Образец сгенерированного TOC в ноте медведя

Развертывание

Я использую Pyinstaller для создания распределенного файла .exe для пользователей Windows и .APP для пользователей Mac (найдите их в папке «dist»). Но есть одно, что нам нужно обратить внимание: настройка по умолчанию .spec, сгенерированная из Pyinstaller, приведет к рендурингу с низким разрешением в сетчатке Mac. Нам нужно добавить еще одну строку в файл .spec, чтобы решить эту проблему. Ссылка: https://pyinstaller.readthedocs.io/en/stable/spec-files.html.

info_plist={'NSHighResolutionCapable': 'True'}

Ссылка проекта

Вы можете найти исходный код и исполняемые файлы здесь: https://github.com/monkeyapple/toc-generator-for-bear-note.

Что дальше

  • Предоставьте больше вариантов настройки, таких как: Заказанные списки
  • Ищите лучшее решение для упаковки: Pyinstaller сгенерировал 70 -метровый исполняемый файл для Mac, кажется слишком большим, сравните с версией Windows, которая составляет 33 м.

Оригинал: “https://dev.to/effylh/toc-generator-of-bear-note-4g6h”