| const { getRoot } = require('../utils'); | 
|   | 
| /** | 
|  * @return {Function} PostHTML plugin | 
|  */ | 
| function extractNamespacesToRoot() { | 
|   return (tree) => { | 
|     const namespaces = {}; | 
|   | 
|     tree.match({ tag: /.*/ }, (node) => { | 
|       const attrs = node.attrs || {}; | 
|   | 
|       Object.keys(attrs).forEach((attr) => { | 
|         if (attr.startsWith('xmlns')) { | 
|           if (attr in namespaces === false) { | 
|             namespaces[attr] = attrs[attr]; | 
|           } | 
|   | 
|           delete node.attrs[attr]; | 
|         } | 
|       }); | 
|   | 
|       return node; | 
|     }); | 
|   | 
|     const root = getRoot(tree); | 
|     root.attrs = root.attrs || {}; | 
|   | 
|     Object.keys(namespaces).forEach(name => root.attrs[name] = namespaces[name]); | 
|   | 
|     return tree; | 
|   }; | 
| } | 
|   | 
| module.exports = extractNamespacesToRoot; |