Подтвердить что ты не робот

Есть ли способ представить дерево каталогов в Github README.md?

В моей документации репозитория Githubs я хочу представить структуру дерева каталогов следующим образом:

enter image description here

Есть ли способ сделать это с приправой Github, помимо создания его с помощью искусства ascii?

В основном, как этот вопрос, но мне интересно, существует ли конкретное решение github.

4b9b3361

Ответ 1

Не прямо, нет. Вам придется вручную создать его и поместить в себя. Предполагая, что вы используете поле * nix локально и используете utf, tree будет генерировать его красиво (я считаю, что это то, что сгенерировало пример вы использовали выше).

Предполагая, что вы имеете в виду readme.md в качестве цели документации, тогда я думаю, что единственный способ, которым вы могли бы автоматизировать его, - это git pre-commit hook, который запускал tree и вставлял его в ваш файл readme. Вы хотите сделать diff, чтобы убедиться, что вы только обновили readme, если результат изменился.

Otoh, если вы поддерживаете отдельные документы через страницы github, то что вы можете сделать, переключается на использование jekyll (или другого генератора) локально и нажимает статические страницы самостоятельно. Затем вы можете реализовать изменения, которые вы хотите, либо в виде изменений плагина/оболочки script */manual (если они не будут сильно отличаться), либо использовать тот же метод, что и выше.

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

Ответ 2

Я получил решение проблемы следующим образом:

  1. Вставьте tree команд в bash.

    пример

    enter image description here

  2. Создайте README.md в репозитории github и скопируйте страницу bash

  3. Вставить код уценки

    пример

    enter image description here

  4. Смотрите результат и будьте счастливы =)

    enter image description here

Ответ 3

Я написал небольшой script, который делает трюк:

#!/bin/bash

#File: tree-md

tree=$(tree -tf --noreport -I '*~' --charset ascii $1 |
       sed -e 's/| \+/  /g' -e 's/[|`]-\+/ */g' -e 's:\(* \)\(\(.*/\)\([^/]\+\)\):\1[\4](\2):g')

printf "# Project tree\n\n${tree}"

Пример:

Команда исходного дерева:

$ tree
.
├── dir1
│   ├── file11.ext
│   └── file12.ext
├── dir2
│   ├── file21.ext
│   ├── file22.ext
│   └── file23.ext
├── dir3
├── file_in_root.ext
└── README.md

3 directories, 7 files

Команда дерева Markdown:

$ ./tree-md .
# Project tree

.
 * [tree-md](./tree-md)
 * [dir2](./dir2)
   * [file21.ext](./dir2/file21.ext)
   * [file22.ext](./dir2/file22.ext)
   * [file23.ext](./dir2/file23.ext)
 * [dir1](./dir1)
   * [file11.ext](./dir1/file11.ext)
   * [file12.ext](./dir1/file12.ext)
 * [file_in_root.ext](./file_in_root.ext)
 * [README.md](./README.md)
 * [dir3](./dir3)

Результат:

(Ссылки не видны в Stackoverflow...)

Дерево проектов
  • дерево-мД
  • dir2
    • file21.ext
    • file22.ext
    • file23.ext
  • dir1
    • file11.ext
    • file12.ext
  • file_in_root.ext
  • README.md
  • dir3

Ответ 4

Я создал модуль узла для автоматизации этой задачи: mddir

использование

узел mddir "../relative/path/"

Для установки: npm install mddir -g

Чтобы создать уценку для текущего каталога: mddir

Генерировать для любого абсолютного пути: mddir/absolute/path

Сгенерировать для относительного пути: mddir ~/Documents/whatever.

Файл md создается в вашем рабочем каталоге.

В настоящее время игнорирует узлы node_modules и.git.

Поиск проблемы

Если вы получаете сообщение об ошибке "node\r: Нет такого файла или каталога", проблема в том, что ваша операционная система использует разные окончания строк, и mddir не может их разобрать, без явной установки стиля окончания строки в Unix. Это обычно затрагивает Windows, но также некоторые версии Linux. Настройка конца строки в стиле Unix должна выполняться в глобальной папке bin mddir npm.

Исправление строк

Получить путь к папке npm bin с помощью:

npm config get prefix

Cd в эту папку

варить установку dos2unix

dos2unix lib/node_modules/mddir/src/mddir.js

Это преобразует окончание строк в Unix вместо Dos

Затем выполните как обычно: node mddir "../relative/path/".

Пример сгенерированной файловой структуры markdown 'directoryList.md'

    |-- .bowerrc
    |-- .jshintrc
    |-- .jshintrc2
    |-- Gruntfile.js
    |-- README.md
    |-- bower.json
    |-- karma.conf.js
    |-- package.json
    |-- app
        |-- app.js
        |-- db.js
        |-- directoryList.md
        |-- index.html
        |-- mddir.js
        |-- routing.js
        |-- server.js
        |-- _api
            |-- api.groups.js
            |-- api.posts.js
            |-- api.users.js
            |-- api.widgets.js
        |-- _components
            |-- directives
                |-- directives.module.js
                |-- vendor
                    |-- directive.draganddrop.js
            |-- helpers
                |-- helpers.module.js
                |-- proprietary
                    |-- factory.actionDispatcher.js
            |-- services
                |-- services.cardTemplates.js
                |-- services.cards.js
                |-- services.groups.js
                |-- services.posts.js
                |-- services.users.js
                |-- services.widgets.js
        |-- _mocks
            |-- mocks.groups.js
            |-- mocks.posts.js
            |-- mocks.users.js
            |-- mocks.widgets.js

Ответ 5

Лучший способ сделать это - окружить ваше дерево в тройных обратных тактах, чтобы обозначить блок кода. Дополнительные сведения см. В документах по уценке: http://daringfireball.net/projects/markdown/syntax#code

Ответ 6

Вы можете использовать <pre> как я сделал в одном из проектов.

Ответ 7

Вы также можете проверить этот расширенный пакет. Его можно использовать в качестве приложения командной строки, используя node> = 6.x.

Он очень похож на tree но также имеет возможность настроить максимальную глубину в дереве, что является одной из ужасных вещей. Также вы можете фильтровать файл .gitignore.

enter image description here

Ответ 8

Если вы используете редактор Atom, вы можете использовать этот пакет, чтобы легко писать деревья ASCII: ascii-tree

Ответ 9

Простая команда tree сделает работу. Например: tree -o readme.md напечатает древовидную структуру вашего текущего рабочего каталога и запишет ее в readme.md. Затем откройте файл readme.md в одном из текстовых редакторов, таких как Sublime, и оберните его содержимое парой тройных обратных галочек ('' ').

К вашему сведению: вам, возможно, придется варить дерево установки в OSX, если оно еще не установлено. В Linux и Windows все должно работать нормально. Также в Windows вам, возможно, придется заменить дефис на косую черту.

Надеюсь, это поможет.

Ответ 10

Ни одно из описанных выше решений не работает для меня полностью на моем Mac.

Лучшее решение, которое я нашел, это использовать созданную здесь утилиту.

https://github.com/michalbe/md-file-tree

После того, как вы установили утилиту npm install md-file-tree -g вы можете просто запустить, чтобы получить дерево всех файлов

md-file-tree . > README.md

Ответ 11

Я просто хотел бы сгенерировать его с помощью UTF-8 и связать его со всеми файлами и папками, чтобы перемещаться очень легко. Пожалуйста, взгляните на пример здесь.