Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
c3b53ff
Bump version to v0.4.2
albert-gee Sep 14, 2026
f0ef33f
Improve Writerside TOC support
albert-gee Sep 14, 2026
7023934
Enhance Writerside TOC handling: add `initializeWritersideFirstTopicH…
albert-gee Sep 14, 2026
fd18544
Fixed Edit Title defects and dialog-copy gaps.
albert-gee Sep 14, 2026
29ac59e
Add native Linux Writerside dialog host implementation and integrate …
albert-gee Sep 15, 2026
f06d063
Enhance Writerside TOC handling: add module-based topic management, i…
albert-gee Sep 15, 2026
39526fe
Fix Rename Topic File defects
albert-gee Sep 15, 2026
c47fc5d
Refactor topic reference handling in Writerside: improve markdown lin…
albert-gee Sep 15, 2026
bb015ca
Enhance topic file editor: improve XML validation, add Markdown link …
albert-gee Sep 15, 2026
4e68d7e
Enhance topic file editor: add angle bracket support for Markdown des…
albert-gee Sep 15, 2026
08c5b6d
Enhance topic file editor: add inline Markdown destination handling, …
ChenZhenIO Sep 15, 2026
d27a3d2
Add support for inline Markdown destination handling in topic file ed…
ChenZhenIO Sep 15, 2026
4c144d3
Refine destination handling: unify handling of inline Markdown and XM…
ChenZhenIO Sep 15, 2026
9e17393
Improve link resolution: refine unbound link handling, add origin tra…
ChenZhenIO Sep 15, 2026
9f35553
Refactor link resolution: replace XML-based anchor tag handling with …
ChenZhenIO Sep 15, 2026
3c1a1ff
Extend link resolution: add handling for HTML attribute quotes, refin…
ChenZhenIO Sep 15, 2026
145890b
Add validation for invalid empty group attributes in TOC elements and…
ChenZhenIO Sep 15, 2026
fd3d2d0
Refactor Writerside topic handling
ChenZhenIO Sep 15, 2026
c63b8c4
Refactor Writerside topic renaming logic: add project-wide safety val…
ChenZhenIO Sep 16, 2026
cbfd4d9
Enforce discovery completion checks for module and topic handling, re…
ChenZhenIO Sep 16, 2026
7599b56
Fix Writerside semantic directory discovery
ChenZhenIO Sep 16, 2026
68ecd90
Complete project-wide Writerside topic removal
ChenZhenIO Sep 16, 2026
35630ad
Detect authored HTML links during topic removal
ChenZhenIO Sep 16, 2026
5013d9c
Add Writerside local Markdown topic import
ChenZhenIO Sep 16, 2026
9b712ff
Remove Writerside TOC preview action
ChenZhenIO Sep 16, 2026
79d0db3
Implemented Writerside template workflow refactor
ChenZhenIO Sep 16, 2026
6ae52b0
Remove "Add to Git" action from TOC context menu in Writerside
ChenZhenIO Sep 16, 2026
5762348
Refactor Writerside template dialogs and source entry for improved fo…
ChenZhenIO Sep 16, 2026
ba7952b
Add `sidebarLocalHistory` glyph and update related icon handling logic
ChenZhenIO Sep 16, 2026
973720d
Remove Markdown TOC generation functionality and related code
ChenZhenIO Sep 16, 2026
35ed72c
Git Changes commit-composer refactor
ChenZhenIO Sep 16, 2026
7eedca6
Replace `BusyMarkCompactIconButton` with `BusyMarkHeaderIconButton` i…
ChenZhenIO Sep 16, 2026
b68f121
Move "Synchronize TOC and Editor" action to Writerside TOC menu
ChenZhenIO Sep 16, 2026
7c0dd4b
Replace `BusyMarkHeaderIconButton` with `BusyMarkPushButton.standard`…
ChenZhenIO Sep 16, 2026
b649648
Remove export functionality and related code from workspace and TOC m…
ChenZhenIO Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions assets/writerside/TGDP-LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# MIT No Attribution License

Copyright (c) 2024 The Good Docs Project

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
334 changes: 334 additions & 0 deletions assets/writerside/templates.json

Large diffs are not rendered by default.

429 changes: 429 additions & 0 deletions docs/development/writerside-toc-implementation.md

Large diffs are not rendered by default.

111 changes: 100 additions & 11 deletions lib/l10n/app_ar.arb
Original file line number Diff line number Diff line change
@@ -1,4 +1,72 @@
{
"tocTopicFromTemplate": "موضوع من قالب...",
"tocSaveAsTemplate": "حفظ كقالب",
"tocTemplateDialog": "إنشاء موضوع من قالب",
"tocTemplatesEditor": "قوالب الملفات والشيفرة",
"tocEditTemplates": "تحرير القوالب...",
"tocCreateCustomTemplate": "إنشاء قالب مخصص...",
"tocTemplateCreated": "تم إنشاء القالب",
"tocTemplateDefault": "افتراضي",
"tocTemplateCustom": "مخصص",
"tocTemplateFilename": "اسم الملف:",
"tocTemplateMarkdown": "Markdown (.md)",
"tocTemplateXml": "XML (.topic)",
"tocTemplatesInternal": "داخلي",
"tocTemplateUnnamed": "بلا اسم",
"tocTemplateNew": "قالب جديد...",
"tocTemplateName": "الاسم:",
"tocTemplateExtension": "الامتداد:",
"tocTemplateLoadError": "تعذر تحميل القوالب. لم تتغير القوالب الموجودة.",
"tocTemplateSaveError": "تعذر حفظ القوالب. لا تزال تعديلاتك متاحة هنا.",
"tocTemplateConflict": "تغيرت القوالب في نافذة أخرى. ألغِ وأعد فتح المحرر.",
"tocTemplateDuplicateName": "يوجد بالفعل قالب بهذا الاسم والامتداد.",
"tocTemplateFormat": "التنسيق:",
"tocTemplateReset": "إعادة تعيين",
"tocTemplateRetry": "إعادة المحاولة",
"tocRemoveElementsDialog": "إزالة {count} من عناصر جدول المحتويات",
"tocRemoveElementsRetainFiles": "لن تُحذف ملفات المصدر المرتبطة بعناصر جدول المحتويات هذه.",
"tocOk": "موافق",
"tocSelectExistingTopic": "اختر موضوعًا لإضافته إلى النسخة الحالية",
"tocGroupName": "اسم المجموعة",
"tocMoveLineUp": "نقل السطر لأعلى",
"tocMoveLineDown": "نقل السطر لأسفل",
"tocEmptyMdTopic": "موضوع MD فارغ",
"tocEmptyXmlTopic": "موضوع XML فارغ",
"tocCopySpecial": "نسخ خاص",
"tocCopyFileName": "اسم ملف الموضوع '{name}'",
"tocCopyFilePath": "مسار ملف الموضوع",
"tocCopyTopicTitle": "عنوان الموضوع '{title}'",
"tocCopyElementId": "معرّف عنصر جدول المحتويات '{id}'",
"tocCopyFileNameUnavailable": "اسم ملف الموضوع",
"tocCopyTopicTitleUnavailable": "عنوان الموضوع",
"tocCopyElementIdUnavailable": "معرّف عنصر جدول المحتويات",
"tocEditTitleAction": "تحرير العنوان...",
"tocEditTitleDialog": "تحرير العنوان",
"tocRemoveElementAction": "إزالة عنصر جدول المحتويات...",
"tocSetHomePage": "تعيين كصفحة رئيسية",
"tocGoToElement": "الانتقال إلى عنصر جدول المحتويات في '{fileName}'",
"tocSynchronize": "مزامنة جدول المحتويات والمحرر",
"tocEmptyGroupAction": "مجموعة فارغة",
"tocNewEmptyGroup": "مجموعة فارغة جديدة",
"tocGroupAction": "تجميع",
"tocNewGroup": "مجموعة جديدة",
"tocSortChildren": "ترتيب المواضيع الفرعية أبجديًا",
"tocLinkTopicFiles": "ربط ملفات المواضيع بجدول المحتويات...",
"addLocalMarkdownFiles": "إضافة ملفات Markdown محلية",
"tocTitleField": "عنوان جدول المحتويات:",
"tocTopicTitleField": "عنوان الموضوع:",
"tocAdvancedSettings": "إعدادات متقدمة",
"tocInstanceTitleField": "عنوان '{instanceId}':",
"tocOnlyTitleField": "عنوان خاص بجدول المحتويات:",
"tocInstanceTitleExplanation": "يُستخدم للمثيل الحالي فقط. يُورث من عنوان الموضوع افتراضيًا.",
"tocOnlyTitleExplanation": "يُستخدم في جدول المحتويات فقط. يُورث افتراضيًا من عنوان الموضوع أو من العنوان الخاص بالمثيل إن وُجد. تجد شرحًا للعناوين",
"tocTitleDocumentationLink": "هنا",
"tocFindUsages": "بحث",
"tocRefactorMenu": "إعادة الهيكلة",
"tocSafeDelete": "حذف آمن",
"tocDuplicate": "تكرار",
"tocDuplicateFilename": "اسم ملف الموضوع:",
"tocDuplicateDialog": "تكرار الموضوع",
"pdfTitlePage": "صفحة العنوان",
"pdfIncludeTitlePage": "تضمين صفحة العنوان",
"pdfTitlePageNote": "لا تحتوي هذه الصفحة على رأس أو تذييل أو رقم صفحة ظاهر.",
Expand Down Expand Up @@ -1221,7 +1289,7 @@
"@files": {
"description": "Files sidebar tab label."
},
"toc": "موضوعات",
"toc": "جدول المحتويات",
"@toc": {
"description": "Writerside Topics sidebar tab label."
},
Expand Down Expand Up @@ -1265,7 +1333,7 @@
"@newChildTopic": {
"description": "Create new child Writerside topic action label."
},
"newSiblingTopic": "موضوع جديد على المستوى نفسه",
"newSiblingTopic": "موضوع جديد",
"@newSiblingTopic": {
"description": "Create new sibling Writerside topic action label."
},
Expand Down Expand Up @@ -1772,6 +1840,23 @@
}
}
},
"errorWritersideTopicRenameIncompleteProjectIndex": "لا يمكن لإعادة التسمية تحديث كل مراجع المشروع بأمان لأن {count} من ملفات المواضيع في الوحدة {module} لم تُحلَّل: {paths}",
"@errorWritersideTopicRenameIncompleteProjectIndex": {
"description": "Error shown when topic rename cannot prove complete project-wide semantic coverage.",
"placeholders": {
"module": {"type": "String"},
"count": {"type": "String"},
"paths": {"type": "String"}
}
},
"errorWritersideTopicRenameProjectBuffersDirty": "تحتوي ملفات مشروع Writerside على تغييرات غير محفوظة. عالجها وأنشئ معاينة جديدة لإعادة التسمية.",
"@errorWritersideTopicRenameProjectBuffersDirty": {
"description": "Error shown when a topic rename or reviewed rename plan is blocked by a dirty Writerside project buffer."
},
"errorWritersideTopicRenameProjectInventoryChanged": "تغيّرت مجموعة وحدات مشروع Writerside. أنشئ معاينة جديدة لإعادة التسمية قبل إعادة الهيكلة.",
"@errorWritersideTopicRenameProjectInventoryChanged": {
"description": "Error shown when module discovery differs from a prepared topic rename plan."
},
"errorTopicsRootUnsafe": "يجب أن يكون جذر المواضيع دليلاً نسبيًا آمنًا.",
"@errorTopicsRootUnsafe": {
"description": "Detail for an unsafe topics root directory."
Expand Down Expand Up @@ -2511,7 +2596,7 @@
"@removeAction": {
"description": "Generic remove action label."
},
"topicRemovalSummary": "أزِل «⁨{topic}⁩» من المثيل المحدد. سيُحتفظ بملف الموضوع.",
"topicRemovalSummary": "هل تريد إزالة عنصر جدول المحتويات «⁨{topic}⁩»؟ لن يُحذف الملف المصدر المرتبط بجدول المحتويات.",
"@topicRemovalSummary": {
"description": "Summary of removing a topic from one TOC while keeping its file.",
"placeholders": {
Expand Down Expand Up @@ -2542,7 +2627,7 @@
"@topicIsStartPageRemovalWarning": {
"description": "Warning shown when the topic is used as an instance start page."
},
"topicUsagesCount": "الاستخدامات ({count})",
"topicUsagesCount": "تم العثور على {count} من مواضع الاستخدام.",
"@topicUsagesCount": {
"description": "Number of discovered topic usages.",
"placeholders": {
Expand Down Expand Up @@ -2600,7 +2685,7 @@
"@manualUsageUpdatesRequired": {
"description": "Message shown when usages require manual updates."
},
"setRedirectTo": "تعيين إعادة التوجيه إلى",
"setRedirectTo": "تعيين إعادة التوجيه إلى:",
"@setRedirectTo": {
"description": "Option to redirect the removed topic URL to another topic."
},
Expand Down Expand Up @@ -3039,11 +3124,6 @@
"aiDraftCommitMessage": "صياغة مسودة رسالة الالتزام",
"aiDrafting": "جارٍ إعداد المسودة…",
"aiDraftWithAi": "إعداد مسودة بالذكاء الاصطناعي",
"generateOrUpdateMarkdownToc": "إنشاء/تحديث جدول المحتويات",
"markdownTocTitle": "جدول المحتويات",
"markdownTocUpdated": "حُدّث جدول المحتويات وأصبح يضم ⁨{count}⁩ من الإدخالات.",
"markdownTocNoHeadings": "أضف عنوان قسم واحدًا على الأقل قبل إنشاء جدول المحتويات.",
"markdownTocMalformedMarkers": "علامات جدول محتويات BusyMark مفقودة أو مكررة أو بترتيب غير صحيح.",
"diagnosticMarkdownHeadingSkippedLevel": "يلي عنوان المستوى ⁨{previousLevel}⁩ عنوان من المستوى ⁨{level}⁩؛ راجع تداخل الأقسام.",
"diagnosticMarkdownLinkEmptyText": "نص الرابط فارغ؛ أدخل اسمًا ميسّرًا يصف الغرض منه.",
"diagnosticMarkdownLinkReviewText": "راجع ما إذا كان نص الرابط «⁨{text}⁩» يصف غرضه ضمن السياق.",
Expand Down Expand Up @@ -3240,5 +3320,14 @@
"settingsHistoryExcludedPathsHint": "مسار مطلق واحد في كل سطر",
"settingsSecondsValue": "{value} ثوان",
"settingsDaysValue": "{value} أيام",
"settingsMebibytesValue": "{value} ميجابايت"
"settingsMebibytesValue": "{value} ميجابايت",
"preview": "معاينة",
"topicRenamePreviewTitle": "معاينة إعادة التسمية",
"topicRenamePathChange": "المسار: {oldPath} → {newPath}",
"topicRenameIdChange": "معرّف الموضوع: {oldId} → {newId}",
"topicRenameUrlChange": "المثيل {instance}: {oldName} → {newName}",
"topicRenameAffectedFiles": "الملفات المتأثرة",
"renameTopicFileInstead": "تُشتق معرّفات الموضوعات من أسماء ملفاتها. استخدم «إعادة تسمية ملف الموضوع» في جدول المحتويات أو الشريط الجانبي للملفات.",
"diagnosticWritersideWebFileNameInvalid": "ينشر المثيل \"{instanceId}\" اسم ملف ويب غير صالح \"{webFileName}\" للموضوع \"{topic}\".",
"diagnosticWritersideWebFileNameCollision": "ينشر المثيل \"{instanceId}\" الموضوعين \"{firstTopic}\" و\"{secondTopic}\" باسم \"{webFileName}\"."
}
Loading
Loading