You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(applicate): document v0.2 fork additions in READMEs/NOTICE/FORK_CHANGES
Update both READMEs, NOTICE.md, and FORK_CHANGES.md to describe the
v0.2.0-applicate fork additions: multi-document tabs with drag-reorder,
file drag-and-drop in reading and edit modes, session persistence,
fork-only About credit row, and the renderer fade-on-ready quick-fix.
FORK_CHANGES.md gets four new scope sections (Multi-Document Tabs,
Drag-and-Drop, About-Panel, Renderer Pipeline) so future contributors
see how the fork extends upstream without touching upstream files.
- WebView mode has its own document minimap, scroll progress, width-resizer handle, and edit-preview rendering surface.
41
41
- Native/WebView backend switching keeps the previous renderer visible until the target renderer is ready, then crossfades without a blank frame.
42
42
43
+
## Multi-Document Tabs Scope
44
+
45
+
- A fork-only tabs strip rendered above the document body shows every open document; each tab has a close-button and the active tab is visually distinct (brighter background, semibold label).
46
+
- The strip lives in `src/MarkMello.Applicate.Desktop/Views/ApplicateTabsView.cs` as a code-only `UserControl`; it is mounted on top of `BodyPanel` at runtime by `ApplicateMainWindow` without modifying upstream XAML.
47
+
- Document state is owned by `IOpenDocumentsService` (`src/MarkMello.Applicate.Desktop/Editing/`). The service is the single source of truth for the open document list and the active document; the upstream `MainWindowViewModel.Document` is mirrored from it via a bridge.
48
+
- Tabs support click-to-activate, click-`×`-to-close (active-tab close routes through the upstream dirty prompt so cancel does not orphan the tab), and click+drag horizontal reorder with animated neighbour displacement.
49
+
- Drag reorder uses Avalonia `TransformOperationsTransition` for neighbour tabs sliding into a new slot (160ms cubic ease-out); the dragged tab follows the cursor without transition so the press point stays anchored.
50
+
- Open documents and the active tab are persisted between launches in JSON at `%AppData%/MarkMello/applicate-session.json` via `JsonApplicateSessionStore`.
51
+
52
+
## Drag-and-Drop Scope
53
+
54
+
- The Applicate WebView body and edit-preview surfaces accept file drag-and-drop without modifying upstream surfaces.
55
+
- Reading-mode drops route through `IOpenDocumentsService.OpenAsync` and open the dropped file as a new tab; the service deduplicates by file content-hash so dropping the same file twice (or dropping a file that is already open) does not create a duplicate tab.
56
+
- Edit-mode drops insert the file at the caret position. Image files are saved next to the document under `images/` with a content-hash collision suffix when a same-name image with different content already exists, and inserted as Markdown `` so the document remains portable.
57
+
- Cross-source dedupe in the active-document bridge also catches files opened from different paths but with identical content and display name.
58
+
59
+
## About-Panel Scope
60
+
61
+
- Upstream `AppAboutPanelView` content is preserved unchanged. The fork swaps the popup's `Child` at runtime in `ApplicateMainWindow` to `ApplicateAppAboutPanelView`, which subclasses the upstream view and appends a second credit row underneath the upstream one.
62
+
- The new row reads `Applicate additions by Dmitry Denisenko (applicate2628)` and links to the fork maintainer's GitHub profile. Upstream copyright notices remain visible per GPL-3.0 §5.
63
+
- No upstream files are edited for the About panel; the override is contained in `src/MarkMello.Applicate.Desktop/Views/ApplicateAppAboutPanelView.cs`.
64
+
65
+
## Renderer Pipeline Scope
66
+
67
+
- The WebView renderer hides the document body, minimap, and width-resizer handle until the bootstrap pipeline finishes math + mermaid + code-block rendering and posts `layout-ready`. Without this gate the user briefly sees a fallback state on tab switch and fresh launch (web fonts not yet swapped, `\[ ... \]` math placeholders, raw mermaid source, width handle at a stale X coordinate). The reveal uses a 120ms CSS opacity transition shared by all three surfaces.
68
+
- The hide-rule is scoped to `body > main.mm-document` (and the minimap aside, and the width-handle div) so that the minimap's cloned `.mm-document` subtree is not affected; the clone always renders at full opacity inside the minimap container.
69
+
43
70
## Packaging Scope
44
71
45
72
- The upstream Windows installer remains in `packaging/windows/MarkMello.iss`.
Copy file name to clipboardExpand all lines: README.en.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,10 @@ Applicate additions:
26
26
- keep the native renderer as a fallback and compatibility mode;
27
27
- add flexible reader-width resizing by dragging the content edge while preserving the original Narrow, Medium, and Wide presets;
28
28
- add a WebView minimap while preserving the native minimap for the native renderer;
29
-
- keep reading, resize, theme, edit preview, and Native/WebView switching synchronized without a blank frame.
29
+
- keep reading, resize, theme, edit preview, and Native/WebView switching synchronized without a blank frame;
30
+
- add a tab strip above the document and a multi-document model: several `.md` files can be open at once, click a tab to switch, click `×` to close, drag a tab horizontally to reorder it within the strip;
31
+
- remember the open document list and the active tab across launches (`%AppData%/MarkMello/applicate-session.json`);
32
+
- accept file drag-and-drop in the window: in reading mode the dropped file opens as a new tab, in editing mode it is inserted at the caret position (images are saved next to the document and inserted as a relative link in the form ``).
Copy file name to clipboardExpand all lines: README.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,10 @@ Applicate-добавления:
26
26
- сохраняют native renderer как fallback и как режим совместимости;
27
27
- добавляют гибкое изменение ширины чтения перетаскиванием края, сохраняя исходные пресеты Narrow, Medium и Wide;
28
28
- добавляют minimap для WebView renderer и сохраняют native minimap для native renderer;
29
-
- синхронизируют чтение, resize, theme, edit preview и переключение Native/WebView без пустого кадра.
29
+
- синхронизируют чтение, resize, theme, edit preview и переключение Native/WebView без пустого кадра;
30
+
- добавляют полосу вкладок над документом и multi-document модель: одновременно открыто несколько `.md` файлов, переключение кликом, закрытие крестиком, перетаскивание вкладок для смены порядка;
31
+
- запоминают список открытых документов и активную вкладку между запусками (`%AppData%/MarkMello/applicate-session.json`);
32
+
- принимают drag-and-drop файлов в окно: в режиме чтения — открытие как новой вкладки, в режиме редактирования — вставка в позицию каретки (изображения сохраняются рядом с документом и вставляются как относительная ссылка вида ``).
0 commit comments