stagit.1 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. .Dd August 2, 2021
  2. .Dt STAGIT 1
  3. .Os
  4. .Sh NAME
  5. .Nm stagit
  6. .Nd static git page generator
  7. .Sh SYNOPSIS
  8. .Nm
  9. .Op Fl c Ar cachefile
  10. .Op Fl l Ar commits
  11. .Op Fl u Ar baseurl
  12. .Ar repodir
  13. .Sh DESCRIPTION
  14. .Nm
  15. writes HTML pages for the repository
  16. .Ar repodir
  17. to the current directory.
  18. .Pp
  19. The options are as follows:
  20. .Bl -tag -width Ds
  21. .It Fl c Ar cachefile
  22. Cache the entries of the log page up to the point of
  23. the last commit.
  24. The
  25. .Ar cachefile
  26. will store the last commit id and the entries in the HTML table.
  27. It is up to the user to make sure the state of the
  28. .Ar cachefile
  29. is in sync with the history of the repository.
  30. .It Fl l Ar commits
  31. Write a maximum number of
  32. .Ar commits
  33. to the log.html file only.
  34. However the commit files are written as usual.
  35. .It Fl u Ar baseurl
  36. Base URL to make links in the Atom feeds absolute.
  37. For example: "https://git.codemadness.org/stagit/".
  38. .El
  39. .Pp
  40. The options
  41. .Fl c
  42. and
  43. .Fl l
  44. cannot be used at the same time.
  45. .Pp
  46. The following files will be written:
  47. .Bl -tag -width Ds
  48. .It atom.xml
  49. Atom XML feed of the last 100 commits.
  50. .It tags.xml
  51. Atom XML feed of the tags.
  52. .It files.html
  53. List of files in the latest tree, linking to the file.
  54. .It log.html
  55. List of commits in reverse chronological applied commit order, each commit
  56. links to a page with a diffstat and diff of the commit.
  57. .It refs.html
  58. Lists references of the repository such as branches and tags.
  59. .El
  60. .Pp
  61. For each entry in HEAD a file will be written in the format:
  62. file/filepath.html.
  63. This file will contain the textual data of the file prefixed by line numbers.
  64. The file will have the string "Binary file" if the data is considered to be
  65. non-textual.
  66. .Pp
  67. For each commit a file will be written in the format:
  68. commit/commitid.html.
  69. This file will contain the diffstat and diff of the commit.
  70. It will write the string "Binary files differ" if the data is considered to
  71. be non-textual.
  72. Too large diffs will be suppressed and a string
  73. "Diff is too large, output suppressed" will be written.
  74. .Pp
  75. When a commit HTML file exists it won't be overwritten again, note that if
  76. you've changed
  77. .Nm
  78. or changed one of the metadata files of the repository it is recommended to
  79. recreate all the output files because it will contain old data.
  80. To do this remove the output directory and
  81. .Ar cachefile ,
  82. then recreate the files.
  83. .Pp
  84. The basename of the directory is used as the repository name.
  85. The suffix ".git" is removed from the basename, this suffix is commonly used
  86. for "bare" repos.
  87. .Pp
  88. The content of the follow files specifies the metadata for each repository:
  89. .Bl -tag -width Ds
  90. .It .git/description or description (bare repo).
  91. description
  92. .It .git/owner or owner (bare repo).
  93. owner of repository
  94. .It .git/url or url (bare repo).
  95. primary clone URL of the repository, for example:
  96. git://git.codemadness.org/stagit
  97. .El
  98. .Pp
  99. When a README or LICENSE file exists in HEAD or a .gitmodules submodules file
  100. exists in HEAD a direct link in the menu is made.
  101. .Pp
  102. For changing the style of the page you can use the following files:
  103. .Bl -tag -width Ds
  104. .It favicon.png
  105. favicon image.
  106. .It logo.png
  107. 50x50 logo.
  108. .It style.css
  109. CSS stylesheet.
  110. .El
  111. .Sh EXIT STATUS
  112. .Ex -std
  113. .Sh EXAMPLES
  114. .Bd -literal
  115. mkdir -p htmlroot/htmlrepo1 && cd htmlroot/htmlrepo1
  116. stagit path/to/gitrepo1
  117. # repeat for other repositories.
  118. .Ed
  119. .Pp
  120. To update the HTML files when the repository is changed a git post-receive hook
  121. can be used, see the file example_post-receive.sh for an example.
  122. .Sh SEE ALSO
  123. .Xr stagit-index 1
  124. .Sh AUTHORS
  125. .An Hiltjo Posthuma Aq Mt hiltjo@codemadness.org