Comments (5)
maintainers' call:
let's check-in the documentation into the repo as markdown files under some documentation folder structure (i.e., docs/
). This will require edits to be reviewed in a PR. These docs should be linked to from the README.
Your suggestions of "header files, classes, public members, global functions and public methods" are all good candidates.
I'll add a skeleton structure for the docs. This is not set in stone, so feel free to make improvements if you see fit.
from gsl.
Hi @beinhaerter,
Thanks for volunteering to do this! I'll gather thoughts about Doxygen at the next maintainers' sync.
from gsl.
Hi @beinhaerter,
We would prefer to have the documentation reside in the wiki, which would use GFM. If there exists a way to incorporate Doxygen into this for ease-of-use (i.e., prevent divergence between source-code and documentation) that could potentially be useful.
from gsl.
My goal is to put a current GSL repo snapshot together with the matching docs so that both are always in sync and can be published in one step.
I like the Doxygen approach to put the documentation into the sources. That easily keeps them in sync and is very good for describing the individual functions.
I like the markdown approach because that is good for describing overviews. Doxygen understands markdown files, but simple markdown and not the Github extensions. If the Github extensions are not used (or in not so many places), then both tools could use the same files, that would allow an easy dual use.
I don't see a way to get Doxygen to output the source annotations as markdown files. I found this opensource project doing a Doxygen HTML output to markdown conversion, but the last change in the repo was 6 years ago. I doubt that this is a good way to go (but I might give it a try if I have some spare time), so maybe the Wiki GFM way is a good way to go.
One thing I already noticed: the filename gsl::span-and-std::span.md
blocks me from cloning the repo on Windows. Filenames with a colon are not valid filenames in Windows.
Currently most of the documentation is in README.md
. And the Wiki is at least not presented very prominently. I am a contributor for some time but have never come across the Wiki. And even when opening https://github.com/microsoft/GSL/wiki there seems to be no content. The reader must look at the right side and understand that there are bulletins for the Wiki content. I think it would be better to have a start page that links to the sub pages. And probably add a Wiki link to the README.md
(I know technically there is one, but that is hidden somewhere in the middle).
I you want others like me to add some content, then it would be helpful to
- give guidance what we want to document
- the header files?
- the classes (their name, their uses)?
- public class members?
- global functions and public class member functions?
- give a structure with some skeleton files that others could fill with more information
- structure by header files?
- structure by classes?
- which paragraphs in which order do we want?
- something like cppreference.com?
from gsl.
@dmitrykobets-msft Thanks. I started adding some more docs in my branch https://github.com/beinhaerter/GSL/tree/add_docs.
Feel free to look at it in advance and to comment.
I see you made one headers.md file. I'll fill it over time, but I believe it will get too big so that it would be better to have some more files. But we can wait and see how it evolves.
from gsl.
Related Issues (20)
- Conversion from span<dynamic_extent> to span<N> failes HOT 1
- gsl::narrow and NaN
- compilation errors around string_span HOT 2
- Wrong Expects in gsl::at? HOT 5
- About release 4.0.0 HOT 2
- [cmake] GSL.natvis issues HOT 3
- ❓ Please take the GSL GitHub survey HOT 1
- Question: How to print a gsl::byte? HOT 2
- How to use the smartpointer overloads inside `<span_ext>`? HOT 1
- Purpose of `<span_ext>`
- gsl::not_null at compile time HOT 13
- Provide a "safe" and "simple" way for binary I/O HOT 2
- Type mismatch in span::operator[] HOT 4
- gsl.pc and gsl/gsl_rng.h files not found HOT 2
- CMake Error at CMakeLists.txt:14 (find_package): Could not find a package configuration file provided by "Microsoft.GSL" HOT 2
- Missing `swap` for `gsl::not_null` for move-only types HOT 4
- `GSL_SUPPRESS(y)` expands to `[[gsl::suppress("x")]]` for clang HOT 5
- Can not build with gcc13 because suggestion warning HOT 3
- gsl::not_null and std::variant are not fully compatible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gsl.