Skip to content

Commit

Permalink
Release 1.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hdoc committed Jul 2, 2021
1 parent 70c2603 commit 0f9f7cb
Show file tree
Hide file tree
Showing 114 changed files with 33,092 additions and 136 deletions.
6 changes: 2 additions & 4 deletions .hdoc.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "hdoc"
version = "1.1.0"
version = "1.2.0"
git_repo_url = "https://github.com/hdoc/hdoc/blob/master/"

[paths]
Expand All @@ -13,10 +13,8 @@ use_system_includes = true

[ignore]
paths = [
"/third_party/",
"/tests/",
"/subprojects/",
"/index-tests/",
"/unit-tests/",
]

[pages]
Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ cd ../tests
```
hdoc
├── assets # Static HTML/CSS/Favicons used in the generated HTML docs
├── index-tests # Unit tests of hdoc's indexing functionality
├── site # Source code for hdoc.io and hdoc's documentation
├── src # C++ source code
│   ├── frontend # Parses configuration file and CLI arguments
Expand All @@ -72,8 +71,10 @@ hdoc
│   ├── support # Ancillary code used to parallelize indexing
│   └── types # Types used by hdoc
├── subprojects # Vendored dependencies
├── tests # Integration testing scripts
└── unit-tests # Unit tests for a small portion of hdoc's codebase
└── tests # Testing code
   ├── index-tests # Unit tests of hdoc's indexing functionality
   ├── integration-tests # Integration testing scripts
   └── unit-tests # Unit tests for a small portion of hdoc's codebase
```

## Attribution
Expand All @@ -82,13 +83,17 @@ hdoc relies on several open source software projects.
We thank all of the contributors to these projects for their work.
These are listed below in alphabetical order:
- [argparse](https://github.com/p-ranav/argparse)
- [Bulma](https://bulma.io/)
- [cereal](https://uscilab.github.io/cereal/)
- [Clang](https://clang.llvm.org/)
- [cmark](https://github.com/commonmark/cmark)
- [cmark-gfm](https://github.com/github/cmark-gfm)
- [cpp-httplib](https://github.com/yhirose/cpp-httplib)
- [CTML](https://github.com/tinfoilboy/CTML)
- [doctest](https://github.com/onqtam/doctest)
- [highlight.js](https://github.com/highlightjs/highlight.js)
- [KaTeX](https://github.com/KaTeX/KaTeX)
- [LLVM](https://llvm.org/)
- [minisearch](https://github.com/lucaong/minisearch)
- [spdlog](https://github.com/gabime/spdlog)
- [tiny-process-library](https://gitlab.com/eidheim/tiny-process-library)
- [toml++](https://marzer.github.io/tomlplusplus/)
Expand Down
39 changes: 20 additions & 19 deletions meson.build
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
project('hdoc', 'cpp', version: '1.1.0', default_options: ['cpp_std=c++17', 'warning_level=3'])
project('hdoc', 'cpp', version: '1.2.0', default_options: ['cpp_std=c++17', 'warning_level=3'])

dep_llvm = dependency('LLVM', include_type: 'system')
clang_modules = [
Expand Down Expand Up @@ -44,7 +44,7 @@ deps += dep_llvm
deps += dep_clang
deps += dependency('threads')
deps += dependency('openssl')
deps += subproject('cmark').get_variable('dep')
deps += subproject('cmark-gfm').get_variable('dep')
deps += subproject('spdlog').get_variable('dep')
deps += subproject('tiny-process-library').get_variable('dep')
deps += subproject('ctml').get_variable('dep')
Expand All @@ -64,6 +64,7 @@ src = [
'src/serde/Serialization.cpp',
'src/support/ParallelExecutor.cpp',
'src/support/StringUtils.cpp',
'src/support/MarkdownConverter.cpp',
assets_src,
]
lib = static_library('hdoc', sources: src, include_directories: inc, dependencies: deps)
Expand All @@ -73,26 +74,26 @@ executable('hdoc', sources: 'src/main.cpp', dependencies: libdeps)
executable('hdoc-client', sources: 'src/client-main.cpp', dependencies: libdeps)

unit_tests_src = [
'unit-tests/test.cpp',
'tests/unit-tests/test.cpp',
]
executable('unit-tests', sources: unit_tests_src, dependencies: libdeps, cpp_args: '-DHDOC_TEST_CODE')

test_src = [
'index-tests/test.cpp',
'index-tests/common.cpp',
'index-tests/test-records.cpp',
'index-tests/test-unions.cpp',
'index-tests/test-functions.cpp',
'index-tests/test-enums.cpp',
'index-tests/test-namespaces.cpp',
'index-tests/test-typedefs.cpp',
'index-tests/test-inheritance.cpp',
'index-tests/test-constructors.cpp',
'index-tests/test-operators.cpp',
'index-tests/test-templates.cpp',
'index-tests/test-comments-records.cpp',
'index-tests/test-comments-functions.cpp',
'index-tests/test-comments-enums.cpp',
'index-tests/test-comments-namespaces.cpp',
'tests/index-tests/test.cpp',
'tests/index-tests/common.cpp',
'tests/index-tests/test-records.cpp',
'tests/index-tests/test-unions.cpp',
'tests/index-tests/test-functions.cpp',
'tests/index-tests/test-enums.cpp',
'tests/index-tests/test-namespaces.cpp',
'tests/index-tests/test-typedefs.cpp',
'tests/index-tests/test-inheritance.cpp',
'tests/index-tests/test-constructors.cpp',
'tests/index-tests/test-operators.cpp',
'tests/index-tests/test-templates.cpp',
'tests/index-tests/test-comments-records.cpp',
'tests/index-tests/test-comments-functions.cpp',
'tests/index-tests/test-comments-enums.cpp',
'tests/index-tests/test-comments-namespaces.cpp',
]
executable('index-tests', sources: test_src, dependencies: libdeps, cpp_args: '-DHDOC_TEST_CODE')
125 changes: 120 additions & 5 deletions site/content/oss.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,17 @@ hdoc relies on several open source software projects.
We thank all of the contributors to these projects for their work.
These are listed below in alphabetical order:
- [argparse](https://github.com/p-ranav/argparse)
- [Bulma](https://bulma.io/)
- [cereal](https://uscilab.github.io/cereal/)
- [Clang](https://clang.llvm.org/)
- [cmark](https://github.com/commonmark/cmark)
- [cmark-gfm](https://github.com/github/cmark-gfm)
- [cpp-httplib](https://github.com/yhirose/cpp-httplib)
- [CTML](https://github.com/tinfoilboy/CTML)
- [doctest](https://github.com/onqtam/doctest)
- [highlight.js](https://github.com/highlightjs/highlight.js)
- [KaTeX](https://github.com/KaTeX/KaTeX)
- [LLVM](https://llvm.org/)
- [minisearch](https://github.com/lucaong/minisearch)
- [spdlog](https://github.com/gabime/spdlog)
- [tiny-process-library](https://gitlab.com/eidheim/tiny-process-library)
- [toml++](https://marzer.github.io/tomlplusplus/)
Expand All @@ -26,11 +30,47 @@ Their licenses are reproduced below.
## argparse license
Copyright (c) 2018 Pranav Srinivas Kumar <pranav.srinivas.kumar@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

## Bulma license
The MIT License (MIT)

Copyright (c) 2021 Jeremy Thomas

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

## cereal license
Copyright (c) 2014, Randolph Voorhies, Shane Grant
Expand Down Expand Up @@ -303,7 +343,7 @@ prospectively choose to deem waived or otherwise exclude such Section(s) of
the License, but only in their entirety and only with respect to the Combined
Software.

## cmark license
## cmark-gfm license
Copyright (c) 2014, John MacFarlane

All rights reserved.
Expand Down Expand Up @@ -491,6 +531,60 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## highlight.js license
BSD 3-Clause License

Copyright (c) 2006, Ivan Sagalaev.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

## KaTeX license
The MIT License (MIT)

Copyright (c) 2013-2020 Khan Academy and other contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## LLVM license
Apache License

Expand Down Expand Up @@ -687,6 +781,27 @@ prospectively choose to deem waived or otherwise exclude such Section(s) of
the License, but only in their entirety and only with respect to the Combined
Software.

## minisearch license
Copyright 2018 Luca Ongaro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.

## spdlog license
The MIT License (MIT)

Expand Down
23 changes: 23 additions & 0 deletions site/content/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@ date = 2020-01-01
description = "What's changed between each release of hdoc, including new features, fixes, and improvements."
+++

# Version 1.2.0 (1 July 2021)

## New Features
* hdoc now supports LaTeX math in Markdown pages and documentation comments.
- KaTeX is used to render math in the generated documentation.
- Only the `$` (inline math) and `$$` (display math) delimiters are supported.
* hdoc now supports tables in Markdown pages.
* hdoc now prints breadcrumbs at the top of each documentation page for functions, records, and enums.
- This makes the structure of the code more clear (e.g. what namespaces is this function a part of?)

## Fixes
* [A bug](https://github.com/hdoc/hdoc/issues/4) which misprinted functions with trailing return types and exception specifiers was fixed.
* Markdown documents that have exceptionally wide code blocks are now wrapped to ensure that the entire webpage is not stretch to uncomfortable widths. A horizontal scrollbar now wraps such code blocks.
* Attribution for the open source libraries we use in the web documentation was added to the [open source page](https://hdoc.io/oss/)
- The newly attributed libraries/tools are: [Bulma](https://bulma.io/), [highlight.js](https://highlightjs.org/), [KaTeX](https://katex.org/), and [minisearch](https://github.com/lucaong/minisearch).
- Thank you to all the contributors to these projects!
* A message indicating that no free functions are defined in the current project is printed instead of leaving a blank page.
* The project name and version is printed in the page title (i.e. HTML `<title>` tag) of all documentation pages.

## Internal changes
* Integration tests, unit tests, and index tests were all moved to the `tests/` directory.
* The Markdown to HTML library was changed from CommonMark to GitHub's fork of CommonMark to enable the table extension.

# Version 1.1.0 (23 June 2021)

Check out [the accompanying blog post](@/blog/improvements-in-hdoc-1-1-0.md) for more details on the features in hdoc 1.1.0 and videos showing them off.
Expand Down
4 changes: 3 additions & 1 deletion src/indexer/MatcherUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ std::string getFunctionSignature(hdoc::types::FunctionSymbol& f, const clang::Fu
signature += f.isConst ? " const" : "";
signature += f.isVolatile ? " volatile" : "";
signature += f.isRestrict ? " restrict" : "";
signature += f.hasTrailingReturn ? " -> " + f.returnType.name : "";

// Add reference qualifier
signature += f.refQualifier == clang::RQ_LValue ? " &" : "";
Expand All @@ -207,6 +206,9 @@ std::string getFunctionSignature(hdoc::types::FunctionSymbol& f, const clang::Fu
// Add noexcept qualifier
signature += f.isNoExcept ? " noexcept" : "";

// Trailing return type goes last
signature += f.hasTrailingReturn ? " -> " + f.returnType.name : "";

return signature;
}

Expand Down
Loading

0 comments on commit 0f9f7cb

Please sign in to comment.