From 0ddd75e5feb099b2704e0101957a1bed33c790c4 Mon Sep 17 00:00:00 2001 From: trillstones <32927876+TrillStones@users.noreply.github.com> Date: Sat, 7 Dec 2024 11:10:04 +0800 Subject: [PATCH 1/5] Add Image Occlusion Script --- ea-scripts/Image Occlusion.md | 1147 ++++++++++++++++++++++++++++++++ ea-scripts/Image Occlusion.svg | 20 + 2 files changed, 1167 insertions(+) create mode 100644 ea-scripts/Image Occlusion.md create mode 100644 ea-scripts/Image Occlusion.svg diff --git a/ea-scripts/Image Occlusion.md b/ea-scripts/Image Occlusion.md new file mode 100644 index 0000000..68536d0 --- /dev/null +++ b/ea-scripts/Image Occlusion.md @@ -0,0 +1,1147 @@ +/* +# Image Occlusion for Excalidraw + +This script creates image occlusion cards similar to Anki's Image Occlusion Enhanced plugin. + +## Usage: +1. Insert an image into Excalidraw +2. Draw rectangles or ellipses over areas you want to occlude +3. Select the image and all shapes you want to use as masks +4. Run this script +5. Choose occlusion mode: + - ⭐⠀ Add Cards: Hide One, Guess One: Creates cards where only one shape is hidden at a time + - ⭐⭐ Add Cards: Hide All, Guess One: Creates cards where all shapes are hidden except one + - 🗑️⠀ Delete Cards: Delete old cards (add DELETE marker): Marks all existing cards for deletion by adding DELETE marker + - 🗑️💥 Delete Cards: Delete old cards file and related images (Be Cautious!! Physical Delection): Permanently deletes all related card files and images + +The script will generate masked versions of the image and save them locally. + +```javascript +*/ + +// Check minimum required version of Excalidraw plugin +if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.9.0")) { + new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); + return; +} + +// Get all selected elements from the canvas +const elements = ea.getViewSelectedElements(); + +// Find all selected image elements +const selectedImages = elements.filter(el => el.type === "image"); + +// Get all non-image elements to use as masks +const maskElements = elements.filter(el => el.type !== "image"); + +// Group masks based on their grouping in Excalidraw +const maskGroups = ea.getMaximumGroups(maskElements); + +// Process each mask or group of masks +const masks = maskGroups.map(group => { + // If group contains only one element, return that element + if (group.length === 1) return group[0]; + // If group contains multiple elements, return the group info + return { + type: "group", + elements: group, + id: group[0].groupIds?.[0] || ea.generateElementId() + }; +}); + +// Validate selection - must have one image and at least one mask +if(selectedImages.length === 0 || masks.length === 0) { + new Notice("Please select at least one image and one element or group to use as mask"); + return; +} + +// Verify the selected image and masks are properly grouped +const validateSelection = () => { + // Get combined bounds of all selected images + const combinedBounds = selectedImages.reduce((bounds, img) => ({ + minX: Math.min(bounds.minX, img.x), + maxX: Math.max(bounds.maxX, img.x + img.width), + minY: Math.min(bounds.minY, img.y), + maxY: Math.max(bounds.maxY, img.y + img.height) + }), { + minX: Infinity, + maxX: -Infinity, + minY: Infinity, + maxY: -Infinity + }); + + // Remove bounds checking and always return true + return true; +}; + +// Validate selection before proceeding +if (!validateSelection()) { + return; +} + +// Present user with operation mode choices +const mode = await utils.suggester( + [ + "⭐⠀ Add Cards: Hide One, Guess One", + "⭐⭐ Add Cards: Hide All, Guess One", + "🗑️⠀ Delete Cards: Delete old cards (add DELETE marker)", + "🗑️💥 Delete Cards: Delete old cards files and related images (Be Cautious!!)" + ], + ["hideOne", "hideAll", "delete", "deleteFiles"], + "Select operation mode" +); + +// Exit if user cancels the operation +if(!mode) return; + +// Function to permanently delete related files and images +const deleteRelatedFilesAndImages = async (sourcePath) => { + // Add delay function for async operations + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); + + // Initialize collections and counters + const cardFiles = new Set(); + const batchMarkers = new Set(); + const sourceFile = app.vault.getAbstractFileByPath(sourcePath); + let deletedCardsCount = 0; + let deletedFoldersCount = 0; + + if (!sourceFile) { + new Notice(`Source file not found: ${sourcePath}`); + return; + } + + // Get backlinks to find batch-marker.md files + const backlinks = app.metadataCache.getBacklinksForFile(sourceFile) || new Map(); + + // Find all batch-marker.md files that link to the source file + if (backlinks.data instanceof Map) { + for (const [filePath, _] of backlinks.data.entries()) { + if (filePath.endsWith('batch-marker.md')) { + const markerFile = app.vault.getAbstractFileByPath(filePath); + if (markerFile) { + batchMarkers.add(markerFile); + // console.log(`Found batch marker: ${filePath}`); + } + } + } + } + + if (batchMarkers.size === 0) { + // console.log('No batch markers found. Please check if the source file path is correct:', sourcePath); + return; + } + + // Process each batch marker file to find cards + for (const marker of batchMarkers) { + // console.log(`Processing batch marker: ${marker.path}`); + const content = await app.vault.read(marker); + // console.log("Batch marker content:", content); + const lines = content.split('\n'); + + // Find the "Generated Cards:" section + const startIndex = lines.findIndex(line => line.trim() === 'Generated Cards:'); + // console.log("Start index:", startIndex); + if (startIndex !== -1) { + // Process each card link after the "Generated Cards:" line + for (let i = startIndex + 1; i < lines.length; i++) { + // console.log("Processing line:", lines[i]); + const match = lines[i].match(/\[\[([^\]]+)\]\]/); + if (match) { + const cardPath = match[1]; + // Use Obsidian's API to resolve wiki link + const cardFile = app.metadataCache.getFirstLinkpathDest(cardPath, marker.path); + + if (cardFile) { + cardFiles.add(cardFile); + // console.log(`Found card file through wiki link: ${cardFile.path}`); + } else { + // console.log(`Card file not found for wiki link: ${cardPath}`); + } + } + } + } + } + + // First delete all card files + for (const file of cardFiles) { + try { + if (await app.vault.adapter.exists(file.path)) { + // Notify Obsidian's event system about the deletion + app.vault.trigger("delete", file); + await app.vault.delete(file); + // Add short delay to allow plugins to respond + await delay(50); + deletedCardsCount++; + // console.log(`Deleted card file: ${file.path}`); + } + } catch (error) { + console.error(`Failed to delete card file: ${file.path}`, error); + } + } + + // Wait for file deletion operations to complete + await delay(200); + + // Then delete batch marker folders + for (const marker of batchMarkers) { + const parentPath = marker.path.substring(0, marker.path.lastIndexOf('/')); + const parentFolder = app.vault.getAbstractFileByPath(parentPath); + + if (parentFolder && await app.vault.adapter.exists(parentFolder.path)) { + try { + // Notify folder deletion + app.vault.trigger("delete", parentFolder); + await app.vault.delete(parentFolder, true); + await delay(50); + deletedFoldersCount++; + // console.log(`Deleted folder: ${parentFolder.path}`); + } catch (error) { + console.error(`Failed to delete folder: ${parentFolder.path}`, error); + } + } + } + + new Notice(`Summary: + - Card files deleted: ${deletedCardsCount} + - Image folders deleted: ${deletedFoldersCount}`); +}; + +// Function to get batch markers and their parent folders +const getBatchMarkersInfo = async (sourceFile) => { + const backlinks = app.metadataCache.getBacklinksForFile(sourceFile) || new Map(); + const batchMarkers = new Map(); // Map> + + if (backlinks.data instanceof Map) { + for (const [filePath, _] of backlinks.data.entries()) { + if (filePath.endsWith('batch-marker.md')) { + const markerFile = app.vault.getAbstractFileByPath(filePath); + if (markerFile) { + const folderPath = markerFile.path.substring(0, markerFile.path.lastIndexOf('/')); + if (!batchMarkers.has(folderPath)) { + batchMarkers.set(folderPath, new Set()); + } + batchMarkers.get(folderPath).add(markerFile); + } + } + } + } + + return batchMarkers; +}; + +// Function to find and mark cards for deletion +const deleteRelatedCards = async (sourcePath, selectedFolders = null) => { + const cardFiles = new Set(); + const sourceFile = app.vault.getAbstractFileByPath(sourcePath); + let totalCardsFound = 0; + let totalNewlyMarked = 0; + let totalAlreadyMarked = 0; + + if (!sourceFile) { + console.log(`Source file not found: ${sourcePath}`); + return; + } + + // Get all batch markers grouped by folder + const batchMarkersMap = await getBatchMarkersInfo(sourceFile); + + if (batchMarkersMap.size === 0) { + console.log('No batch markers found'); + return; + } + + // Get batch markers to process + let batchMarkersToProcess = new Set(); + if (selectedFolders) { + // Convert to array if it's not already + const folderArray = Array.isArray(selectedFolders) ? selectedFolders : [selectedFolders]; + + // Process each selected folder + folderArray.forEach(folder => { + const markers = batchMarkersMap.get(folder); + if (markers) { + markers.forEach(marker => batchMarkersToProcess.add(marker)); + } + }); + } else { + // Process all markers + batchMarkersMap.forEach(markers => { + markers.forEach(marker => batchMarkersToProcess.add(marker)); + }); + } + + // Process each batch marker file + for (const marker of batchMarkersToProcess) { + // console.log(`Processing batch marker: ${marker.path}`); + const content = await app.vault.read(marker); + // console.log("Batch marker content:", content); + const lines = content.split('\n'); + + // Find the "Generated Cards:" section + const startIndex = lines.findIndex(line => line.trim() === 'Generated Cards:'); + // console.log("Start index:", startIndex); + if (startIndex !== -1) { + // Process each card link after the "Generated Cards:" line + for (let i = startIndex + 1; i < lines.length; i++) { + // console.log("Processing line:", lines[i]); + const match = lines[i].match(/\[\[([^\]]+)\]\]/); + if (match) { + const cardPath = match[1]; + // Use Obsidian's API to resolve wiki link + const cardFile = app.metadataCache.getFirstLinkpathDest(cardPath, marker.path); + + if (cardFile) { + cardFiles.add(cardFile); + // console.log(`Found card file through wiki link: ${cardFile.path}`); + } else { + console.log(`Card file not found for wiki link: ${cardPath}`); + } + } + } + } + } + + // Process each card file to add DELETE markers + for (const file of cardFiles) { + // console.log("Processing card file:", file.path); + // Read file content and split into lines for processing + const content = await app.vault.read(file); + // console.log("Card content:", content); + const lines = content.split('\n'); + let modified = false; + let cardCount = 0; + let alreadyMarkedCount = 0; + + // Search for Anki card IDs and add DELETE marker before each + for (let i = 0; i < lines.length; i++) { + // Look for Anki card ID pattern + const idMatch = lines[i].match(//); + if (idMatch) { + // console.log("Found ID line:", lines[i]); + cardCount++; + const cardId = idMatch[0]; + + // Check if DELETE marker already exists + if (i > 0 && lines[i-1].trim() === 'DELETE') { + // console.log("DELETE marker already exists"); + alreadyMarkedCount++; + continue; + } + + // Insert DELETE marker before the ID line + lines.splice(i, 0, 'DELETE'); + i++; // Skip the newly inserted line + modified = true; + // console.log("Added DELETE marker before:", cardId); + } + } + + // Save changes if file was modified + if (modified) { + // console.log("Saving modified content"); + await app.vault.modify(file, lines.join('\n')); + } else { + // console.log("No modifications needed"); + } + + totalCardsFound += cardCount; + totalNewlyMarked += (cardCount - alreadyMarkedCount); + totalAlreadyMarked += alreadyMarkedCount; + } + + new Notice(`Summary: + - Files processed: ${cardFiles.size} + - Total cards found: ${totalCardsFound} + - Newly marked for deletion: ${totalNewlyMarked} + - Already marked for deletion: ${totalAlreadyMarked}`); +}; + +// If delete files mode is selected, delete all related files and exit +if(mode === "deleteFiles") { + // Show confirmation dialog before permanent deletion + const confirmed = await utils.suggester( + ["Delete all files", "Select folders to delete"], + ["all", "select"], + "WARNING: This will permanently delete all related card files and image folders. This action cannot be undone. Are you sure?" + ); + + if (!confirmed) { + new Notice("Operation cancelled"); + return; + } + + const currentFile = app.workspace.getActiveFile(); + if (currentFile) { + // Get all batch markers and their folders + const batchMarkersMap = await getBatchMarkersInfo(currentFile); + + if (batchMarkersMap.size === 0) { + new Notice("No files found to delete"); + return; + } + + if (confirmed === "select") { + // Sort folders alphabetically + const folders = Array.from(batchMarkersMap.keys()).sort(); + + // Let user select folders + let selectedFolders = await utils.suggester( + folders, + folders, + "Select folders to delete (ESC to cancel)", + true // Allow multi-select + ); + + if (!selectedFolders || selectedFolders.length === 0) return; + + // Ensure selectedFolders is an array + if (!Array.isArray(selectedFolders)) { + selectedFolders = [selectedFolders]; + } + + // Delete files from selected folders + for (const folder of selectedFolders) { + const markers = batchMarkersMap.get(folder); + if (markers) { + for (const marker of markers) { + // Process each batch marker + const content = await app.vault.read(marker); + const lines = content.split('\n'); + const startIndex = lines.findIndex(line => line.trim() === 'Generated Cards:'); + + if (startIndex !== -1) { + // Delete card files first + for (let i = startIndex + 1; i < lines.length; i++) { + const match = lines[i].match(/\[\[([^\]]+)\]\]/); + if (match) { + const cardPath = match[1]; + const cardFile = app.metadataCache.getFirstLinkpathDest(cardPath, marker.path); + if (cardFile) { + try { + await app.vault.delete(cardFile); + // console.log(`Deleted card file: ${cardFile.path}`); + } catch (error) { + console.error(`Failed to delete card file: ${cardFile.path}`, error); + } + } + } + } + + // Then delete the folder + const parentFolder = app.vault.getAbstractFileByPath(folder); + if (parentFolder) { + try { + await app.vault.delete(parentFolder, true); + // console.log(`Deleted folder: ${folder}`); + } catch (error) { + console.error(`Failed to delete folder: ${folder}`, error); + } + } + } + } + } + } + + new Notice(`Successfully deleted selected folders and their contents`); + } else { + // Delete all files + const currentFile = app.workspace.getActiveFile(); + if (currentFile) { + await deleteRelatedFilesAndImages(currentFile.path); + } + } + } else { + new Notice("No source file found"); + } + return; +} + +// If delete mode is selected, mark old cards for deletion and exit +if(mode === "delete") { + const currentFile = app.workspace.getActiveFile(); + if (currentFile) { + // Get all batch markers and their folders + const batchMarkersMap = await getBatchMarkersInfo(currentFile); + + if (batchMarkersMap.size === 0) { + new Notice("No cards found to delete"); + return; + } + + // Ask user whether to delete all or select folders + const deleteChoice = await utils.suggester( + ["Delete all cards", "Select folders to delete"], + ["all", "select"], + "How would you like to delete cards?" + ); + + if (!deleteChoice) return; + + if (deleteChoice === "select") { + // Sort folders alphabetically + const folders = Array.from(batchMarkersMap.keys()).sort(); + + // Let user select folders + let selectedFolders = await utils.suggester( + folders, + folders, + "Select folders to delete cards from (ESC to cancel)", + true // Allow multi-select + ); + + if (!selectedFolders || selectedFolders.length === 0) return; + + // Ensure selectedFolders is an array + if (!Array.isArray(selectedFolders)) { + selectedFolders = [selectedFolders]; + } + + // Delete cards from selected folders + await deleteRelatedCards(currentFile.path, selectedFolders); + } else { + // Delete all cards + await deleteRelatedCards(currentFile.path); + } + } + return; +} + +// Extract original image name from the file ID +const getImageName = (fileId) => { + const imageData = ea.targetView.excalidrawData.getFile(fileId); + if (imageData?.linkParts?.original) { + const pathParts = imageData.linkParts.original.split('/'); + const fileName = pathParts[pathParts.length - 1]; + return fileName.split('.')[0]; // Remove extension + } + return 'image'; +}; + +// Create timestamp in format: YYMMDDHHmmssSSS +const now = new Date(); +const timestamp = now.getFullYear().toString().slice(-2) + + (now.getMonth() + 1).toString().padStart(2, '0') + + now.getDate().toString().padStart(2, '0') + + now.getHours().toString().padStart(2, '0') + + now.getMinutes().toString().padStart(2, '0') + + now.getSeconds().toString().padStart(2, '0') + + now.getMilliseconds().toString().padStart(3, '0'); + +// Function to generate current timestamp for file names +const getCurrentTimestamp = () => { + const now = new Date(); + const baseTimestamp = now.getFullYear().toString().slice(-2) + + (now.getMonth() + 1).toString().padStart(2, '0') + + now.getDate().toString().padStart(2, '0') + + now.getHours().toString().padStart(2, '0') + + now.getMinutes().toString().padStart(2, '0') + + now.getSeconds().toString().padStart(2, '0') + + now.getMilliseconds().toString().padStart(3, '0'); + return baseTimestamp; +}; + +// Initialize or get script settings for card location +let settings = ea.getScriptSettings(); + +// Default settings configuration +const defaultSettings = { + "Output Base Folder": { + value: "", + description: "Base folder for storing generated files. Always use forward slash '/' for paths. Example: 'Excalidraw-Image-Occlusions', 'Cards/Image-Occlusions'", + valueset: [] // Empty array allows free text input + }, + "Card Location": { + value: "ask", + description: "Where to save card files ('default' for same folder as images, or 'choose' for custom location)", + valueset: ["ask", "default", "choose"] + }, + "Default Card Path": { + value: "", + description: "Default path for card files when 'Card Location' is set to 'default'. Always use forward slash '/' for paths. Examples: 'flashcard/Anki', 'My Notes/Cards/Occlusion'. Leave empty to save with images", + valueset: [] // Empty array allows free text input + }, + "Default Template": { + value: "", + description: "Default template file path relative to template folder (e.g., 'Anki/Image Occlusion.md'). Leave empty to select template each time", + valueset: [] // Empty array allows free text input + }, + "Card File Prefix": { + value: "", + description: "Prefix for generated card files. Must be a valid filename without dots. Examples: 'anki - ', 'card ', 'io - '. Leave empty for no prefix", + valueset: [] // Empty array allows free text input + }, + "Card File Suffix": { + value: "", + description: "Suffix for generated card files (before .md). Examples: ' -card.card3' will generate 'prefix-timestamp-card.card3.md'. Leave empty for no suffix", + valueset: [] // Empty array allows free text input + }, + "Image Quality": { + value: "1.5", + description: "Export scale for image quality (e.g., 1.5). Higher values mean better quality but larger files. Must be a valid number.", + valueset: [] // Empty array allows free text input + }, + "Hide All, Guess One - Highlight Color": { + value: "#ffd700", + description: "Color used to highlight the target mask in 'Hide All, Guess One' mode (e.g., #ffd700 for gold, #ff0000 for red)", + valueset: [] // Empty array allows free text input + } +}; + +// Initialize settings if they don't exist or merge with defaults +if (!settings) { + settings = defaultSettings; + await ea.setScriptSettings(settings); +} else { + // Check and add any missing settings + let needsUpdate = false; + Object.entries(defaultSettings).forEach(([key, defaultValue]) => { + if (!settings[key]) { + settings[key] = defaultValue; + needsUpdate = true; + } + }); + + if (needsUpdate) { + await ea.setScriptSettings(settings); + } +} + +// Validate and get image quality setting +const validateQuality = (quality) => { + // Try to parse as float and check if it's a valid number + const value = parseFloat(quality); + return !isNaN(value) && isFinite(value) && value > 0; +}; + +// Get image quality with validation +const imageQuality = validateQuality(settings["Image Quality"]?.value) + ? settings["Image Quality"].value + : "1.5"; // Default to 1.5 if invalid + +// Get and validate highlight color setting +const validateColor = (color) => { + // Check if it's a valid hex color + return /^#[0-9A-Fa-f]{6}$/.test(color); +}; + +// Get highlight color with validation +const highlightColor = validateColor(settings["Hide All, Guess One - Highlight Color"]?.value) + ? settings["Hide All, Guess One - Highlight Color"].value + : "#ffd700"; // Default to gold if invalid + +// Function to prompt user for card file save location +const askForCardLocation = async (imageFolder) => { + // Use the initialized settings + const locationSetting = settings["Card Location"].value; + const defaultPath = settings["Default Card Path"]?.value?.trim(); + + // If setting is "default", use configured path or image folder + if (locationSetting === "default") { + if (defaultPath) { + // Normalize path: replace backslashes and remove trailing slash + const normalizedPath = defaultPath + .replace(/\\/g, '/') + .replace(/\/+$/, ''); // Remove trailing slashes + + // Create default path if it doesn't exist + await app.vault.adapter.mkdir(normalizedPath, { recursive: true }); + return normalizedPath; + } + return imageFolder; + } + + // If setting is "choose", skip dialog and go straight to folder selection + if (locationSetting === "choose") { + // Get list of all available folders for user selection + const folders = app.vault.getAllLoadedFiles() + .filter(f => f.children) + .map(f => f.path) + .sort(); + + // Let user choose from available folders + const selectedFolder = await utils.suggester( + folders, + folders, + "Select folder for card files" + ); + + // Return null if user cancels folder selection + if (selectedFolder === undefined) { + return null; + } + + return selectedFolder || imageFolder; + } + + // If setting is "ask", show the choice dialog + const choice = await utils.suggester( + [ + defaultPath ? `Default location (${defaultPath})` : "Default location (with images)", + "Choose custom location" + ], + ["default", "custom"], + "Where would you like to save the card files?" + ); + + // If user cancels (presses ESC), return null + if (choice === undefined) { + return null; + } + + // Return default location if no choice or default selected + if(!choice || choice === "default") { + if (defaultPath) { + // Normalize path: replace backslashes and remove trailing slash + const normalizedPath = defaultPath + .replace(/\\/g, '/') + .replace(/\/+$/, ''); // Remove trailing slashes + + // Create default path if it doesn't exist + await app.vault.adapter.mkdir(normalizedPath, { recursive: true }); + return normalizedPath; + } + return imageFolder; + } + + // Get list of all available folders for user selection + const folders = app.vault.getAllLoadedFiles() + .filter(f => f.children) + .map(f => f.path) + .sort(); + + // Let user choose from available folders + const selectedFolder = await utils.suggester( + folders, + folders, + "Select folder for card files" + ); + + // Return null if user cancels folder selection + if (selectedFolder === undefined) { + return null; + } + + return selectedFolder || imageFolder; +}; + +// Function to construct image folder path using image name and timestamp +const getImageFolder = (imageName, timestamp) => { + const baseFolder = settings["Output Base Folder"]?.value?.trim() || "Excalidraw-Image-Occlusions"; + // Normalize path and remove trailing slash + const normalizedBase = baseFolder + .replace(/\\/g, '/') + .replace(/\/+$/, ''); + return `${normalizedBase}/${imageName}-${timestamp}`; +}; + +// Function to determine final output folder path based on settings or user choice +const getOutputFolder = async (imageName, timestamp) => { + // Get default image folder path + const imageFolder = getImageFolder(imageName, timestamp); + + // Return default path if settings specify default location + if(settings["Card Location"].value === "default") { + return imageFolder; + } + + // Get list of all available folders for user selection + const folders = app.vault.getAllLoadedFiles() + .filter(f => f.children) + .map(f => f.path) + .sort(); + + // Let user choose output folder + const selectedFolder = await utils.suggester( + folders, + folders, + "Select folder for card files" + ); + + // Return default folder if no selection made + if(!selectedFolder) { + return imageFolder; + } + + return selectedFolder; +}; + +// Helper function to get current Excalidraw file path +const getCurrentFilePath = () => { + const file = app.workspace.getActiveFile(); + return file ? file.path : ''; +}; + +// Get current editing file name for folder naming +const getSourceFileName = () => { + const currentFile = app.workspace.getActiveFile(); + if (!currentFile) { + return 'image'; + } + // Remove extension and replace special characters + return currentFile.basename.replace(/[\\/:*?"<>|]/g, '_'); +}; + +// Create necessary folders for storing images and cards +const imageName = getSourceFileName(); +const imageFolder = getImageFolder(imageName, timestamp); +const cardFolder = await askForCardLocation(imageFolder); + +// Exit if user cancelled location selection +if (cardFolder === null) { + new Notice("Operation cancelled"); + return; +} + +// Create image folder with all parent directories +await app.vault.adapter.mkdir(imageFolder, { recursive: true }); + +// Create card folder if different from image folder +if(cardFolder !== imageFolder) { + await app.vault.adapter.mkdir(cardFolder, { recursive: true }); +} + +// Create initial batch marker file +const createBatchMarker = async (sourceFile) => { + const content = `Source: [[${sourceFile}|find edit source]]\n\nGenerated Cards:\n`; + const fileName = `${imageFolder}/batch-marker.md`; + await app.vault.create(fileName, content); + return fileName; +}; + +// Add card to batch marker +const addCardToBatchMarker = async (cardPath) => { + const markerPath = `${imageFolder}/batch-marker.md`; + const currentContent = await app.vault.read(app.vault.getAbstractFileByPath(markerPath)); + // Use full path in batch-marker + const newContent = currentContent + `[[${cardPath}]]\n`; + await app.vault.modify(app.vault.getAbstractFileByPath(markerPath), newContent); +}; + +// Create batch marker file after folders are created +const sourceFile = getCurrentFilePath(); +const batchMarkerFile = await createBatchMarker(sourceFile); + +// Function to convert base64 image data to binary format +const base64ToBinary = (base64) => { + // Remove data URL prefix + const base64Data = base64.replace(/^data:image\/png;base64,/, ""); + // Convert base64 to binary string + const binaryString = window.atob(base64Data); + // Convert binary string to Uint8Array + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + return bytes; +}; + +// Function to generate image with specified visible and hidden masks +const generateMaskedImage = async (visibleMasks = [], hiddenMasks = []) => { + // Combine all selected images and masks into one array + const allElements = [...selectedImages]; + [...visibleMasks, ...hiddenMasks].forEach(mask => { + if (mask.type === "group") { + allElements.push(...mask.elements); + } else { + allElements.push(mask); + } + }); + + // Copy elements to Excalidraw's editing area + ea.copyViewElementsToEAforEditing(allElements); + + // Get and cache all selected images data + for (const img of selectedImages) { + const imageData = ea.targetView.excalidrawData.getFile(img.fileId); + if (imageData) { + ea.imagesDict[img.fileId] = { + id: img.fileId, + dataURL: imageData.img, + mimeType: imageData.mimeType, + created: Date.now() + }; + } + } + + // Configure visibility of masks for question image + visibleMasks.forEach(mask => { + if (mask.type === "group") { + // Set all elements in group to fully visible + mask.elements.forEach(el => { + const element = ea.getElement(el.id); + element.opacity = 100; + }); + } else { + // Set single element to fully visible + const element = ea.getElement(mask.id); + element.opacity = 100; + } + }); + + // Configure invisibility of masks for answer image + hiddenMasks.forEach(mask => { + if (mask.type === "group") { + // Set all elements in group to invisible + mask.elements.forEach(el => { + const element = ea.getElement(el.id); + element.opacity = 0; + }); + } else { + // Set single element to invisible + const element = ea.getElement(mask.id); + element.opacity = 0; + } + }); + + // Generate PNG with specific export settings + const dataURL = await ea.createPNGBase64( + null, + parseFloat(imageQuality), + { + exportWithDarkMode: false, + exportWithBackground: true, + viewBackgroundColor: "#ffffff", + exportScale: parseFloat(imageQuality), + quality: 100 + } + ); + + // Clear Excalidraw's editing area + ea.clear(); + return dataURL; +}; + +// Function to get available Templater templates +const getTemplates = () => { + // Check if Templater plugin is installed + const templaterPlugin = app.plugins.plugins["templater-obsidian"]; + if (!templaterPlugin) { + new Notice("Templater plugin is not installed"); + return null; + } + + // Check if template folder is configured + const templateFolder = templaterPlugin.settings.templates_folder; + if (!templateFolder) { + new Notice("Template folder is not set in Templater settings"); + return null; + } + + // Get template folder and verify it exists + const templates = app.vault.getAbstractFileByPath(templateFolder); + if (!templates || !templates.children) { + new Notice("No templates found"); + return null; + } + + // Return only markdown files from template folder + return templates.children.filter(f => f.extension === "md"); +}; + +// Function to create card markdown file from template +const createMarkdownFromTemplate = async (templatePath, cardNumber, imagePath, sourceFile) => { + const templaterPlugin = app.plugins.plugins["templater-obsidian"]; + const template = await app.vault.read(templatePath); + + // Convert absolute file paths to relative paths for Obsidian links + const vaultPath = app.vault.adapter.getBasePath(); + const relativePath = { + question: imagePath.question.replace(vaultPath, '').replace(/\\/g, '/'), + answer: imagePath.answer.replace(vaultPath, '').replace(/\\/g, '/') + }; + + // Replace template placeholders with actual values + let content = template + .replace(/{{card_number}}/g, cardNumber) + .replace(/{{question}}/g, relativePath.question) + .replace(/{{answer}}/g, relativePath.answer) + .replace(/{{editSource}}/g, sourceFile) + .replace(/{{batchMarker}}/g, `${imageFolder}/batch-marker.md`); + + // Get and validate file prefix from settings + const validatePrefix = (prefix) => { + // Allow trailing spaces but validate the actual prefix content + const actualPrefix = prefix.replace(/^\s+|\s+$/g, ''); // Remove leading and trailing spaces for validation only + return !actualPrefix || /^[a-zA-Z0-9_\s-]+$/.test(actualPrefix); + }; + + // Get and validate file suffix from settings + const validateSuffix = (suffix) => { + // Allow trailing spaces but validate the actual suffix content + const actualSuffix = suffix.replace(/^\s+|\s+$/g, ''); // Remove leading and trailing spaces for validation only + return !actualSuffix || /^[a-zA-Z0-9_\s\-.]+$/.test(actualSuffix); // Allow dots in suffix + }; + + const filePrefix = settings["Card File Prefix"]?.value || ""; // Don't trim to keep original spaces + const validatedPrefix = validatePrefix(filePrefix) ? filePrefix : ""; + const prefixPart = validatedPrefix || ""; + + // Get and validate file suffix from settings + const fileSuffix = settings["Card File Suffix"]?.value || ""; // Don't trim to keep original spaces + const validatedSuffix = validateSuffix(fileSuffix) ? fileSuffix : ""; + const suffixPart = validatedSuffix || ""; + + // Create new card file with generated content + const fileName = `${cardFolder}/${prefixPart}${cardNumber}${suffixPart}.md`; + await app.vault.create(fileName, content); + + // Add card to batch marker after successful creation + await addCardToBatchMarker(fileName); +}; + +// Function to get template file based on settings +const getTemplateFile = async (templates) => { + // Get default template path from settings + const defaultTemplate = settings["Default Template"]?.value?.trim(); + + if (defaultTemplate) { + // Try to find the default template + const templateFile = templates.find(t => t.path.endsWith(defaultTemplate)); + if (templateFile) { + return templateFile; + } + } + + // If no default template or not found, let user select + return await utils.suggester( + templates.map(t => t.basename), + templates, + "Select a template for the cards" + ); +}; + +// Begin card generation process based on selected mode +let counter = 1; +if(mode === "hideAll") { + // Get template selection from user for Hide All mode + const templates = getTemplates(); + if (!templates) return; + + // Get template file based on settings or user selection + const templateFile = await getTemplateFile(templates); + if (!templateFile) return; + + // Generate cards for each mask in Hide All mode + for(let i = 0; i < masks.length; i++) { + // Set current mask as hidden, all others as visible + const hiddenMasks = [masks[i]]; + const visibleMasks = masks.filter((_, index) => index !== i); + + // Generate unique timestamp for this card + const fileTimestamp = getCurrentTimestamp(); + + // Create a copy of all masks and highlight the target mask + const questionMasks = masks.map(mask => { + if (mask === hiddenMasks[0]) { + // Handle group type masks + if (mask.type === "group") { + return { + ...mask, + elements: mask.elements.map(el => ({ + ...el, + strokeWidth: 4, // Thicker border + strokeColor: highlightColor, // Use configured highlight color + strokeStyle: "solid", // Solid line + roughness: 0 // Smooth border + })) + }; + } + // Handle single element masks + return { + ...mask, + strokeWidth: 4, // Thicker border + strokeColor: highlightColor, // Use configured highlight color + strokeStyle: "solid", // Solid line + roughness: 0 // Smooth border + }; + } + return mask; + }); + + // Generate question image with all masks visible + const questionDataURL = await generateMaskedImage(questionMasks, []); + const questionPath = `${imageFolder}/q-${fileTimestamp}.png`; + await app.vault.adapter.writeBinary( + questionPath, + base64ToBinary(questionDataURL) + ); + + // Generate answer image with one mask hidden and others visible + const dataURL = await generateMaskedImage(visibleMasks, hiddenMasks); + const imagePath = `${imageFolder}/a-${fileTimestamp}.png`; + + // Save answer image to disk + await app.vault.adapter.writeBinary( + imagePath, + base64ToBinary(dataURL) + ); + + // Create markdown file with full paths to images + const fullPaths = { + question: app.vault.adapter.getFullPath(questionPath), + answer: app.vault.adapter.getFullPath(imagePath) + }; + // Generate card file from template with all necessary information + await createMarkdownFromTemplate( + templateFile, + fileTimestamp, + fullPaths, + sourceFile + ); + } +} else { + // Process Hide One, Guess One mode + const templates = getTemplates(); + if (!templates) return; + + // Get template file based on settings or user selection + const templateFile = await getTemplateFile(templates); + if (!templateFile) return; + + // Generate common answer image first (all masks hidden) + const commonAnswerTimestamp = getCurrentTimestamp(); + const commonAnswerDataURL = await generateMaskedImage([], masks); + const commonAnswerPath = `${imageFolder}/a-${commonAnswerTimestamp}.png`; + await app.vault.adapter.writeBinary( + commonAnswerPath, + base64ToBinary(commonAnswerDataURL) + ); + + // Get full path for common answer image + const commonAnswerFullPath = app.vault.adapter.getFullPath(commonAnswerPath); + + // Process each mask individually + for(const mask of masks) { + // Set current mask as visible, others as hidden for question + const visibleMasks = masks.filter(m => m !== mask); + const hiddenMasks = [mask]; + + // Generate unique timestamp for this card + const fileTimestamp = getCurrentTimestamp(); + + // Generate question image showing only the current mask + const questionDataURL = await generateMaskedImage([mask], visibleMasks); + const questionPath = `${imageFolder}/q-${fileTimestamp}.png`; + await app.vault.adapter.writeBinary( + questionPath, + base64ToBinary(questionDataURL) + ); + + // Create markdown file with paths to question and answer images + const fullPaths = { + question: app.vault.adapter.getFullPath(questionPath), + answer: commonAnswerFullPath + }; + // Generate card file using template and image paths + await createMarkdownFromTemplate( + templateFile, + fileTimestamp, + fullPaths, + sourceFile + ); + } +} + +// Display completion message with number of cards created +new Notice(`Generated ${masks.length} sets of files in ${imageFolder}/`); \ No newline at end of file diff --git a/ea-scripts/Image Occlusion.svg b/ea-scripts/Image Occlusion.svg new file mode 100644 index 0000000..c520aab --- /dev/null +++ b/ea-scripts/Image Occlusion.svg @@ -0,0 +1,20 @@ + + + + + + A + \ No newline at end of file From c91e57e341b1338f923e200fd805c85e81c83696 Mon Sep 17 00:00:00 2001 From: trillstones <32927876+TrillStones@users.noreply.github.com> Date: Sat, 7 Dec 2024 11:36:26 +0800 Subject: [PATCH 2/5] add image for Image-occlusion --- images/scripts-image-occlusion.png | Bin 0 -> 141887 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/scripts-image-occlusion.png diff --git a/images/scripts-image-occlusion.png b/images/scripts-image-occlusion.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7c844501bdd82ac2eaa52ac642db92708d42c4 GIT binary patch literal 141887 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

&CQ9wf19G&6yI!(y-nCtO7ZnTal7t# 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 l?>BPpdKQ_Cbo}j^ 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 Dr4vZO literal 0 HcmV?d00001 From 6cfb125a384fa77ebbaee58352a74c2b2629f8a1 Mon Sep 17 00:00:00 2001 From: trillstones <32927876+TrillStones@users.noreply.github.com> Date: Sat, 7 Dec 2024 11:44:27 +0800 Subject: [PATCH 3/5] Update index-new.md for image occlusion script --- ea-scripts/index-new.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ea-scripts/index-new.md b/ea-scripts/index-new.md index 259cd07..9c8c3f7 100644 --- a/ea-scripts/index-new.md +++ b/ea-scripts/index-new.md @@ -153,6 +153,8 @@ I would love to include your contribution in the script library. If you have a s | | | |----|-----| |

|[[#Crop Vintage Mask]]| +|----|-----| +|
|[[#Image Occlusion]]| --- @@ -267,6 +269,13 @@ https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea ```
Author@zsviczian
SourceFile on GitHub
DescriptionAdds a rounded mask to the image by adding a full cover black mask and a rounded rectangle white mask. The script is also useful for adding just a black mask. In this case, run the script, then delete the white mask and add your custom white mask.
+## Image Occlusion +```excalidraw-script-install +https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Image%20Occlusion.md +``` +
Author@TrillStones
SourceFile on GitHub
DescriptionAn Excalidraw script for creating Anki image occlusion cards in Obsidian, similar to Anki's Image Occlusion Enhanced add-on but integrated into your Obsidian workflow.
+ + ## Custom Zoom ```excalidraw-script-install https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Custom%20Zoom.md From c72f6add403a4d83bda2ba81db30886cf8853335 Mon Sep 17 00:00:00 2001 From: trillstones <32927876+TrillStones@users.noreply.github.com> Date: Sat, 7 Dec 2024 11:45:21 +0800 Subject: [PATCH 4/5] Update index-new.md for image occlusion script --- ea-scripts/index-new.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ea-scripts/index-new.md b/ea-scripts/index-new.md index 9c8c3f7..ae3b592 100644 --- a/ea-scripts/index-new.md +++ b/ea-scripts/index-new.md @@ -153,7 +153,6 @@ I would love to include your contribution in the script library. If you have a s | | | |----|-----| |
|[[#Crop Vintage Mask]]| -|----|-----| |
|[[#Image Occlusion]]| --- From 3e4a3ace56a9692c797016e647bff6373341cb93 Mon Sep 17 00:00:00 2001 From: trillstones <32927876+TrillStones@users.noreply.github.com> Date: Sat, 7 Dec 2024 11:54:14 +0800 Subject: [PATCH 5/5] Update index-new.md for image occlusion script --- ea-scripts/index-new.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ea-scripts/index-new.md b/ea-scripts/index-new.md index ae3b592..a1f6746 100644 --- a/ea-scripts/index-new.md +++ b/ea-scripts/index-new.md @@ -130,6 +130,7 @@ I would love to include your contribution in the script library. If you have a s |
|[[#Select Similar Elements]]| |
|[[#Slideshow]]| |
|[[#Split Ellipse]]| +|
|[[#Image Occlusion]]| ## Collaboration and Export **Keywords**: Sharing, Teamwork, Exporting, Distribution, Cooperative, Publish @@ -153,7 +154,7 @@ I would love to include your contribution in the script library. If you have a s | | | |----|-----| |
|[[#Crop Vintage Mask]]| -|
|[[#Image Occlusion]]| + --- @@ -268,11 +269,6 @@ https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea ```
Author@zsviczian
SourceFile on GitHub
DescriptionAdds a rounded mask to the image by adding a full cover black mask and a rounded rectangle white mask. The script is also useful for adding just a black mask. In this case, run the script, then delete the white mask and add your custom white mask.
-## Image Occlusion -```excalidraw-script-install -https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Image%20Occlusion.md -``` -
Author@TrillStones
SourceFile on GitHub
DescriptionAn Excalidraw script for creating Anki image occlusion cards in Obsidian, similar to Anki's Image Occlusion Enhanced add-on but integrated into your Obsidian workflow.
## Custom Zoom @@ -403,6 +399,12 @@ https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea ```
Author@zsviczian
SourceFile on GitHub
DescriptionThis script was discontinued in favor of ExcaliAI. Draw a UI and let GPT create the code for you.
+## Image Occlusion +```excalidraw-script-install +https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Image%20Occlusion.md +``` +
Author@TrillStones
SourceFile on GitHub
DescriptionAn Excalidraw script for creating Anki image occlusion cards in Obsidian, similar to Anki's Image Occlusion Enhanced add-on but integrated into your Obsidian workflow.
+ ## Invert colors ```excalidraw-script-install https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Invert%20colors.md