jQuery(document).ready(function($) { // Variables to store parsed data let parsedData = null; let yamlFields = []; // Parse Markdown URL $('#parse-markdown-url').on('click', function() { const url = $('#markdown-url').val(); if (!url) { showMessage('error', markdownParserWp.i18n.parseError + ': ' + 'URL ist leer'); return; } // Show loading message showMessage('info', markdownParserWp.i18n.loading); // Send AJAX request $.ajax({ url: markdownParserWp.ajaxUrl, type: 'POST', data: { action: 'parse_markdown_url', nonce: markdownParserWp.nonce, url: url }, success: function(response) { if (response.success) { // Hide message hideMessage(); // Store parsed data parsedData = response.data; // Display JSON and Markdown content $('#json-content').text(parsedData.json); $('#markdown-content').text(parsedData.markdown); // Show results and create post sections $('#markdown-parser-wp-results').show(); $('#markdown-parser-wp-create-post').show(); // Extract YAML fields for field mapping extractYamlFields(parsedData.metadata); populateYamlFieldSelects(); // Set default field mappings setDefaultFieldMappings(); // Update field previews updateAllFieldPreviews(); } else { showMessage('error', markdownParserWp.i18n.parseError + ': ' + response.data.message); } }, error: function() { showMessage('error', markdownParserWp.i18n.parseError); } }); }); // Extract YAML fields recursively function extractYamlFields(obj, prefix = '') { for (const key in obj) { if (obj.hasOwnProperty(key)) { const value = obj[key]; const fieldPath = prefix ? prefix + '.' + key : key; if (typeof value === 'object' && value !== null && !Array.isArray(value)) { // Recurse into nested objects extractYamlFields(value, fieldPath); } else { // Add field path to list yamlFields.push(fieldPath); } } } } // Populate YAML field selects function populateYamlFieldSelects() { $('.yaml-field-select').each(function() { const select = $(this); select.empty(); // Add empty option select.append($('