/** * Global application state and constants */ // Set to true to enable verbose console logging for development. const DEBUG = false; // Check if File System Access API is available const hasFileSystemAccess = 'showDirectoryPicker' in window; // Directory and file handles let directoryHandle = null; let fileTree = {}; let currentFileHandle = null; // True when the page is served over HTTP(S) and the file tree is sourced // from the server's JSON directory listing instead of the local FS API. let serverSourceMode = false; // Map to store editor instances for each file // Key: file path, Value: { editor, container, tocContainer, etc. } const editorInstances = new Map(); // Current TOC max depth (1-6) let tocMaxDepth = 3; // Scratchpad ID constant const SCRATCHPAD_ID = '__scratchpad__'; // Default scratchpad markdown — shown the first time mdedit loads. // Acts as both a welcome message and a starter pad for quick notes. const SCRATCHPAD_WELCOME = [ '# Welcome to ZDDC Markdown', '', 'All editing happens locally on your computer — nothing is uploaded.', '', 'Use this **Scratchpad** for quick notes. Download it any time with the ⬇', 'button on the Scratchpad row in the file list.', '', 'Click **Select Directory** above to open a folder of Markdown files,', 'or just start typing here.', '', ].join('\n');