2016-02-13 4 views
0

Я заинтересован в создании инструмента, который можно запустить из командной строки (pref. Linux), и который будет прокручивать выбранную группу файлов (подумайте .gitignore в обратном порядке), проанализируйте эти файлы и создать изображение, которое выглядит так: Conceptboard. Это не обязательно должно выглядеть так, но я должен иметь возможность контролировать графические эффекты и компоновку элементов в штучной упаковке. Каждый элемент в коробке должен просто иметь имя файла вверху и содержимое файла ниже.Визуализация структуры и содержимого файла каталога

Мои вопросы:

  • Какие инструменты доступны для проекта такого типа?
  • Где бы я логически начал?
  • Как долго я должен ожидать, что это возьмет меня?

Редактировать: graphviz может определенно работать, но может ли он отображать содержимое файла?

ответ

0

Graphviz не может напрямую показать содержимое файла, но я часто связывал его с кодом в java или python, чтобы создать соответствующий .dot-файл, а затем запустить graphviz в этом .dot-файле для создания окончательной графики, что-то вроде это псевдокод:

open .dot text file and add graphviz header information 
for each file in directory: 
    save filename for future reference 
    read and save file contents 

    create node in .dot file formatted with filename at top and contents below 

for each file in directory: 
    parse file to locate links to other files 
    if filename has been processed above, add a link line to .dot output file 
add graphviz footer to .dot file 
run DOT on .dot file 

конечный файл .dot будет выглядеть примерно так, только гораздо больше:

digraph fileStructure { 
    node [shape=box, color=black, fontsize=14, fillcolor=white, style=filled] 
    1 [label="filename\nfile contents"] 
    2 [label="filename\nfile contents"] 
    3 [label="filename\nfile contents"] 

    1 -> 2 
    1 -> 3 
} 

Есть библиотеки для большинства основных языков программирования для упрощения процесса создания .dot файлов и запускать graphviz, но это не так сложно делать напрямую.

Сколько времени потребуется от вашего уровня мастерства, но я бы не подумал, что для этого потребуется больше нескольких часов.

Смежные вопросы