Как технический работник, мы часто сталкиваемся с необходимостью написания технических документов, обмена технологиями и т. д. В Интернете есть много готовых инструментов управления документами. -достаточно. Давайте представим легкий и гибкий инструмент для редактирования документов -powerNice.
powerNiceПредоставляет два способа написания статей/документации, любимый программистамиmarkdown, или вы можете использовать самый доступный текстовый редактор для нетехнических специалистов.
демо
Технический отбор
выполнитьpowerNiceДля онлайн-редактора документов мы используем следующий стек основных технологий:
- React
- Ant Design
- Dva
- For-editor
- Braft-editor
- Nodejs
- Технология отпечатков пальцев браузера
Инвентарь функций
1. Многорежимное редактирование
Мультимодальное редактирование в основном означает, что мы можем использовать форматированный текст иmdредактор для редактирования наших статей, мы используем наиболее привычныйReactДля достижения эффекта необходимо следующее:
2. Несколько тем
В настоящее время поддерживает 2 набора тем, светлых и темных, в основном с точки зрения удобства пользователей, чтобы облегчить пользователям запись ночью.Эффект выглядит следующим образом:
- темный
2. Светлый цвет
3. Поддержка импорта и экспорта в один клик
Чтобы повысить эффективность написания и мультиплексирования статей, мы предоставляем импорт и экспорт файлов одним щелчком мыши и другие функции, а именно:
- экспорт
Markdown - экспорт
PDF - Экспорт изображения плаката на основе статьи
- импорт
Markdownдокумент - Скачать статью
htmlсодержание
Используйте скриншот ниже:
Предварительный просмотр загруженного html-контента выглядит следующим образом:Восстановление по-прежнему очень высокое~
4. Многорежимный предварительный просмотр
Многорежимный предварительный просмотр в основном находится в области предварительного просмотра справа, мы поддерживаем предварительный просмотр мобильного телефона иpcбоковой предварительный просмотр, как показано ниже:
5. Количество слов и строк
Статистика слов и строк в основном предназначена для того, чтобы помочь автору вести статистику контента. Эта реализация несложна. Давайте посмотрим на эффект предварительного просмотра:
6. Управление статьями
Управление статьями в основном управляет контентом, написанным пользователями. Здесь, поскольку мы являемся онлайн-инструментом, идентификация пользователей в основном использует технологию распознавания отпечатков пальцев браузера, чтобы различать пользователей. Пользователи могут легко переключать статьи в списке статей редактора для редактирования. Эффект следующий:
Реализация основной технологии
1. Импорт и экспорт нескольких типов файлов
- Импорт файлов md/html
импортmdфайл, который мы в основном используемantизuploadкомпоненты иFileReaderAPI, конкретная реализация выглядит следующим образом:
{
name: 'file',
showUploadList: false,
beforeUpload(file: any): any {
const reader = new FileReader()
reader.onload = function(e: Event) {
const data = (e as any).target.result
if (editor === 'richText') {
// ...
} else {
// ...
}
}
reader.readAsText(file)
},
}
- скачать html
скачатьhtmlПринцип тоже очень простой, получаем отрендеренныйhtmlстрока, использоватьhtmlШаблон оборачивает его в полныйhtmlи, наконец, сохраняется какFileобъект, использованиеfile-saverРеализовать загрузку.Идея заключается в следующем:
Основной код выглядит следующим образом:
const doc = document.querySelector('.for-markdown-preview') as HTMLElement
const html = createMDHtml(doc.innerHTML, article)
file = new File([html], `${moment().format('YYYYMMDDHHmmss')}.html`, { type: 'text/html;charset=utf-8' })
// 下载文件
saveAs(file)
2. Идентификация пользователя на основе технологии идентификации браузера по отпечатку пальца
Знания об отпечатках пальцев браузера включают в себя многое, и автор кратко представит их здесь.canvasотпечаток пальца.
Холст отпечаток пальцаЭто технология распознавания отпечатков пальцев, реализованная с использованием различий в методах обработки, таких как механизмы рендеринга шрифтов, сглаживание, субпиксельный рендеринг и т. д. Мы используем холст для преобразования одного и того же текста в изображения, даже если мы используем Canvas. рисовать одни и те же элементы, но результаты, полученные из-за вышеперечисленных различий, также отличаются.
Следовательно, мы можем использовать вышеуказанные технологии для идентификации разных пользовательских браузеров, чтобы различать пользователей (хотя есть вероятностные события) и достигать цели сохранения соответствующего контента без входа в систему. Базовый код реализации выглядит следующим образом:
createFingerprint = () => {
const canvas = document.getElementById('anchor-uuid') as HTMLCanvasElement
const context = canvas.getContext('2d') as CanvasRenderingContext2D
context.font = '18pt Arial'
context.textBaseline = 'top'
context.fillText('hello, user.', 2, 2)
const fingerprint = canvas.toDataURL('image/jpeg')
// hash
const secret = 'nice'
const hash = crypto.createHmac('sha256', secret)
.update(fingerprint)
.digest('hex')
return hash
}
Вы также можете обратиться к этому методу, чтобы разработать собственную схему распознавания отпечатков пальцев.
онлайн опыт:портал
наконец
Автор все еще обновляетсяH5редакторH5-Dooring, последние обновления следующие:
- Исправить ошибку выбора библиотеки изображений
- Добавьте провинциальные и муниципальные каскадные компоненты
- Добавьте возможность массового импорта данных Excel.
- Добавить пользовательскую проверку формы
- Аудиокомпоненты добавляют автоматическое управление воспроизведением, циклическое воспроизведение и другие элементы конфигурации.
- Добавить горизонтальный скользящий компонент
найти его полезным? Любимый, если хотите, кстатиотличныйЧто ж, ваша поддержка - моя самая большая поддержка! Поиск в WeChat »Интересный разговор о фронтенде», откройте для себя больше интересных игр H5, webpack, node, gulp, css3, javascript, nodeJS, визуализацию данных на холсте и другие интерфейсные знания и реальный бой.