#encoding koi8-r #extends phd_site #implements respond #attr $Title = "XML Virtual FileSystem for Midnight Commander" #attr $Copyright = 2013 ## #def body_rst XML VFS для Midnight Commander ============================== .. class:: head Драйвер внешней файловой системы, показывающий в Midnight Commander содержание файла XML в виде файловой системы. .. class:: head `Скачать`_ git clone https://git.phdru.name/extfs.d.git git clone git://git.phdru.name/extfs.d.git .. _`Скачать`: ../../../Software/mc/xml .. class:: head Требуется Midnight Commander 3.1+ (http://www.midnight-commander.org/), Python 2.4+ (http://www.python.org/). `Инструкции по установке (eng.)`_ .. _`Инструкции по установке (eng.)`: ../../../Software/mc/INSTALL.html .. class:: head XML VFS показывает теги как директории; директории пронумерованы, чтобы отличать теги с одинаковыми именами; кроме того, нумерация позволяет сохранять порядок тегов вместо сортировки их по имени. Атрибуты, текстовое содержание и комментарии показываются как файлы; атрибуты показываются в файле "attributes" в виде пар имя=значение; имена и значения перекодируются в кодировку локали. Текстовое содержание и комментарии показываются в файле "text"; начальные и концевые пробелы убираются, текст перекодируется. Файловая система только для чтения. Дата/время всех директорий и файлов устанавливается по времени последнего изменения самого файла XML. Реализация на основе minidom не понимает пространств имён; пространства имён показываются среди прочих атрибутов. Реализация на основе ElementTree не показывает пространств имён вообще. Реализация на основе lxml.etree показывает пространства имён в отдельном файле "namespaces". VFS позволяет просматривать структуру XML, но особенно удобно извлекать текстовые значения атрибутов. Скажем, надо пользователю извлечь изображение, закодированное base64 - пользователь бежит по директориям до нужного тега и копирует его файл text в настоящий файл. Идея XML VFS навеяна FUSE xmlfs: https://github.com/halhen/xmlfs .. class:: head Copyright (C) 2013-2015 PhiloSoft Design Лицензия: GPL #end def $phd_site.respond(self)