Skip to content

Commit 13435af

Browse files
committed
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.
1 parent 701ec91 commit 13435af

4 files changed

Lines changed: 45 additions & 2 deletions

File tree

FORK_CHANGES.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,33 @@ This fork keeps upstream MarkMello source files unchanged. Fork-specific behavio
4040
- WebView mode has its own document minimap, scroll progress, width-resizer handle, and edit-preview rendering surface.
4141
- Native/WebView backend switching keeps the previous renderer visible until the target renderer is ready, then crossfades without a blank frame.
4242

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 `![alt](images/name.png)` 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+
4370
## Packaging Scope
4471

4572
- The upstream Windows installer remains in `packaging/windows/MarkMello.iss`.

NOTICE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ Applicate additions are distributed under GPL-3.0 as part of this fork.
3333
and Wide presets.
3434
- Native and WebView minimap support for the Applicate viewer path.
3535
- Smooth Native/WebView renderer switching without a blank preview frame.
36+
- Multi-document tab strip above the body with click-to-activate, close-button
37+
per tab, and drag-to-reorder with animated neighbor displacement.
38+
- Open-document and active-tab persistence across launches via a JSON session
39+
store under `%AppData%/MarkMello/applicate-session.json`.
40+
- File drag-and-drop into the window: reading-mode drops open as new tabs,
41+
edit-mode drops insert at the caret position with image files saved next
42+
to the document and inserted as relative-link Markdown.
43+
- Fork-specific About panel credit row exposing this fork's authorship next
44+
to the upstream credit, both rendered side by side without modifying the
45+
upstream About view file.
3646
- Separate Windows installer metadata so the fork installs as `MarkMello Applicate`
3747
and does not reuse the upstream MarkMello AppId or ProgId.
3848

README.en.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ Applicate additions:
2626
- keep the native renderer as a fallback and compatibility mode;
2727
- add flexible reader-width resizing by dragging the content edge while preserving the original Narrow, Medium, and Wide presets;
2828
- 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 `![](images/name.png)`).
3033

3134
## How it differs from regular Markdown editors
3235

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ Applicate-добавления:
2626
- сохраняют native renderer как fallback и как режим совместимости;
2727
- добавляют гибкое изменение ширины чтения перетаскиванием края, сохраняя исходные пресеты Narrow, Medium и Wide;
2828
- добавляют 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 файлов в окно: в режиме чтения — открытие как новой вкладки, в режиме редактирования — вставка в позицию каретки (изображения сохраняются рядом с документом и вставляются как относительная ссылка вида `![](images/name.png)`).
3033

3134
## Чем отличается от обычных Markdown-редакторов
3235

0 commit comments

Comments
 (0)