项目作者: uribench

项目描述 :
References and practical information on Software Engineering
高级语言: Shell
项目地址: git://github.com/uribench/software-engineering-handbook.git
创建时间: 2018-05-13T07:04:54Z
项目社区:https://github.com/uribench/software-engineering-handbook

开源协议:The Unlicense

下载


Software Engineering Handbook

The contents of this repository is used to dynamically build the Software Engineering Handbook
site.

The main two data elements in this repository are:

  • Authored content that is accessible to the end user from the handbook navigation tree
  • Configuration data files to construct the handbook navigation tree

Contributors are invited to propose additions and improvements to any of these
two elements following the contributing guidelines.

Structure of the Repository

Main Directories

  1. software-engineering-handbook/
  2. ├──config/ main directory for the configuration files
  3. ├──Guides/ root of the authored contents for guides
  4. ├──Topics/ root of the authored contents for topics
  5. └──Handbook/ handbook navigation tree. created automatically

All the authored content is placed under the Guides and Topics directories.
All the configuration files are placed under the config directory.
The resulting handbook navigation tree, which is created dynamically using the authored content and
configuration files, is placed under the Handbook directory.

On the differences between the contents of Guides and Topics see their respective README files.

Comprehensive Structure

  1. software-engineering-handbook/
  2. ├──about/ directory for contribution instructions
  3. ├──config/ main directory for the configuration files
  4. | ├──metadata/ metadata for the template file of navigation index.md files
  5. | | ├──<metadata-configuration-yml-files> metadata files with optional contents expected by the template
  6. | | └──README.md metadata files description for contributors
  7. | ├──navigation/ main navigation configuration folder for the handbook tree
  8. | | ├──<navigation-configuration-yml-files> handbook tree navigation configuration files starting from root.yml
  9. | | └──README.md navigation configuration file description for contributors
  10. | └──templates/ main folder for templates
  11. | └──index-template.j2 Jinja2 template file for navigation index.md files
  12. ├──Guides/ root of the authored contents for guides
  13. | ├──<guides-subjects>/ one or more folders for grouping subjects of related guides
  14. | | └──<guides-markdown-files> markdown files related to the parent guide subject
  15. | ├──index.md "Internal Folder" message when rendered by GitHub Pages
  16. | └──README.md policy and conventions for use on GitHub repository
  17. ├──Handbook/ handbook navigation tree. created automatically
  18. | ├──<first-level-handbook-subject>/ zero or more children folders for the hosting folder
  19. | | ├──<second-level-handbook-subjects>/ zero or more children folders for the hosting folder
  20. | | └──index.md current level index file with next level navigation links
  21. | └──index.md root level index file with next level navigation links
  22. ├──images/ common media resources folder
  23. ├──Topics/ root of the authored contents for topics
  24. | ├──<topics-subjects>/ one or more folders for grouping subjects of related topics
  25. | | └──<topic-subject-index-markdown-file> main index.md file for the parent topic subject
  26. | | └──<guides-markdown-files> sub-topics markdown files for the parent topic subject
  27. | ├──index.md "Internal Folder" message when rendered by GitHub Pages
  28. | └──README.md policy and conventions for use on GitHub repository
  29. ├──.madness.yml default options and arguments for madness
  30. ├──_config.yml Jekyll configuration
  31. ├──CNAME canonical name record for the domain to be used by GitHub Pages
  32. ├──index.md gets priority over README.md on GitHub Pages
  33. └──README.md this README file for contributors

Key Concepts and Principles

The Handbook directory hierarchy represents an instance of a handbook, which is created
automatically based on the *.yml configuration files in config/navigation directory. The starting
point for the navigation tree configuration is the root.yml file.

See the config/navigation README file for more information on the structure of the navigation
configuration files.

The idea is to isolate the actual content of the handbook, given under Guides and Topics
directories, from the navigation experience. This makes a robust and easily maintained repository,
which supports relatively easy changes to the handbook structure and the navigation experiences.

The Handbook tree hierarchy includes directories and index.md files. All the directories under
the Handbook directory have capitalized names with spaces (‘Humanized’ style), which represent
the exact names of the Software Engineering Handbook chapters and sections.

All the directories of the Handbook tree have each an index.md file that is generated automatically
when the Handbook tree is built. The index.md files include, among other optional parts, a
contents list pointing to the children directories of the hosting directory (i.e., next level of the
Handbook tree hierarchy). They also include optional references to guides and topics that are
relevant to the handbook subject represented by the hosting directory.

See the config/metadata README file for more information on the structure of the navigation
index.md files and on how they are composed automatically using metadata and Jinja2 template.

The entire content of the Handbook directory (i.e., directory hierarchy and all the index.md files)
is automatically generated and maintained by the automation scripts in the tools repository,
based on the configuration files under the config directory.

Note on the use of README.md and index.md files

README.md files are intended for contributors, while index.md files are intended for the
end users visiting the Software Engineering Handbook site.

GitHub repository renders the README.md files by default. However, the index.md files get
priority by GitHub Pages over neighboring README.md files.