2026-06-02 23:28:39 +02:00
|
|
|
name: ocideck
|
|
|
|
|
description: "Marp Presentation Builder for Desktop"
|
|
|
|
|
publish_to: 'none'
|
|
|
|
|
version: 1.0.0+1
|
|
|
|
|
|
|
|
|
|
environment:
|
|
|
|
|
sdk: ^3.12.0
|
|
|
|
|
|
|
|
|
|
dependencies:
|
|
|
|
|
flutter:
|
|
|
|
|
sdk: flutter
|
2026-06-04 02:30:03 +02:00
|
|
|
flutter_localizations:
|
|
|
|
|
sdk: flutter
|
2026-06-02 23:28:39 +02:00
|
|
|
cupertino_icons: ^1.0.8
|
|
|
|
|
flutter_riverpod: ^3.3.1
|
|
|
|
|
file_picker: ^11.0.2
|
|
|
|
|
path_provider: ^2.1.5
|
|
|
|
|
path: ^1.9.1
|
|
|
|
|
uuid: ^4.5.1
|
2026-06-04 08:17:12 +02:00
|
|
|
screen_retriever: ^0.2.0
|
2026-06-02 23:28:39 +02:00
|
|
|
window_manager: ^0.5.1
|
|
|
|
|
shared_preferences: ^2.3.3
|
|
|
|
|
pasteboard: ^0.5.0
|
|
|
|
|
pdf: ^3.12.0
|
|
|
|
|
archive: ^4.0.9
|
|
|
|
|
video_player: ^2.11.1
|
|
|
|
|
characters: ^1.3.0
|
Add image-library dedupe and untagged filter, UI text scaling, table paste
Image library:
- "Clean up duplicates" finds byte-identical images by md5, keeps one
file per group (preferring the most-used, then the oldest), merges
the tags/descriptions and captions of the copies, repoints slides in
open decks and in .md presentations on disk, and deletes the copies
after a confirmation that lists every group.
- A header toggle filters to images without tags/description, so it is
easy to see which ones still need attention.
- The delete warning now also lists presentations on disk that still
reference the image (marked "not open"), next to the open decks.
Editor and accessibility (already in tree):
- Interface text scaling up to 200%, keyboard-operable panel divider,
keyboard-first add-slide dialog, and screen-reader improvements.
- Paste a spreadsheet/CSV/markdown selection into a table cell to fill
the whole grid.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 13:36:44 +02:00
|
|
|
crypto: ^3.0.0
|
2026-06-02 23:28:39 +02:00
|
|
|
url_launcher: ^6.3.0
|
2026-06-03 22:00:25 +02:00
|
|
|
desktop_drop: ^0.7.1
|
2026-06-03 15:03:27 +02:00
|
|
|
image: ^4.8.0
|
2026-06-04 00:59:14 +02:00
|
|
|
flutter_highlight: ^0.7.0
|
|
|
|
|
flutter_math_fork: ^0.7.4
|
|
|
|
|
highlight: ^0.7.0
|
2026-06-05 00:02:51 +02:00
|
|
|
wakelock_plus: ^1.5.2
|
Add dual-screen presenter mode (slide on beamer, notes on laptop)
When a second display is connected (macOS), presenting now opens a
borderless audience window on the beamer showing the slide, while the
main window shows the presenter view (current/next slide, speaker notes,
clock, controls) on the laptop. The two windows stay in sync over method
channels: navigation, blank screen, audio-complete and beamer clicks are
forwarded between them, and media plays only on the beamer to avoid
double audio. Falls back to the existing single-window presenter when
there is one display or the second window can't be created.
- Vendors a fork of desktop_multi_window in third_party/ that re-adds the
native macOS window geometry/fullscreen calls (coverScreen, setFrame,
close) the published 0.3.0 dropped; wired via a path dependency.
- Registers the app's plugins for sub-windows in MainFlutterWindow so
video/image rendering works on the beamer.
- Routes the multi_window dart entrypoint to a minimal AudienceWindowApp.
Compiles (flutter analyze + macOS debug build) and all tests pass;
runtime two-screen behaviour still needs verification on real hardware.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 21:25:34 +02:00
|
|
|
# Vendored fork: adds native macOS window-geometry/fullscreen methods that
|
|
|
|
|
# the published 0.3.0 dropped, needed for the dual-screen presenter mode.
|
|
|
|
|
desktop_multi_window:
|
|
|
|
|
path: third_party/desktop_multi_window
|
2026-06-07 11:42:44 +02:00
|
|
|
fl_chart: ^1.2.0
|
2026-06-02 23:28:39 +02:00
|
|
|
|
|
|
|
|
dev_dependencies:
|
|
|
|
|
flutter_test:
|
|
|
|
|
sdk: flutter
|
|
|
|
|
flutter_lints: ^6.0.0
|
|
|
|
|
xml: ^6.6.1
|
|
|
|
|
|
2026-06-05 00:02:51 +02:00
|
|
|
dependency_overrides:
|
|
|
|
|
screen_retriever_macos:
|
|
|
|
|
path: third_party/screen_retriever_macos
|
2026-06-06 20:41:24 +02:00
|
|
|
# 2.9.5+ publishes a Swift module whose private Objective-C dependency is
|
|
|
|
|
# not packaged correctly by CocoaPods on Xcode 26.
|
|
|
|
|
video_player_avfoundation: 2.9.4
|
2026-06-05 00:02:51 +02:00
|
|
|
|
2026-06-02 23:28:39 +02:00
|
|
|
flutter:
|
2026-06-05 00:02:51 +02:00
|
|
|
config:
|
|
|
|
|
enable-swift-package-manager: false
|
2026-06-02 23:28:39 +02:00
|
|
|
uses-material-design: true
|
|
|
|
|
assets:
|
|
|
|
|
- assets/images/de-winter-wittegeheel.png
|
|
|
|
|
- assets/themes/ocideck.css
|
Add self-contained Marp HTML export
New export target: a single offline .html rendered from the deck's Marp
Markdown. Bundles (inlines) marked, highlight.js, MathJax (tex-svg, no font
files) and mermaid, so code highlighting, LaTeX math and mermaid diagrams all
render in any browser with no network access.
- MarpHtmlService splits the deck on `---`, strips front-matter, and inlines
the vendored libraries (assets/web_export/) with a </script> breakout guard.
The asset loader is injectable for testing.
- ExportFormat.html wired through ExportService (no rasterization needed),
the export dialog (new button, skips slide rendering) and app_shell
(passes the generated Markdown). Export dialog is now scrollable.
Note: rendered with marked, not Marp Core, so theme fidelity differs from the
in-app preview / PDF / PPTX; the win is a portable, dependency-free deck.
Tests: slide splitting, library inlining, breakout escaping, and an
end-to-end .html export.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 01:37:46 +02:00
|
|
|
- assets/web_export/
|
2026-06-03 15:03:27 +02:00
|
|
|
fonts:
|
|
|
|
|
- family: EB Garamond
|
|
|
|
|
fonts:
|
|
|
|
|
- asset: assets/fonts/EBGaramond-Variable.ttf
|
|
|
|
|
- asset: assets/fonts/EBGaramond-Italic-Variable.ttf
|
|
|
|
|
style: italic
|