Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeaye/stdman
Formatted C++20 stdlib man pages (cppreference)
https://github.com/jeaye/stdman
Last synced: about 8 hours ago
JSON representation
Formatted C++20 stdlib man pages (cppreference)
- Host: GitHub
- URL: https://github.com/jeaye/stdman
- Owner: jeaye
- License: mit
- Created: 2014-04-07T05:58:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-07-06T04:03:44.000Z (4 months ago)
- Last Synced: 2024-11-06T14:27:17.169Z (7 days ago)
- Language: C++
- Homepage:
- Size: 19.7 MB
- Stars: 940
- Watchers: 39
- Forks: 51
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
C++ stdlib man pages
======
stdman is a tool that parses archived HTML files from [cppreference](http://cppreference.com) and generates groff-formatted manual pages for Unix-based systems. The goal is to provide excellent formatting for easy readability. stdman has been tested on Linux and OS X.![Sample](res/sample.gif)
### Installation
There's no need to compile stdman if you just want to install the man pages. Instead, just run:
```bash
./configure
make install # as a user with appropriate permissions to install
```
If you need to pass options to configure, you can do so. See `./configure --help` for more updated information.### Troubleshooting
If you're getting 'no manual entry for std::foo' or you're seeing the libstdc++ man pages (characterized by a huge list of typedefs when you run `man std::string`), see the following. By default, stdman will install to `/usr/local`; on some systems, the manpath does not look there first. To fix this, you have two options:
* Install to `/usr/share`:
```bash
./configure --prefix=/usr # will replace existing libstdc++ pages
make install
```
* Manage your `MANPATH` in your `~/.bashrc` (or similar):
```bash
export MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/man
```#### If your output is not colorized
You either need to set your pager up to colorize man pages, or you need to install a pager to do this for you. `less` will not do this by default, but it's easy enough to add. `most` will do this by default, but it doesn't ship with vim-like navigation.**To configure less:**
```bash
# Colors
default=$(tput sgr0)
red=$(tput setaf 1)
green=$(tput setaf 2)
purple=$(tput setaf 5)
orange=$(tput setaf 9)# Less colors for man pages
export PAGER=less
# Begin blinking
export LESS_TERMCAP_mb=$red
# Begin bold
export LESS_TERMCAP_md=$orange
# End mode
export LESS_TERMCAP_me=$default
# End standout-mode
export LESS_TERMCAP_se=$default
# Begin standout-mode - info box
export LESS_TERMCAP_so=$purple
# End underline
export LESS_TERMCAP_ue=$default
# Begin underline
export LESS_TERMCAP_us=$green
```**To install most:**
Arch: `pacman -S most`
Ubuntu: `apt-get install most`
```bash
export MANPAGER=most # in ~/.bashrc or similar
```### Building/Generating
Should you want to build the source to make modifications and/or generate your own man pages, simply:
```bash
make generate # will build stdman and generate man pages
```
**NOTE**: `make generate` expects sources will be in the `./reference/en/cpp` directory by default. See `./configure --help` to modify this.### Compilation/Generation Dependencies
* C++11 (recommended GCC 4.9 or clang 3.4 or greater)
* elinks (recommended 0.12pre6 or greater)
* gzip (recommended 1.3.12 or greater)**NOTE**: Generation not tested on Windows/cygwin.