Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ Non-code commits (documentation, planning, README-only updates) are excluded.

## Unreleased

- Added Copy TOC and settings to Document Outline, with AST-based extraction, default H2–H4 depth, configurable H1–H6 limits, bulleted/numbered/plain output, optional level normalization, and a collapsible wrapper. GitHub-compatible anchors handle Unicode, emoji, and duplicate headings consistently in copied TOCs and the preview. Outline header buttons highlight only on hover or while pressed, so opening the panel no longer highlights Close.
- Added Document Outline: a right sidebar with automatically updated H1–H6 heading trees, collapsible branches, hierarchy guides, and section navigation in Editor, Preview, and Split modes. Find & Replace, Full Screen, and the book-text outline button appear immediately after Emoji. The outline reuses the Find & Replace header and includes a Collapse/Expand All control.
- Matched Document Outline and Find & Replace at a default width of 340px, removed their header title icons, and shared the File Sidebar's horizontal resize handles, keyboard controls, and width reset behavior.

---

## v3.10.2
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Turn a document into a Share Snapshot link for quick handoffs, or start access-c
- **Backup and restore:** export or import a folder-preserving workspace ZIP; encrypted Secret Workspace files are optional, while trash and desktop history stay outside the backup.
- **Editing and review:** switch among Editor, Split view, and Preview; use formatting tools, an 8×8 quick table selector, productivity shortcuts, custom undo/redo, Find and Replace, LTR/RTL direction, per-document Preview positions, selection-anchored comments, and threaded replies.
- **Markdown rendering:** use CommonMark-style Markdown, GitHub-Flavored Markdown (GFM), tables, task lists, alerts, footnotes, definition lists, syntax highlighting, sanitized HTML, and MathJax.
- **Document Outline:** use the book-text button after Emoji, Find & Replace, and Full Screen to open a resizable right sidebar with collapsible heading branches, a Collapse/Expand All control, and section navigation in Editor, Preview, and Split modes. Copy a GitHub-compatible Markdown TOC with configurable heading depth, bulleted/numbered links or plain text, optional level normalization, and a collapsible wrapper. The outline follows the current document and shares Find & Replace's width and header styling.
- **Visual content:** render Mermaid, PlantUML, Graphviz/DOT, D2, Vega-Lite, WaveDrom, Markmap, GeoJSON, TopoJSON, STL, and ABC notation.

<p align="center">
Expand Down
22 changes: 22 additions & 0 deletions assets/document-toc.LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
github-slugger

Copyright (c) 2015, Dan Flettre <fletd01@yahoo.com>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


entities

Copyright (c) Felix Böhm
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2 changes: 2 additions & 0 deletions assets/document-toc.js

Large diffs are not rendered by default.

28 changes: 27 additions & 1 deletion assets/i18n/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Zoom In": "Увеличаване",
"Zoom model": "Увеличен модел",
"Zoom out": "Намаляване",
"Zoom Out": "Намаляване"
"Zoom Out": "Намаляване",
"Document Outline": "Структура на документа",
"Close Document Outline": "Затваряне на структурата на документа",
"Document headings": "Заглавия в документа",
"No headings in this document.": "В този документ няма заглавия.",
"Untitled heading": "Неозаглавено заглавие",
"Expand": "Разгъване",
"Collapse all headings": "Свиване на всички заглавия",
"Expand all headings": "Разгъване на всички заглавия",
"All headings collapsed.": "Всички заглавия са свити.",
"All headings expanded.": "Всички заглавия са разгънати.",
"Resize Document Outline": "Промяна на ширината на структурата на документа",
"Resize Find and Replace": "Промяна на ширината на търсене и замяна",
"Copy Markdown table of contents": "Копиране на съдържанието като Markdown",
"Table of contents copied.": "Съдържанието е копирано.",
"Failed to copy table of contents.": "Неуспешно копиране на съдържанието.",
"Copy table of contents": "Копиране на съдържанието",
"Table of contents settings": "Настройки на съдържанието",
"Min heading level": "Минимално ниво на заглавията",
"Max heading level": "Максимално ниво на заглавията",
"TOC format": "Формат на съдържанието",
"Bulleted links": "Връзки с водещи символи",
"Numbered links": "Номерирани връзки",
"Plain text": "Обикновен текст",
"Normalize heading levels": "Нормализиране на нивата на заглавията",
"Collapsible TOC wrapper": "Сгъваем блок за съдържанието",
"No headings in the selected range.": "Няма заглавия в избрания диапазон."
}
28 changes: 27 additions & 1 deletion assets/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Release notes are available in the tab list.": "Versionshinweise sind in der Registerkartenliste verfügbar.",
"Release Notes: 3.10.2": "Versionshinweise: 3.10.2",
"Skip update navigation": "Update-Navigation überspringen",
"1 file": "1 Datei"
"1 file": "1 Datei",
"Document Outline": "Dokumentgliederung",
"Close Document Outline": "Dokumentgliederung schließen",
"Document headings": "Dokumentüberschriften",
"No headings in this document.": "Dieses Dokument enthält keine Überschriften.",
"Untitled heading": "Unbenannte Überschrift",
"Expand": "Aufklappen",
"Collapse all headings": "Alle Überschriften einklappen",
"Expand all headings": "Alle Überschriften aufklappen",
"All headings collapsed.": "Alle Überschriften eingeklappt.",
"All headings expanded.": "Alle Überschriften aufgeklappt.",
"Resize Document Outline": "Breite der Dokumentgliederung ändern",
"Resize Find and Replace": "Breite von Suchen und Ersetzen ändern",
"Copy Markdown table of contents": "Inhaltsverzeichnis als Markdown kopieren",
"Table of contents copied.": "Inhaltsverzeichnis kopiert.",
"Failed to copy table of contents.": "Inhaltsverzeichnis konnte nicht kopiert werden.",
"Copy table of contents": "Inhaltsverzeichnis kopieren",
"Table of contents settings": "Einstellungen für das Inhaltsverzeichnis",
"Min heading level": "Minimale Überschriftenebene",
"Max heading level": "Maximale Überschriftenebene",
"TOC format": "Inhaltsverzeichnisformat",
"Bulleted links": "Links mit Aufzählungszeichen",
"Numbered links": "Nummerierte Links",
"Plain text": "Nur Text",
"Normalize heading levels": "Überschriftenebenen normalisieren",
"Collapsible TOC wrapper": "Einklappbares Inhaltsverzeichnis",
"No headings in the selected range.": "Keine Überschriften im ausgewählten Bereich."
}
28 changes: 27 additions & 1 deletion assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Zoom In": "Zoom In",
"Zoom model": "Zoom model",
"Zoom out": "Zoom out",
"Zoom Out": "Zoom Out"
"Zoom Out": "Zoom Out",
"Document Outline": "Document Outline",
"Close Document Outline": "Close Document Outline",
"Document headings": "Document headings",
"No headings in this document.": "No headings in this document.",
"Untitled heading": "Untitled heading",
"Expand": "Expand",
"Collapse all headings": "Collapse all headings",
"Expand all headings": "Expand all headings",
"All headings collapsed.": "All headings collapsed.",
"All headings expanded.": "All headings expanded.",
"Resize Document Outline": "Resize Document Outline",
"Resize Find and Replace": "Resize Find and Replace",
"Copy Markdown table of contents": "Copy Markdown table of contents",
"Table of contents copied.": "Table of contents copied.",
"Failed to copy table of contents.": "Failed to copy table of contents.",
"Copy table of contents": "Copy table of contents",
"Table of contents settings": "Table of contents settings",
"Min heading level": "Min heading level",
"Max heading level": "Max heading level",
"TOC format": "TOC format",
"Bulleted links": "Bulleted links",
"Numbered links": "Numbered links",
"Plain text": "Plain text",
"Normalize heading levels": "Normalize heading levels",
"Collapsible TOC wrapper": "Collapsible TOC wrapper",
"No headings in the selected range.": "No headings in the selected range."
}
28 changes: 27 additions & 1 deletion assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Release notes are available in the tab list.": "Las notas de la versión están disponibles en la lista de pestañas.",
"Release Notes: 3.10.2": "Notas de la versión: 3.10.2",
"Skip update navigation": "Saltar navegación de actualización",
"1 file": "1 archivo"
"1 file": "1 archivo",
"Document Outline": "Esquema del documento",
"Close Document Outline": "Cerrar esquema del documento",
"Document headings": "Encabezados del documento",
"No headings in this document.": "Este documento no tiene encabezados.",
"Untitled heading": "Encabezado sin título",
"Expand": "Expandir",
"Collapse all headings": "Contraer todos los encabezados",
"Expand all headings": "Expandir todos los encabezados",
"All headings collapsed.": "Todos los encabezados contraídos.",
"All headings expanded.": "Todos los encabezados expandidos.",
"Resize Document Outline": "Cambiar el ancho del esquema del documento",
"Resize Find and Replace": "Cambiar el ancho de Buscar y reemplazar",
"Copy Markdown table of contents": "Copiar índice en Markdown",
"Table of contents copied.": "Índice copiado.",
"Failed to copy table of contents.": "No se pudo copiar el índice.",
"Copy table of contents": "Copiar tabla de contenido",
"Table of contents settings": "Configuración de la tabla de contenido",
"Min heading level": "Nivel mínimo de encabezado",
"Max heading level": "Nivel máximo de encabezado",
"TOC format": "Formato de la tabla de contenido",
"Bulleted links": "Enlaces con viñetas",
"Numbered links": "Enlaces numerados",
"Plain text": "Texto sin formato",
"Normalize heading levels": "Normalizar niveles de encabezado",
"Collapsible TOC wrapper": "Tabla de contenido plegable",
"No headings in the selected range.": "No hay encabezados en el rango seleccionado."
}
28 changes: 27 additions & 1 deletion assets/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Release notes are available in the tab list.": "Les notes de version sont disponibles dans la liste des onglets.",
"Release Notes: 3.10.2": "Notes de version : 3.10.2",
"Skip update navigation": "Ignorer la navigation de mise à jour",
"1 file": "1 fichier"
"1 file": "1 fichier",
"Document Outline": "Plan du document",
"Close Document Outline": "Fermer le plan du document",
"Document headings": "Titres du document",
"No headings in this document.": "Ce document ne contient aucun titre.",
"Untitled heading": "Titre sans nom",
"Expand": "Développer",
"Collapse all headings": "Réduire tous les titres",
"Expand all headings": "Développer tous les titres",
"All headings collapsed.": "Tous les titres sont réduits.",
"All headings expanded.": "Tous les titres sont développés.",
"Resize Document Outline": "Redimensionner le plan du document",
"Resize Find and Replace": "Redimensionner Rechercher et remplacer",
"Copy Markdown table of contents": "Copier la table des matières en Markdown",
"Table of contents copied.": "Table des matières copiée.",
"Failed to copy table of contents.": "Impossible de copier la table des matières.",
"Copy table of contents": "Copier la table des matières",
"Table of contents settings": "Paramètres de la table des matières",
"Min heading level": "Niveau minimal des titres",
"Max heading level": "Niveau maximal des titres",
"TOC format": "Format de la table des matières",
"Bulleted links": "Liens à puces",
"Numbered links": "Liens numérotés",
"Plain text": "Texte brut",
"Normalize heading levels": "Normaliser les niveaux des titres",
"Collapsible TOC wrapper": "Table des matières repliable",
"No headings in the selected range.": "Aucun titre dans la plage sélectionnée."
}
7 changes: 7 additions & 0 deletions assets/i18n/generate-ui-locales.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,13 @@ const CURATED_OVERRIDES = {
};

const EXTRA_STRINGS = [
'Document Outline', 'Close Document Outline', 'Document headings', 'No headings in this document.', 'Untitled heading', 'Expand',
'Collapse all headings', 'Expand all headings', 'All headings collapsed.', 'All headings expanded.',
'Resize Document Outline', 'Resize Find and Replace',
'Copy Markdown table of contents', 'Table of contents copied.', 'Failed to copy table of contents.',
'Copy table of contents', 'Table of contents settings', 'Min heading level', 'Max heading level',
'TOC format', 'Bulleted links', 'Numbered links', 'Plain text', 'Normalize heading levels',
'Collapsible TOC wrapper', 'No headings in the selected range.',
'All changes saved', 'Saving...', 'Saved', 'Copied!', 'Copy failed',
'Import complete', 'Import completed with errors', 'Import failed', 'Preparing import…',
'No data is stored', 'Data is stored locally', 'Use light mode', 'Use dark mode',
Expand Down
28 changes: 27 additions & 1 deletion assets/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Release notes are available in the tab list.": "Le note sulla versione sono disponibili nell'elenco delle schede.",
"Release Notes: 3.10.2": "Note sulla versione: 3.10.2",
"Skip update navigation": "Salta la navigazione degli aggiornamenti",
"1 file": "1 file"
"1 file": "1 file",
"Document Outline": "Struttura del documento",
"Close Document Outline": "Chiudi struttura del documento",
"Document headings": "Titoli del documento",
"No headings in this document.": "Questo documento non contiene titoli.",
"Untitled heading": "Titolo senza nome",
"Expand": "Espandi",
"Collapse all headings": "Comprimi tutte le intestazioni",
"Expand all headings": "Espandi tutte le intestazioni",
"All headings collapsed.": "Tutte le intestazioni sono compresse.",
"All headings expanded.": "Tutte le intestazioni sono espanse.",
"Resize Document Outline": "Ridimensiona la struttura del documento",
"Resize Find and Replace": "Ridimensiona Trova e sostituisci",
"Copy Markdown table of contents": "Copia il sommario in Markdown",
"Table of contents copied.": "Sommario copiato.",
"Failed to copy table of contents.": "Impossibile copiare il sommario.",
"Copy table of contents": "Copia sommario",
"Table of contents settings": "Impostazioni del sommario",
"Min heading level": "Livello minimo dei titoli",
"Max heading level": "Livello massimo dei titoli",
"TOC format": "Formato del sommario",
"Bulleted links": "Link con elenco puntato",
"Numbered links": "Link numerati",
"Plain text": "Testo semplice",
"Normalize heading levels": "Normalizza i livelli dei titoli",
"Collapsible TOC wrapper": "Sommario comprimibile",
"No headings in the selected range.": "Nessun titolo nell’intervallo selezionato."
}
28 changes: 27 additions & 1 deletion assets/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,5 +1168,31 @@
"Release notes are available in the tab list.": "リリースノートはタブ一覧からご覧いただけます。",
"Release Notes: 3.10.2": "リリースノート: 3.10.2",
"Skip update navigation": "アップデートナビゲーションをスキップ",
"1 file": "1ファイル"
"1 file": "1ファイル",
"Document Outline": "ドキュメントのアウトライン",
"Close Document Outline": "ドキュメントのアウトラインを閉じる",
"Document headings": "ドキュメントの見出し",
"No headings in this document.": "このドキュメントには見出しがありません。",
"Untitled heading": "無題の見出し",
"Expand": "展開",
"Collapse all headings": "すべての見出しを折りたたむ",
"Expand all headings": "すべての見出しを展開",
"All headings collapsed.": "すべての見出しを折りたたみました。",
"All headings expanded.": "すべての見出しを展開しました。",
"Resize Document Outline": "ドキュメントのアウトラインの幅を変更",
"Resize Find and Replace": "検索と置換の幅を変更",
"Copy Markdown table of contents": "Markdownの目次をコピー",
"Table of contents copied.": "目次をコピーしました。",
"Failed to copy table of contents.": "目次をコピーできませんでした。",
"Copy table of contents": "目次をコピー",
"Table of contents settings": "目次の設定",
"Min heading level": "見出しの最小レベル",
"Max heading level": "見出しの最大レベル",
"TOC format": "目次の形式",
"Bulleted links": "箇条書きリンク",
"Numbered links": "番号付きリンク",
"Plain text": "プレーンテキスト",
"Normalize heading levels": "見出しレベルを正規化",
"Collapsible TOC wrapper": "折りたたみ可能な目次",
"No headings in the selected range.": "選択した範囲に見出しがありません。"
}
Loading
Loading