Skip to content

Commit 84d9b13

Browse files
committed
Update README.md - Version 0.3.0
1 parent 144857b commit 84d9b13

File tree

1 file changed

+105
-47
lines changed

1 file changed

+105
-47
lines changed

README.md

Lines changed: 105 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,34 @@
88

99
*A minimal but complete Make-based C++23 project template.*
1010

11-
This project packages a simple C++23 command-line program, including essential
12-
tools and workflows for building, testing, and maintaining the code. The
13-
program prints the current date in the `YY/MM/DD = Www` format (e.g., `25/05/14
14-
= Wed`).
11+
This project packages a simple C++23 command-line program with essential tools
12+
and workflows for building, testing, and maintaining the code. The program
13+
prints the current date in the `YY/MM/DD = Www` format (e.g. `25/05/14 = Wed`).
1514

1615
Project website:
1716
[**aafulei.github.io/cpp-today**](https://aafulei.github.io/cpp-today).
1817

18+
- [Features](#features)
19+
- [Supported Platforms](#supported-platforms)
20+
- [Getting Started](#getting-started)
21+
- [Project Structure](#project-structure)
22+
- [Project Website](#project-website)
23+
- [Author](#author)
24+
- [License](#license)
25+
- [Version](#version)
26+
- [Changelog](#changelog)
27+
1928
## Features
2029

2130
- Minimal, complete C++23 project template
22-
- Simple and reliable Make-based build system
31+
- All-in-one Make-based build system
2332
- Test scripts for manual and automated testing
2433
- Code formatting support with Clang Format
2534
- Editor tooling support via Clangd
2635
- Built-in CI/CD workflows using GitHub Actions
27-
- Project documentation website generated with MkDocs
36+
- Project documentation website built with MkDocs
37+
- Source code documentation generated with Doxygen
38+
- Software documentation in GNU-style man page
2839

2940
## Supported Platforms
3041

@@ -35,14 +46,15 @@ Project website:
3546

3647
### Download
3748

38-
Download pre-built binaries from the
39-
[Release](https://github.com/aafulei/cpp-today/releases)
40-
page (or build from source as shown below).
49+
Download pre-built binaries and the accompanying man page from the
50+
[Release](https://github.com/aafulei/cpp-today/releases) page.
51+
52+
Alternatively, you can build the program from source as shown below.
4153

4254
### Build
4355

44-
Clone the [GitHub repository](https://github.com/aafulei/cpp-today). Use `make`
45-
to build the program:
56+
Clone the [GitHub repository](https://github.com/aafulei/cpp-today). Then use
57+
`make` to build the program:
4658

4759
```shell
4860
make
@@ -51,61 +63,107 @@ make
5163
### Run
5264

5365
- If you downloaded the binary from the
54-
[Release](https://github.com/aafulei/cpp-today/releases)
55-
page, follow the instructions there.
66+
[Release](https://github.com/aafulei/cpp-today/releases) page, follow the
67+
instructions there.
5668

57-
- If you built it yourself using `make`, run the executable located at:
69+
- If you built the program yourself using `make`, you can run it with:
70+
71+
```shell
72+
make run
73+
```
74+
75+
Alternatively, to run manually:
76+
77+
```shell
78+
./bin/release/today
79+
```
80+
81+
You should see the current date printed out in the `YY/MM/DD = Www` format, for
82+
example:
5883

59-
```shell
60-
./bin/release/today
6184
```
85+
25/05/14 = Wed
86+
```
87+
88+
### Install
6289
63-
Alternatively, you can build and run the program in one step:
90+
To install the program, run:
6491
6592
```shell
66-
make run
93+
make install
6794
```
6895

69-
### Result
96+
The `man` page will be installed alongside the program. You might need `sudo`
97+
privileges. Run `make help` for customization options. To install the
98+
binary and the man page manually, copy them to their default destinations or to
99+
directories of your choice:
70100

71-
You should see the current date printed out in the `YY/MM/DD = Www` format, e.g.
101+
| Source | Default Destination |
102+
| --------------------- | ---------------------------- |
103+
| `./bin/release/today` | `/usr/local/bin/` |
104+
| `./docs/man/today.1` | `/usr/local/share/man/man3/` |
72105

73-
```
74-
25/05/14 = Wed
106+
To uninstall the program and the man page, run:
107+
108+
```shell
109+
make uninstall
75110
```
76111

77-
## Build System
112+
### Ask for Help
78113

79-
This project features a simple and reliable Make-based build system that allows
80-
you to use `make` to build, run, and test the program.
114+
As is typical with command-line programs, run:
81115

82116
```shell
83-
make # Build release version
84-
make debug # Build debug version
85-
make run # Build and run release version
86-
make run-debug # Build and run debug version
87-
make test # Build and test release version
88-
make test-debug # Build and test debug version
89-
make clean # Remove build files
117+
today --help
90118
```
91119

92-
To list all targets and options, run `make help`.
120+
for help. If the man page has been installed, you can run:
121+
122+
```shell
123+
man today
124+
```
125+
126+
to view the manual page for more information.
127+
128+
*For detailed user guides, please visit the project website
129+
[**aafulei.github.io/cpp-today**](https://aafulei.github.io/cpp-today).*
93130

94131
## Project Structure
95132

96-
- [`.github/workflows/`](./.github/workflows/) – GitHub Actions workflows
97-
- [`docs/`](./docs/) – documentation files for MkDocs and Doxygen
98-
- [`src/`](./src/) – source code
99-
- [`tests/`](./tests/) – test scripts
100-
- [`.clang-format`](./.clang-format) – Clang Format configuration
101-
- [`.gitignore`](./.gitignore) – Git ignore patterns
102-
- [`Doxyfile`](./Doxyfile) – Doxygen configuration file
103-
- [`DoxygenLayout.xml`](./DoxygenLayout.xml) – Doxygen website layout
104-
- [`LICENSE`](./LICENSE) – software license
105-
- [`Makefile`](./Makefile) – Make build script
106-
- [`README.md`](./README.md) – repository documentation (this file)
107-
- [`compile_flags.txt`](./compile_flags.txt) – Clangd compile options
108-
- [`mkdocs.yml`](./mkdocs.yml) – MkDocs project website configuration
133+
- [`.github/workflows/`](./.github/workflows/) — GitHub Actions workflows
134+
- [`docs/`](./docs/) — project documentation files and assets
135+
- [`css/`](./docs/css/) — custom CSS files for MkDocs and Doxygen
136+
- [`img/`](./docs/img/) — image files
137+
- [`man/`](./docs/man/) - man page files
138+
- [`mermaid/`](./docs/mermaid/) - source files for Mermaid diagrams
139+
- `.md` files - source files for MkDocs to generate the project website
140+
- [`src/`](./src/) — source code
141+
- [`tests/`](./tests/) — test scripts
142+
- [`.clang-format`](./.clang-format) — Clang Format configuration
143+
- [`.gitignore`](./.gitignore) — Git ignore patterns
144+
- [`CHANGELOG.md`](./CHANGELOG.md) — changelog
145+
- [`Doxyfile`](./Doxyfile) — Doxygen configuration file
146+
- [`DoxygenLayout.xml`](./DoxygenLayout.xml) — Doxygen website layout
147+
- [`LICENSE`](./LICENSE) — license file
148+
- [`Makefile`](./Makefile) — Make build script
149+
- [`README.md`](./README.md) — repository documentation (this file)
150+
- [`VERSION`](./VERSION) - version file
151+
- [`compile_flags.txt`](./compile_flags.txt) — Clangd compile options
152+
- [`mkdocs.yml`](./mkdocs.yml) — MkDocs project website configuration
153+
154+
## Project Website
155+
156+
![](./docs/img/project.png)
157+
158+
As illustrated in the above diagram, information about this project is presented
159+
to users and developers in three distinct locations, each serving a specific
160+
purpose:
161+
162+
| Location | Provides |
163+
| ------------------------------------------------------------------------- | ------------------------------------- |
164+
| [GitHub repository](https://github.com/aafulei/cpp-today) | source code and project configuration |
165+
| [MkDocs website](https://aafulei.github.io/cpp-today) | detailed users guides |
166+
| [Doxygen documentation](https://aafulei.github.io/cpp-today/doxygen/html) | detailed code reference |
109167

110168
## Author
111169

@@ -117,7 +175,7 @@ MIT
117175

118176
## Version
119177

120-
0.2.0
178+
0.3.0
121179

122180
## Changelog
123181

0 commit comments

Comments
 (0)