Skip to content

Commit

Permalink
Merge branch 'release/3.76.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
purocean committed Sep 6, 2024
2 parents 4b4b54c + 88f8fd6 commit fb1f0ee
Show file tree
Hide file tree
Showing 28 changed files with 1,038 additions and 59 deletions.
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A **highly extensible** Markdown editor, designed for productivity. **[Download]

[![Download](./help/mas_en.svg?.inline)](https://apps.apple.com/cn/app/yank-note/id1551528618) [Not recommended](https://github.com/purocean/yn/issues/65#issuecomment-1065799677)

English | [中文说明](./README_ZH-CN.md)
English | [中文说明](./README_ZH-CN.md) | [Русский](./README_RU.md)

[toc]{level: [2]}

Expand Down Expand Up @@ -76,12 +76,17 @@ For more information on how to use the following functions, please see [characte

## Changelogs

### [v3.75.4](https://github.com/purocean/yn/releases/tag/v3.75.4) 2024-08-06
### [v3.76.1](https://github.com/purocean/yn/releases/tag/v3.76.1) 2024-09-06

[Windows](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-win-x64-3.75.4.exe) | [macOS arm64](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-mac-arm64-3.75.4.dmg) | [macOS x64](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-mac-x64-3.75.4.dmg) | [Linux AppImage](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-linux-x86_64-3.75.4.AppImage) | [Linux deb](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-linux-amd64-3.75.4.deb)
[Windows](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-win-x64-3.76.1.exe) | [macOS arm64](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-mac-arm64-3.76.1.dmg) | [macOS x64](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-mac-x64-3.76.1.dmg) | [Linux AppImage](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-linux-x86_64-3.76.1.AppImage) | [Linux deb](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-linux-amd64-3.76.1.deb)

1. fix: Correct the error in detecting supported file types.
2. fix: Resolve the issue where the shortcut key triggers an accent key and inserts additional characters in the editor on macOS.
1. feat: Added support for the Russian language
2. feat: Added an entry point for usage guidance
3. feat: Optimized the completion of ordered list numbers
4. feat: Added `{docHash}` placeholder to the image save directory configuration
5. fix: Fixed an issue where the input box might not be focusable on Windows
6. fix: Fixed the issue of incorrect read-only status in the editor under certain conditions
7. fix: Fixed the issue of incorrect size calculation for Mermaid rendering under certain conditions

[More release notes](https://github.com/purocean/yn/releases)

Expand Down
82 changes: 82 additions & 0 deletions README_RU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Yank Note

**Гибкий, расширяемый** редактор Markdown, создан для повышения производительности. **[Скачать](https://github.com/purocean/yn/releases)** | **[Попробовать онлайн >>>](https://demo.yank-note.com/)**


[![Скачать](./help/mas_en.svg?.inline)](https://apps.apple.com/cn/app/yank-note/id1551528618) [Не рекомендуется](https://github.com/purocean/yn/issues/65#issuecomment-1065799677)

[English](./README.md) | [中文说明](./README_ZH-CN.md) | Русский

[toc]{level: [2]}

![Screenshot](./help/1.png)

## Особенности

- **Простота использования:** Используется ядро *Monaco*, оптимизированное для редактирования в формате Markdown, и возможности редактирования такие же, как у VSCode.
- **Мощный:** Поддержка контроля версий; в документ можно встраивать апплеты, запускаемые блоки кода, таблицы, PlantUML, Drawio, макрозамены и т.д.; поддержка автодополнения [OpenAI](https://openai.com).
- **Высокая совместимость:** Данные сохраняются в виде локальных файлов Markdown, а функции расширения реализованы в оригинальном синтаксисе Markdown, насколько это возможно.
- **Расширение плагинов:** Поддержка пользователей в написании собственных плагинов для расширения функциональности редактора.
- **Поддержка шифрования:** Используйте шифрование для сохранения приватных файлов, таких как номер счета, а пароль может быть установлен отдельно для каждого файла.

## Внимание

- Ради большей расширяемости Yank Note жертвует защитой безопасности (выполнение команд, произвольное чтение и запись файлов). Если вы хотите использовать его для открытия постороннего файла Markdown, ⚠️**убедитесь, что содержимое файла заслуживает доверия**⚠️.
- Шифрование и дешифрование зашифрованных файлов выполняется на клиентской стороне. Пожалуйста, **убедитесь, что вы помните свой пароль**. Если пароль утерян, его можно только взломать.

## Основнве функции

Более подробную информацию об использовании следующих функций см. в разделе [описание основных функций](./help/FEATURES.md)

- **Синхронная прокрутка:** область редактирования и область предварительного просмотра прокручиваются синхронно, а область предварительного просмотра можно прокручивать независимо
- **Конспект:** быстрый переход к соответствующему месту документа через конспект в области предварительного просмотра
- **Управление версиями:** поддержка истории документа
- **Шифрование:** файлы, заканчивающиеся на `.c.md`, обрабатываются как зашифрованные
- **Автосохранение:** автоматическое сохранение файлов после редактирования с напоминанием в строке заголовка для несохраненных файлов (зашифрованные документы не сохраняются автоматически)
- **Редактирование:** автоматическое заполнение списка
- **Вставка изображений:** вы можете быстро вставлять изображения из буфера обмена и вставлять их как файлы или Base64
- **Вложения:** вы можете добавлять вложения в документ и открывать их в операционной системе щелчком мыши
- **Выполнение кода:** поддержка запуска JavaScript, PHP, nodejs, Python, кода bash
- **Список задач:** поддержка отображения хода выполнения задач в документе. Щелкните, чтобы быстро переключить статус задачи
- **Быстрое открытие:** вы можете использовать сочетание клавиш для открытия панели переключения файлов, чтобы быстро открывать файлы, помеченные файлы и выполнять полнотекстовый поиск по содержимому файлов
- **Интегрированный терминал:** поддержка открытия терминала в редакторе для быстрого переключения текущего рабочего каталога
- **Katex:** поддержка выражений katex
- **Стили:** Markdown использует стили и функции GitHub
- **Репозиторий:** можно определить несколько расположений данных для организации документов
- **Преобразование внешних ссылок:** преобразование внешних ссылок или изображений Base64 в локальные изображения
- **Разрешение HTML:** вы можете использовать HTML-код непосредственно в документе или использовать сочетания клавиш для копирования и вставки HTML в Markdown
- **Экспорт в несколько форматов:** backend использует pandoc в качестве конвертера
- **TOC:** напишите `[toc]{type:** "ol", level:** [1,2,3]}` для генерации TOC (Table Of Content, оглавление), где вам нужно сгенерировать его
- **Изменить ячейку таблицы:** дважды щелкните ячейку таблицы для быстрого редактирования
- **Копирование ссылки на заголовок:** копирование пути ссылки на заголовок в буфер обмена для легкой вставки в другие файлы
- **Встроенные апплеты:** документ поддерживает встроенные HTML-аплеты
- **Встроенная графика PlantUML:** документ поддерживает встроенную графику plantUML
- **Встроенная графика drawio:** документ поддерживает встроенную графику drawio
- **Встроенная графика ECharts:** документ поддерживает встроенную графику Echarts
- **Встроенная графика Mermaid:** документ поддерживает встроенную графику Mermaid
- **Встроенные таблицы Luckysheet:** документ поддерживает встроенные таблицы Luckysheet
- **Mind map:** вложенный список может быть отображен в виде интеллект-карты
- **Запись атрибутов элемента:** любой атрибут элемента может быть настроен
- **Улучшение таблиц:** поддержка заголовка таблицы с несколькими строками текста, списка и других функций
- **Ссылка на документ:** поддержка ссылок на другие документы в документе и перехода друг к другу
- **Сноска:** поддержка написания сносок в документе
- **Пользовательский контейнер:** поддержка пользовательских контейнеров, аналогичных VuePress по умолчанию темы
- **Макросы:** поддержка встроенных выражений JavaScript для динамической замены содержимого документа
- **Служба хостинга изображений:** поддержка службы хостинга изображений [PicGo](https://picgo.github.io/PicGo-Doc/)
- **OpenAI:** поддержка автодополнения [OpenAI](https://openai.com)
- **Пользовательские плагины:** поддержка написания плагинов JavaScript для расширения функциональности редактора. Плагин находится в `home directory/plugins`. См. [руководство по разработке плагинов](./help/PLUGIN.md)

## Скриншоты

![Screenshot](./help/6.png)
![Screenshot](./help/7.png)
![Screenshot](./help/2.png)
![Screenshot](./help/3.png)
![Screenshot](./help/4.png)
![Screenshot](./help/5.png)

## Поддержка

Wechat Group

<img src="./help/qrcode-wechat.jpg?.inline" width="150">
15 changes: 10 additions & 5 deletions README_ZH-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

[![Download](./help/mas_en.svg?.inline)](https://apps.apple.com/cn/app/yank-note/id1551528618) [Mac App Store 版本说明](https://github.com/purocean/yn/issues/65#issuecomment-1065799677)

[English](./README.md) | 中文说明
[English](./README.md) | 中文说明 | [Русский](./README_RU.md)

[toc]{level: [2]}

Expand Down Expand Up @@ -76,12 +76,17 @@

## 更新日志

### [v3.75.4](https://github.com/purocean/yn/releases/tag/v3.75.4) 2024-08-06
### [v3.76.1](https://github.com/purocean/yn/releases/tag/v3.76.1) 2024-09-06

[Windows](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-win-x64-3.75.4.exe) | [macOS arm64](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-mac-arm64-3.75.4.dmg) | [macOS x64](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-mac-x64-3.75.4.dmg) | [Linux AppImage](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-linux-x86_64-3.75.4.AppImage) | [Linux deb](https://github.com/purocean/yn/releases/download/v3.75.4/Yank-Note-linux-amd64-3.75.4.deb)
[Windows](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-win-x64-3.76.1.exe) | [macOS arm64](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-mac-arm64-3.76.1.dmg) | [macOS x64](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-mac-x64-3.76.1.dmg) | [Linux AppImage](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-linux-x86_64-3.76.1.AppImage) | [Linux deb](https://github.com/purocean/yn/releases/download/v3.76.1/Yank-Note-linux-amd64-3.76.1.deb)

1. fix: 修复支持的文件类型检测错误
2. fix: 修复 macOS 上快捷键触发重音键会在编辑器插入额外字符问题
1. feat: 增加俄语语言支持
2. feat: 增加使用指引帮助入口
3. feat: 优化有序列表序号补全
4. feat: 图片保存目录配置增加 `{docHash}` 占位符
5. fix: 修复 Windows 上可能出现输入框无法聚焦的问题
6. fix: 修复某些情况下编辑器只读不正确问题
7. fix: 修复某些情况下 Mermaid 渲染尺寸计算不正确问题

[更多发布说明](https://github.com/purocean/yn/releases)

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "yank.note",
"version": "3.75.4",
"version": "3.76.1",
"description": "Yank Note: A highly extensible Markdown editor, designed for productivity.",
"main": "dist/main/app.js",
"license": "AGPL-3.0",
Expand Down
5 changes: 5 additions & 0 deletions scripts/copy-assets.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@ fs.writeFileSync(path.join(__dirname, '..', './help/README.md'), md)
readme = path.join(__dirname, '..', 'README_ZH-CN.md')
md = fs.readFileSync(readme).toString('UTF-8').replace(/\]\(\.\/help\//ig, '](./').replace(/src="\.\/help\//ig, 'src="./')
fs.writeFileSync(path.join(__dirname, '..', './help/README_ZH-CN.md'), md)

// copy README_RU.md
readme = path.join(__dirname, '..', 'README_RU.md')
md = fs.readFileSync(readme).toString('UTF-8').replace(/\]\(\.\/help\//ig, '](./').replace(/src="\.\/help\//ig, 'src="./')
fs.writeFileSync(path.join(__dirname, '..', './help/README_RU.md'), md)
31 changes: 31 additions & 0 deletions src/main/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,37 @@ if (!gotTheLock) {
app.on('web-contents-created', (_, webContents) => {
electronRemote.enable(webContents)

// fix focus issue after dialog show on Windows.
webContents.on('frame-created', (_, { frame }) => {
frame.on('dom-ready', () => {
frame.executeJavaScript(`if ('ctx' in window && ctx?.env?.isWindows) {
window._FIX_ELECTRON_DIALOG_FOCUS ??= function () {
setTimeout(() => {
ctx.env.getElectronRemote().getCurrentWindow().blur();
ctx.env.getElectronRemote().getCurrentWindow().focus();
}, 0);
};
if (!window._ORIGIN_ALERT) {
window._ORIGIN_ALERT = window.alert;
window.alert = function (...args) {
window._ORIGIN_ALERT(...args);
window._FIX_ELECTRON_DIALOG_FOCUS();
};
}
if (!window._ORIGIN_CONFIRM) {
window._ORIGIN_CONFIRM = window.confirm;
window.confirm = function (...args) {
const res = window._ORIGIN_CONFIRM(...args);
window._FIX_ELECTRON_DIALOG_FOCUS();
return res;
};
}
}`)
})
})

webContents.setWindowOpenHandler(({ url }) => {
if (url.includes('__allow-open-window__')) {
return { action: 'allow' }
Expand Down
2 changes: 1 addition & 1 deletion src/main/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ const server = (port = 3000) => {
}
})

const host = config.get('server.host', 'localhost')
const host = config.get('server.host', '127.0.0.1')
server.listen(port, host)

console.log(`Address: http://${host}:${port}`)
Expand Down
8 changes: 5 additions & 3 deletions src/renderer/components/DefaultEditor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -101,17 +101,19 @@ export default defineComponent({
return
}
const readOnly = FLAG_READONLY || !current || !current.plain || current.writeable === false
const editor = getEditor()
// change content only
if (current && previous && isSameFile(current, previous)) {
editor.updateOptions({ readOnly })
setValue(current.content ?? '\n')
} else {
getMonacoEditor().createModel(toUri(current), current?.content ?? '\n')
}
await nextTick()
getEditor().updateOptions({
readOnly: FLAG_READONLY || !current || !current.plain || current.writeable === false
})
editor.updateOptions({ readOnly })
if (isDefault()) {
await nextTick()
Expand Down
7 changes: 4 additions & 3 deletions src/renderer/components/GetStarted.vue
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@
<h2>{{$t('get-started.help')}}</h2>
<div class="list">
<div class="item">
<a href="javascript:void(0);" @click="openHelpDoc('readme')">{{$t('status-bar.help.readme')}}</a>
<a :href="GUIDE_URL" target="_blank">{{$t('status-bar.help.guide')}}</a>
</div>
<div class="item">
<a href="javascript:void(0);" @click="openHelpDoc('features')">{{$t('status-bar.help.features')}}</a>
<a href="javascript:void(0);" @click="openHelpDoc('readme')">{{$t('status-bar.help.readme')}}</a>
</div>
<div class="item">
<a href="javascript:void(0);" @click="openHelpDoc('plugin')">{{$t('status-bar.help.plugin')}}</a>
<a href="javascript:void(0);" @click="openHelpDoc('features')">{{$t('status-bar.help.features')}}</a>
</div>
<div class="item">
<a href="javascript:void(0);" @click="openShortcutManager()">{{$t('status-bar.help.shortcuts')}}</a>
Expand Down Expand Up @@ -78,6 +78,7 @@ import { showPremium, getPurchased } from '@fe/others/premium'
import { showSettingPanel } from '@fe/services/setting'
import { createDoc, supported, switchDoc } from '@fe/services/document'
import { getActionHandler } from '@fe/core/action'
import { GUIDE_URL } from '@share/misc'
useI18n()
Expand Down
8 changes: 7 additions & 1 deletion src/renderer/components/Layout.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<div class="editor" ref="editor" v-show="showEditor">
<slot name="editor"></slot>
</div>
<div class="preview" v-show="showView">
<div :class="{preview: true, 'preview-hidden': !presentation && !showView}">
<div v-if="showView && showEditor" class="sash-left" @dblclick="resetSize('right', 'editor')" @mousedown="initEditorResize"></div>
<slot name="preview"></slot>
</div>
Expand Down Expand Up @@ -391,6 +391,12 @@ export default defineComponent({
min-width: 0;
box-sizing: border-box;
position: relative;
&.preview-hidden {
visibility: hidden;
width: 0;
flex: none;
}
}
.footer {
Expand Down
Loading

0 comments on commit fb1f0ee

Please sign in to comment.