// Additional highlight.js utilities (auto-init is handled by bundle)
window.highlightCode = function() {
  // Find all code blocks that haven't been highlighted yet
  document.querySelectorAll('pre code:not(.hljs)').forEach(function(block) {
    if (typeof hljs !== 'undefined' && hljs.highlightElement) {
      hljs.highlightElement(block);
    }
  });
};

window.highlightContainer = function(containerSelector) {
  // Highlight code blocks within a specific container
  const container = document.querySelector(containerSelector);
  if (container && typeof hljs !== 'undefined') {
    container.querySelectorAll('pre code:not(.hljs)').forEach(function(block) {
      hljs.highlightElement(block);
    });
  }
};

// Re-highlight when content changes (for dynamic content)
document.addEventListener('DOMContentLoaded', function() {
  const observer = new MutationObserver(function(mutations) {
    let shouldHighlight = false;
    mutations.forEach(function(mutation) {
      if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
        // Check if any added nodes contain code blocks
        mutation.addedNodes.forEach(function(node) {
          if (node.nodeType === 1 && (node.tagName === 'PRE' || node.querySelector('pre'))) {
            shouldHighlight = true;
          }
        });
      }
    });

    if (shouldHighlight) {
      setTimeout(function() {
        window.highlightCode();
      }, 100);
    }
  });

  // Start observing document changes
  observer.observe(document.body, {
    childList: true,
    subtree: true
  });
});
