feat(storage): notes are vault sidecar notebooks
All checks were successful
CI / Windows build (push) Successful in 12m55s
All checks were successful
CI / Windows build (push) Successful in 12m55s
Phase 4. Standalone notes move off SQLite into the vault, like the PDF annotations. - "Create notebook" makes a vault folder with a notebook.badnote.json (BadnoteSidecar docType 'notebook' + a title field), opened via SidecarRepository. - PenNoteScreen loads/saves its strokes (page 0) + title to that sidecar instead of the SQLite Note model. - note_provider lists notes from a vault scan (VaultService.scanNotes = folders with notebook.badnote.json and no source file); the doc scan still excludes them. Delete removes the folder. PDF/slide editors unchanged; pre-existing SQLite notes migrate in Phase 5. analyze clean, tests green.
This commit is contained in:
@@ -7,6 +7,11 @@
|
||||
"importPpt": "Import PPT",
|
||||
"importFile": "Import file",
|
||||
"createNotebook": "Create notebook",
|
||||
"newNotebookTitle": "New notebook",
|
||||
"notebookTitleHint": "Notebook title",
|
||||
"create": "Create",
|
||||
"untitledNote": "Untitled",
|
||||
"noNotesYetHint": "No ink notes yet — tap + to create one",
|
||||
"noDocumentsYet": "No documents yet — tap Import file",
|
||||
"processingImport": "Importing…",
|
||||
"importFailed": "Couldn't import that file: {error}",
|
||||
|
||||
@@ -140,6 +140,36 @@ abstract class AppLocalizations {
|
||||
/// **'Create notebook'**
|
||||
String get createNotebook;
|
||||
|
||||
/// No description provided for @newNotebookTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New notebook'**
|
||||
String get newNotebookTitle;
|
||||
|
||||
/// No description provided for @notebookTitleHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Notebook title'**
|
||||
String get notebookTitleHint;
|
||||
|
||||
/// No description provided for @create.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Create'**
|
||||
String get create;
|
||||
|
||||
/// No description provided for @untitledNote.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Untitled'**
|
||||
String get untitledNote;
|
||||
|
||||
/// No description provided for @noNotesYetHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No ink notes yet — tap + to create one'**
|
||||
String get noNotesYetHint;
|
||||
|
||||
/// No description provided for @noDocumentsYet.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
||||
@@ -29,6 +29,21 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get createNotebook => 'Create notebook';
|
||||
|
||||
@override
|
||||
String get newNotebookTitle => 'New notebook';
|
||||
|
||||
@override
|
||||
String get notebookTitleHint => 'Notebook title';
|
||||
|
||||
@override
|
||||
String get create => 'Create';
|
||||
|
||||
@override
|
||||
String get untitledNote => 'Untitled';
|
||||
|
||||
@override
|
||||
String get noNotesYetHint => 'No ink notes yet — tap + to create one';
|
||||
|
||||
@override
|
||||
String get noDocumentsYet => 'No documents yet — tap Import file';
|
||||
|
||||
|
||||
@@ -29,6 +29,21 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get createNotebook => '新建笔记本';
|
||||
|
||||
@override
|
||||
String get newNotebookTitle => '新建笔记本';
|
||||
|
||||
@override
|
||||
String get notebookTitleHint => '笔记本标题';
|
||||
|
||||
@override
|
||||
String get create => '创建';
|
||||
|
||||
@override
|
||||
String get untitledNote => '未命名';
|
||||
|
||||
@override
|
||||
String get noNotesYetHint => '还没有手写笔记——点按 + 新建';
|
||||
|
||||
@override
|
||||
String get noDocumentsYet => '暂无文档——点按“导入文件”';
|
||||
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"importPpt": "导入 PPT",
|
||||
"importFile": "导入文件",
|
||||
"createNotebook": "新建笔记本",
|
||||
"newNotebookTitle": "新建笔记本",
|
||||
"notebookTitleHint": "笔记本标题",
|
||||
"create": "创建",
|
||||
"untitledNote": "未命名",
|
||||
"noNotesYetHint": "还没有手写笔记——点按 + 新建",
|
||||
"noDocumentsYet": "暂无文档——点按“导入文件”",
|
||||
"processingImport": "正在导入…",
|
||||
"importFailed": "无法导入该文件:{error}",
|
||||
|
||||
Reference in New Issue
Block a user