В крупной компании существуют тысячи различных внутренних URL-адресов из различных сред разработки, инструментов рабочего процесса и систем управления персоналом. Часто появляются новые инструменты, старые выводятся из эксплуатации или меняются имена хостов. Я часто шутил, что если я очистил свою интернет-историю, то не смог бы выполнять свою работу.
Единственным реальным авторитетом истины был краудсорсинг, запросивший в Slack URL-адрес определенного сервиса. Если вам повезет, кто-то, возможно, уже настроит бота для ответа, если вам не повезет, это может начать войну о том, насколько плохой была последняя платформа HR. Идея краудсорсинга URL-адресов и их достоверности некоторое время проносилась в голове.
В начале этого года я перешел в стартап, и, хотя URL-адресов стало намного меньше, они по-прежнему распределялись в разных инструментах и не всегда были актуальными. Я снова начал думать о способе централизации закладок, при этом позволяя вам использовать существующие инструменты. Проведя последние несколько лет своей карьеры, работая в сфере инфраструктуры, у меня в голове было только одно решение… YAML!
label: Bookworms
description: These are sample bookmarks
folders:
- label: folder 1
description: This is to describe the folder structure
folders:
- label: sub folder 1
description: This is to describe the sub folder structure
bookmarks:
- label: sample url 1
description: this is used to describe the bookmark
href: 'https://www.mywebsite.com'
- label: folder 2
folders:
- label: sub folder 2
bookmarks:
- label: sample url 2
description: this is used to describe the bookmark
href: 'https://www.mywebsite.com'
- label: sample url 3
description: this is used to describe the bookmark
href: 'https://www.mywebsite.com'
- label: sub folder 3
bookmarks:
- label: sample url 4
description: this is used to describe the bookmark
href: 'https://www.mywebsite.com'
Создание стандартизированной структуры URL-адресов на основе закладок и папок позволит людям легко вносить свой вклад и добавлять возможность преобразовывать эти данные в различные форматы.
Уценка
В отрасли очень распространено то, что люди ведут список полезных ссылок и хранят их в Github как README.md . Вы можете увидеть отличный пример здесь: https://github.com/binhnguyennus/awesome-scalability
Если ваши закладки сохранены как YAML, это довольно простое преобразование. С помощью нескольких строк в NodeJS я смог преобразовать закладки YAML в README.md.

Хром
Хотя преобразование в уценку — хороший способ самостоятельно документировать репозиторий, я хотел, чтобы эти закладки были более практичными и были доступны, когда и где они мне нужны.
Заглянув в Диспетчер закладок Chrome, я увидел, что при экспорте ваших закладок только что был сохранен файл HTML. Все, что мне нужно было сделать, это сгенерировать этот файл HTML из файла YAML.

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

Мои закладки теперь доступны на панели инструментов Chrome. К моему удивлению, этот HTML стандартизирован в большинстве распространенных браузеров, из тестового файла работает для:
- "Хром"
- "Сафари"
- "Край"
- "Fire Fox"
- "Храбрый"
Вы можете найти инструкции по импорту закладок по ссылкам выше, другие браузеры также могут работать, но они еще не проверены.
Книжные черви

Bookworms — это инструмент, который я написал, который позволяет людям, командам или компаниям хранить, делиться, обновлять и централизовать свои важные ссылки, давая множество полезных результатов.
В настоящее время вам необходимо, чтобы Node и npm были установлены на вашем компьютере, как только это будет сделано, вы можете использовать их с помощью следующей команды:
npx bookworms get ./my-bookmarks.yaml
Это создаст файлы README.md и browsers.html в том же каталоге, в котором он запущен. Вы также можете получить закладки из удаленного места и вывести экспорт в другой каталог:
npx bookworms get https://raw.githubusercontent.com/thearegee/bookworms/main/demo/config/bookmarks.yaml -d="./output"
Для хранения ваших закладок я рекомендую иметь репозиторий, содержащий вместе файлы YAML, README.md и browsers.html, где люди могут просматривать, импортировать или вносить свой вклад в ваши закладки. Пример можно посмотреть здесь: https://github.com/thearegee/bookworms/tree/main/demo
В настоящее время вам нужно запускать команду npx после каждого обновления файла YAML, проверять изменения, а затем повторно импортировать browsers.html, однако я работаю над автоматизацией этого.
Вы также можете импортировать Bookworms как обычный модуль npm, а затем использовать его программно. Недавно я сделал это на корпоративном хакатоне, где создал Slackbot, который мог отвечать закладками компании.
Это началось с создания простого веб-сервера с использованием Fastify.
Этот сервер предоставляет конечную точку, которая может использоваться командами косой черты Slack. Когда эта конечная точка вызывается, мы проверяем тело, чтобы увидеть, добавили ли они дополнительную информацию после косой черты. Это позволяет нам давать разные ответы в зависимости от того, что запрашивает пользователь, но перед этим нам нужно загрузить закладки в память.
Этот код загружает YAML в память, преобразует его в уценку, а затем на основе комментария косой черты, исходящего от веб-хука, возвращающего закладки запрошенной папки.
Заключительная часть — форматирование ответа для Slack.
Эти два простых метода используются для ответа на команды Slack с косой чертой, возвращающие стилизованный ответ. Между стандартной уценкой и версией Slacs есть небольшие нюансы, я использовал slackifyMarkdown, чтобы позаботиться об этом.
Ниже вы можете увидеть несколько примеров, которые запущены на нашем Slack-канале АГОРА. Когда пользователь вызывает /bookmarks или /bookmarks all, ему возвращаются все различные команды, которые он может использовать, на основе папок верхнего уровня в закладках YMAL.

Если пользователь вводит имя папки, которое не распознано, ему возвращается полезная ошибка:

При успешном запросе они получат все закладки, возвращенные в той же структуре, что и README.md, но на этот раз только в запрошенную папку.

ОБНОВЛЕНИЕ. Я переместил код, обеспечивающий работу этого бота Slack, в модуль для Express и Fastify, чтобы вы могли добавить Bookworms for Slack в свой рабочий процесс.
Попробуйте!
Интерфейс командной строки доступен на Github для экспорта ваших существующих закладок, создания закладок YAML и импорта их в ваш браузер или проект. Если вы хотите внести свой вклад или, может быть, у вас есть другая идея о том, как вы можете использовать Bookworms, вы можете прочитать больше здесь: https://github.com/thearegee/bookworms
Спасибо и счастливых закладок!
Если вы заинтересованы в этом или работаете со мной над другими техническими решениями, вы можете связаться со мной на gullwing.io.