chiark / gitweb /
Vladimír Vondruš [Sun, 21 Apr 2019 20:55:40 +0000 (22:55 +0200)]
documentation/python: gracefully handle also crazy return types.
Vladimír Vondruš [Sun, 21 Apr 2019 17:21:40 +0000 (19:21 +0200)]
documentation/python: parsing types of pybind11 properties.
Vladimír Vondruš [Sat, 20 Apr 2019 21:41:31 +0000 (23:41 +0200)]
documentation/python: parse pybind11 function signatures.
Vladimír Vondruš [Sat, 20 Apr 2019 22:07:07 +0000 (00:07 +0200)]
documentation/python: support pybind11-style submodules.
The usual detection fails there. Oh well.
Vladimír Vondruš [Sat, 20 Apr 2019 22:05:14 +0000 (00:05 +0200)]
documentation/python: support pybind11 enums.
Vladimír Vondruš [Sat, 20 Apr 2019 22:03:35 +0000 (00:03 +0200)]
documentation/python: make pybind11 compatibility opt-in.
This is becoming rather shitty.
Vladimír Vondruš [Sat, 20 Apr 2019 18:29:53 +0000 (20:29 +0200)]
documentation/python: module and class index.
Vladimír Vondruš [Sat, 20 Apr 2019 14:47:55 +0000 (16:47 +0200)]
documentation/python: adapt to slightly different internals in 3.6.
Vladimír Vondruš [Sat, 20 Apr 2019 14:10:19 +0000 (16:10 +0200)]
documentation/python: support enums.
Vladimír Vondruš [Fri, 19 Apr 2019 15:47:39 +0000 (17:47 +0200)]
documentation: initial version of the Python doc generator.
Inspecting modules, functions, classes, methods and properties, taking
the first line of the docstring for a brief docs. Nothing more at the
moment, no index or search is hooked up yet.
Vladimír Vondruš [Sat, 20 Apr 2019 18:19:54 +0000 (20:19 +0200)]
documentation/doxygen: reflow a comment.
Vladimír Vondruš [Mon, 22 Apr 2019 14:59:40 +0000 (16:59 +0200)]
Doc++
Vladimír Vondruš [Sat, 20 Apr 2019 15:27:40 +0000 (17:27 +0200)]
documentation: ignore more npm cruft.
Vladimír Vondruš [Sat, 20 Apr 2019 15:11:12 +0000 (17:11 +0200)]
documentation: ignore test files for code coverage.
Stupid fucking istanbul, now it's deprecated and renamed to nyc and
there's some magic that puts istanbul into PATH but only in the root
directory and I hate that.
Vladimír Vondruš [Fri, 19 Apr 2019 17:51:09 +0000 (19:51 +0200)]
m.alias: remove useless dependency on m.htmlsanity.
Vladimír Vondruš [Fri, 19 Apr 2019 15:22:11 +0000 (17:22 +0200)]
m.htmlsanity: make the plugin usable outside of Pelican.
Vladimír Vondruš [Fri, 19 Apr 2019 17:52:39 +0000 (19:52 +0200)]
documentation/doxygen: use proper CSS color in the test.
Vladimír Vondruš [Fri, 19 Apr 2019 15:52:29 +0000 (17:52 +0200)]
Doc++
Vladimír Vondruš [Wed, 17 Apr 2019 17:23:52 +0000 (19:23 +0200)]
Various updates to the contribution guide.
I spotted a bunch of Engrish and in the end went over everything.
Vladimír Vondruš [Sun, 14 Apr 2019 11:26:24 +0000 (13:26 +0200)]
doxygen: whoops, forgot to update the JS.
Vladimír Vondruš [Wed, 3 Apr 2019 20:13:51 +0000 (22:13 +0200)]
doc: whoops, forgot to commit this.
Vladimír Vondruš [Wed, 3 Apr 2019 15:11:50 +0000 (17:11 +0200)]
doc: fix another order-dependent rst processing error.
Vladimír Vondruš [Wed, 3 Apr 2019 09:16:45 +0000 (11:16 +0200)]
doc: moved sample Doxygen tagfile.
Vladimír Vondruš [Wed, 3 Apr 2019 08:38:52 +0000 (10:38 +0200)]
css: renamed m-doxygen.css to m-documentation.css.
And all .m-dox* classes to .m-doc*. It's not Doxygen-specific anymore.
Note this is a breaking change if you are using the Doxygen theme. In
particular:
* all stylesheet references in HTML_EXTRA_STYLESHEETS have to be
updated to reference m-dark+documentation.compiled.css instead of
m-dark+doxygen.compiled.css
* all processing scripts and theme derivations that were depending on
the m-doxygen.css file need to reference m-documentation.css
* all theme modifications need to use the m-doc prefix instead of
m-dox for CSS classes
Vladimír Vondruš [Tue, 2 Apr 2019 21:48:31 +0000 (23:48 +0200)]
doc: adapted site to project organization changes.
Vladimír Vondruš [Thu, 3 Jan 2019 20:26:18 +0000 (21:26 +0100)]
Moved doxygen/dox2html5.py to documentation/doxygen.py.
And move the theme and test directory as well. Making room for Python
and other language support. Note this is a breaking change --- from now
on, you need to call the script as
documentation/doxygen.py
instead of
doxygen/dox2html5.py
Besides that, the location of default templates changed from
doxygen/templates/ to documentation/templates/doxygen/ --- if you have
your own modifications to these, you may need to move your files.
Vladimír Vondruš [Tue, 2 Apr 2019 17:33:48 +0000 (19:33 +0200)]
Moved plugins from pelican-plugins/ to plugins/.
Not just for Pelican for a long time already. Note this is a breaking
change --- if you're using the m.css Pelican theme, you need to update
your PLUGIN_PATHS to reference the new directory, for example:
PLUGIN_PATHS = ['m.css/plugins/']
instead of
PLUGIN_PATHS = ['m.css/pelican-plugins/']
If you're using the Doxygen theme or just the CSS files, nothing changes
for you.
Vladimír Vondruš [Fri, 29 Mar 2019 18:07:40 +0000 (19:07 +0100)]
doxygen: fix namespaced classes with base/derived in the root NS.
Boom. Interesting, no project until now hit this particular case.
Vladimír Vondruš [Fri, 29 Mar 2019 12:25:02 +0000 (13:25 +0100)]
doxygen: avoid showing undocumented enum values twice.
Vladimír Vondruš [Sun, 24 Feb 2019 19:06:36 +0000 (20:06 +0100)]
doxygen: option to show undocumented symbols.
Done simply as a preprocessing step by populating the <briefdescription>
for each symbol that has neither <briefdescription> nor
<detaileddescription> with an empty <span>. That's all.
Vladimír Vondruš [Fri, 29 Mar 2019 09:58:31 +0000 (10:58 +0100)]
doxygen: \code can be also inside \m_span.
Vladimír Vondruš [Sat, 16 Mar 2019 12:44:24 +0000 (13:44 +0100)]
doxygen: *actually* not strip leading whitespace in a block.
The condition was inverted and the test was not testing anything. Ugh.
Vladimír Vondruš [Fri, 29 Mar 2019 10:24:39 +0000 (11:24 +0100)]
oelican-theme: avoid using deprecated PAGINATED_DIRECT_TEMPLATES.
Vladimír Vondruš [Fri, 29 Mar 2019 10:14:50 +0000 (11:14 +0100)]
m.images: make it possible to provide custom titles for image grid.
Vladimír Vondruš [Fri, 29 Mar 2019 10:35:31 +0000 (11:35 +0100)]
m.htmlsanity: graceful docutils error handling in the render_rst filter.
Like I did for Pelican 4.
Vladimír Vondruš [Fri, 29 Mar 2019 10:25:33 +0000 (11:25 +0100)]
m.htmlsanity: don't add an useless class to section titles.
Vladimír Vondruš [Fri, 29 Mar 2019 09:57:02 +0000 (10:57 +0100)]
m.htmlsanity: style footnotes with our CSS classes.
Vladimír Vondruš [Fri, 29 Mar 2019 09:58:58 +0000 (10:58 +0100)]
Doc++
Vladimír Vondruš [Fri, 29 Mar 2019 09:57:36 +0000 (10:57 +0100)]
css: semi-transparent code background also in colored table rows/cells.
Vladimír Vondruš [Fri, 29 Mar 2019 09:56:03 +0000 (10:56 +0100)]
css: styling for footnotes and footnote references.
Vladimír Vondruš [Sat, 23 Feb 2019 00:32:59 +0000 (01:32 +0100)]
Updated .gitignore.
Vladimír Vondruš [Sat, 23 Feb 2019 00:37:36 +0000 (01:37 +0100)]
site: fixes for order-dependent processing, again.
Vladimír Vondruš [Sat, 23 Feb 2019 00:32:43 +0000 (01:32 +0100)]
site: show coverage info in Build Status.
Vladimír Vondruš [Sat, 23 Feb 2019 00:31:15 +0000 (01:31 +0100)]
doxygen: fall back to the default template location from --template.
So people don't need to provide the whole copy, just the modified files.
Vladimír Vondruš [Fri, 22 Feb 2019 23:49:01 +0000 (00:49 +0100)]
doxygen: support the \internal command.
Vladimír Vondruš [Fri, 22 Feb 2019 23:38:34 +0000 (00:38 +0100)]
doxygen: show the final label of a class also in the class tree.
Vladimír Vondruš [Fri, 22 Feb 2019 23:23:43 +0000 (00:23 +0100)]
doxygen: parse function attributes also without leading space.
Vladimír Vondruš [Fri, 22 Feb 2019 22:58:59 +0000 (23:58 +0100)]
doxygen: it gets extra shitty when encountering decltype(auto).
Seriously, is the parser a box full of angry monkeys?! How is this
possible.
Vladimír Vondruš [Fri, 22 Feb 2019 22:22:46 +0000 (23:22 +0100)]
doxygen: more workarounds for insane multiline brief bugs.
Vladimír Vondruš [Fri, 22 Feb 2019 22:21:59 +0000 (23:21 +0100)]
doxygen: treat QT_AUTOBRIEF the same way as JAVA_AUTOBRIEF.
Similar bug ratio.
Vladimír Vondruš [Fri, 22 Feb 2019 21:39:46 +0000 (22:39 +0100)]
doxygen: mention that SHOW_NAMESPACES = NO is not supported.
Vladimír Vondruš [Fri, 22 Feb 2019 21:25:43 +0000 (22:25 +0100)]
doxygen: work around a bug related to HTML <a name=""> anchors.
Consistency FTW. Yay.
Vladimír Vondruš [Fri, 22 Feb 2019 21:05:44 +0000 (22:05 +0100)]
doxygen: harden the "anchor in both group and namespace" test.
Vladimír Vondruš [Fri, 22 Feb 2019 18:00:44 +0000 (19:00 +0100)]
doxygen: support image links.
Yay? Nah. It's still crappy, you still can't have \image inside \ref.
Vladimír Vondruš [Fri, 22 Feb 2019 20:36:05 +0000 (21:36 +0100)]
m.code: don't strip leading whitespace in blocks.
Vladimír Vondruš [Fri, 22 Feb 2019 19:40:44 +0000 (20:40 +0100)]
m.images: support width/height/scale options.
Vladimír Vondruš [Fri, 22 Feb 2019 18:30:09 +0000 (19:30 +0100)]
m.dot: support plaintext node shapes as well.
Vladimír Vondruš [Fri, 22 Feb 2019 17:48:19 +0000 (18:48 +0100)]
m.dox: the <file> doesn't need to have <path>.
Happens with the updated STL tag files from cppreference.com.
Vladimír Vondruš [Fri, 22 Feb 2019 17:18:12 +0000 (18:18 +0100)]
css: provide CSS classes for <em>, <strong>, <sup>, <sub> and <s>.
For cases where one can't use the tags (some cases with reST, Doxygen
etc.). The .m-em and .m-strong were already there, just making it
complete with .m-sup, .m-sub and .m-s.
Vladimír Vondruš [Sat, 2 Feb 2019 08:35:29 +0000 (09:35 +0100)]
css: explicitly use Python 3.
Vladimír Vondruš [Thu, 31 Jan 2019 15:23:09 +0000 (16:23 +0100)]
doxygen: improve type annotations.
That got old fast.
Vladimír Vondruš [Sat, 12 Jan 2019 16:11:14 +0000 (17:11 +0100)]
doxygen: properly shown includes for relateds in different files.
Vladimír Vondruš [Sat, 12 Jan 2019 15:32:13 +0000 (16:32 +0100)]
doxygen: mention private virtual functions behavior, other doc tweaks.
Vladimír Vondruš [Sat, 12 Jan 2019 15:21:11 +0000 (16:21 +0100)]
doxygen: adapt to function declaration location updates in Doxygen
Vladimír Vondruš [Sat, 12 Jan 2019 15:19:06 +0000 (16:19 +0100)]
doxygen: adapt test for features merged to Doxygen
Vladimír Vondruš [Sat, 12 Jan 2019 15:16:48 +0000 (16:16 +0100)]
doxygen: properly prefer shorter prefix.
The prefix_length is usually 0, since it's used for aliases, not
indicating the actual prefix length. So use the whole result length
instead.
Vladimír Vondruš [Sat, 12 Jan 2019 14:59:37 +0000 (15:59 +0100)]
doxygen: minor cleanup.
Vladimír Vondruš [Sat, 12 Jan 2019 14:58:54 +0000 (15:58 +0100)]
doc: Pelican docs are now https.
Vladimír Vondruš [Wed, 2 Jan 2019 17:31:34 +0000 (18:31 +0100)]
Update CONTRIBUTING for future me who will forget how to npm again.
Vladimír Vondruš [Wed, 2 Jan 2019 21:02:26 +0000 (22:02 +0100)]
doxygen: make it possible to easily copy result links to clipboard.
Especially Markdown links. A huge timesaver when doing tech support via
Gitter or so :)
Vladimír Vondruš [Wed, 2 Jan 2019 21:01:51 +0000 (22:01 +0100)]
doxygen: actually remove the ID attribute instead of emptying it.
Vladimír Vondruš [Wed, 2 Jan 2019 20:54:51 +0000 (21:54 +0100)]
doxygen: test the HTML escaping a bit more.
I got confused by how Chrome displays plain text in the developer
console (there's no escaping visible), so extending the test a bit to be
absolutely really sure that it's correct :D
Vladimír Vondruš [Wed, 2 Jan 2019 17:33:55 +0000 (18:33 +0100)]
doxygen: don't try to go to the result if there isn't any.
Vladimír Vondruš [Wed, 2 Jan 2019 17:30:42 +0000 (18:30 +0100)]
doxygen: autocomplete search input if all results have common prefix.
Handling of truncated UTF-8 was a fun side-task.
Vladimír Vondruš [Wed, 2 Jan 2019 13:11:30 +0000 (14:11 +0100)]
doxygen: make it possible to search directly from browser URL bar.
Adds an ability to specify search query by adding ?q={query}#search
to URL, which can be then bookmarked in the browsers to provide search
directly from the URL bar (or search input field).
On browsers supporting OpenSearch discovery (Firefox, Chrome, probably
Edge too), it also provides metadata that allow "single-click" addition
of the search engine to browser's search engine list. This option is
unfortunately well-hidden in the current versions (Firefox has it in the
three-dots menu, in Chrome you need to go to Settings while being on
this page and then it shows a suggestion, wtf). The OpenSearch metadata
are provided through a new opensearch.xml file and referenced from page
<head>. OpenSearch also supports autocompletion and search directly from
browser address bar, but for that to work I would need to implement a
server-side search functionality. Not yet, since I don't have any
immediate plans to turn my cloud file-serving Apache installation into a
smart and vulnerable attack target.
This also wraps the input in a <form>, so browsers not supporting
OpenSearch discovery (Vivaldi) can still add the search engine by
right-clicking on the input field. This works in Firefox as well.
Also, because of the <form> added, Vivaldi started autocompleting crap
suggestions for me, so I had to explicitly disable that.
Vladimír Vondruš [Wed, 2 Jan 2019 00:27:31 +0000 (01:27 +0100)]
doxygen: take search query from URL GET ?q= parameter, if present.
Vladimír Vondruš [Wed, 2 Jan 2019 00:11:48 +0000 (01:11 +0100)]
doxygen: make it possible to focus the already-shown search input.
For example when going back. Until now I had to use the mouse.
Vladimír Vondruš [Tue, 1 Jan 2019 23:59:18 +0000 (00:59 +0100)]
doxygen: hide the search by going back only when it makes sense.
If we landed directly on an URL with #search, going back would mean the
browser is redirected back to the referrer page, the Speed Dial or
whatever. Do not want. In this case we simply replace the history state
without the #search hash -- there definitely wasn't any other hash we
could return to.
Vladimír Vondruš [Tue, 1 Jan 2019 23:42:43 +0000 (00:42 +0100)]
doxygen: if the URL already contains #search, hide scrollbar etc.
For consistent experience compared to loading the docs without #search
and then hitting Tab.
Vladimír Vondruš [Tue, 1 Jan 2019 23:26:22 +0000 (00:26 +0100)]
doxygen: behave consistently when going back to filled search input.
Not sure why I didn't use the same implementation in both cases.
Vladimír Vondruš [Tue, 1 Jan 2019 23:23:45 +0000 (00:23 +0100)]
doxygen: debug output for long-running tasks.
Vladimír Vondruš [Tue, 1 Jan 2019 21:32:13 +0000 (22:32 +0100)]
doxygen: disable spell check in the search box.
Vladimír Vondruš [Tue, 1 Jan 2019 21:15:48 +0000 (22:15 +0100)]
doxygen: prevent search result being selected before the mouse moves.
Without this, the search was quite unusable with just the keyboard.
Vladimír Vondruš [Tue, 1 Jan 2019 21:10:38 +0000 (22:10 +0100)]
doxygen: provide a more meaningful order for results.
Results of the same length are now ordered like this, instead of
appearing in whatever order they were added:
* Deprecated and deleted symbols are put on the bottom
* Then ordered by type:
* First pages, since they usually provide most information
* Then namespaces and groups
* Then classes, structs, unions
* Then functions
* Then macros
* Then enums
* And enum values and variables last
* After that, items with the shorter suffix (the least amount of
function arguments) are preferred over longer
* Finally, items with shorter prefix are preferred over longer (so e.g.
it shows a Foo in the root namespace over Foo which is 5 levels deep)
This might get fine-tuned later, but I'm already very happy with the
result.
Vladimír Vondruš [Tue, 1 Jan 2019 18:38:40 +0000 (19:38 +0100)]
doxygen: swap order of search-related class definitions.
So I can type-annotate better. No functional change.
Vladimír Vondruš [Tue, 1 Jan 2019 18:15:18 +0000 (19:15 +0100)]
doxygen: parse override, final and conditional noexcept keywords.
* override and final is now parsed from function signatures, in the
theme the [virtual] label gets replaced with either [override] or
[final], since it doesn't make sense to include both [virtual] and
[override]/[final] label as the former is implicit for the latter.
* fixed order of parsing function signature keywords so function
signatures that are both deleted/defaulted and noexcept are parsed
correctly instead of noexcept being ignored
* conditional noexcept is now recognized as well, shown in the theme as
[noexcept(...)]
* [final] class specifier is now shown in the class header and also in
the derived class list
* [virtual] label is now shown for both virtual base class and
virtually derived classes to make it symmetric
Vladimír Vondruš [Mon, 31 Dec 2018 23:56:10 +0000 (00:56 +0100)]
Updated copyright year.
Vladimír Vondruš [Mon, 31 Dec 2018 23:52:05 +0000 (00:52 +0100)]
doxygen: more detailed docs explaining the #include behavior.
And required patches.
Vladimír Vondruš [Mon, 31 Dec 2018 23:35:49 +0000 (00:35 +0100)]
doxygen: improve #include information display based on real-world use.
* In cases where Doxygen spots the namespace first in a *.cpp file (and
later in a header) but the namespace is still contained in a single
header, the include informations was improperly put locally into
members, instead of globally. Now the information is propagated
upwards from the members to ensure correctness. This needs also
special handling for namespaces that are otherwise empty, where
there's nothing that could propagate the info upwards.
* Complex namespaces (namespaces containing other namespaces or
classes) no longer have the include information global even though
the non-class/namespace members are in the same file. This would be
misleading since inner namespaces and classes are often in different
files.
Vladimír Vondruš [Mon, 31 Dec 2018 23:00:04 +0000 (00:00 +0100)]
doxygen: of course I hit an issue right at the start, so let's test it.
This breaks everything.
Vladimír Vondruš [Mon, 31 Dec 2018 02:30:12 +0000 (03:30 +0100)]
Populated CREDITS.md.
Vladimír Vondruš [Mon, 31 Dec 2018 02:22:09 +0000 (03:22 +0100)]
doxygen: explicitly write trailing newline to all output files.
Makes test file updates much easier. I need to revisit this later with a
more systematic solution.
Vladimír Vondruš [Mon, 31 Dec 2018 02:07:34 +0000 (03:07 +0100)]
doxygen: show corresponding #include files.
This is again a superset of the functionality that stock Doxygen
supports (well of course, I'm full-assing things as usual):
* Classes (structs, unions) show their corresponding include file right
in the header (that's what Doxygen does, too)
* Besides that, namespaces that are fully contained in one file show
the corresponding include file as well
* In case of modules (groups) or when namespace contents are spread
over multiple files, each member shows its own specific include file
in the detailed docs (because not doing that would be very confusing
for users, especially if the mapping to files is not trivial). This
means that functions/enums/typedefs/variables/defines that were
previously just a brief docs may now get expanded to full docs just
to contain the include file information. This also unfortunately hits
a bug in Doxygen, where it doesn't properly report the header
location for declarations of free (non-member) functions and
variables (but uses the definition location, which is in most cases
in an (otherwise undocumented) *.cpp file). I need to report and/or
PR that, ugh.
* Files don't provide the include file information, because there it's
known implicitly.
* The SHOW_INCLUDE_FILES setting (which defaults to YES and is meant
to be for "a list of the files that are included by a file in the
documentation of that file" which is just absolutely fucking useless
in every way imaginable) is reused to toggle showing of the include
information.
* To make the rendering a bit more compact, in case the struct or
member contains template parameters, the include information is put
next to these instead of after the signature.
* As with everything else in m.css, if the corresponding header is not
documented at all, the include file information is not present.
The \headerfile Doxygen command is not supported, because (what
a surprise! this is totally shitty as well! who would have thought!):
* it works only for classes, you can't override the include name for
the file itself!
* and forget about doing anything like that for free functions,
typedefs or the like!
* (minor) it doesn't support #include A_MACRO
* it doesn't seem to be exposed in the XML at all (ahahahahah AAAARGH)
Co-authored-by: Ryohei Machida <machida_mn@complex.ist.hokudai.ac.jp>
Vladimír Vondruš [Mon, 31 Dec 2018 01:50:01 +0000 (02:50 +0100)]
doxygen: print #define detailed description only if actually there.
The detailed docs can contain just parameter docs, for example.
Vladimír Vondruš [Sun, 30 Dec 2018 23:58:40 +0000 (00:58 +0100)]
doxygen: support C++14 variable templates.
Interestingly enough, Doxygen already has the support and I just need
some basic template bureaucracy to get it running.
Vladimír Vondruš [Sun, 30 Dec 2018 18:48:35 +0000 (19:48 +0100)]
doxygen: minor update to the namespace page template.
There will be an include line added and this is sufficiently
self-contained to commit separately.
Vladimír Vondruš [Sun, 30 Dec 2018 17:10:22 +0000 (18:10 +0100)]
doxygen: minor code clarifications.
Vladimír Vondruš [Sun, 30 Dec 2018 18:50:14 +0000 (19:50 +0100)]
css: make it possible to have also inline code inverted and highlighted.
More of a hack to support Doxygen theme #include info styling.
Vladimír Vondruš [Mon, 31 Dec 2018 00:07:30 +0000 (01:07 +0100)]
doc: forgot to document typedef.has_template_details doxygen template.
Vladimír Vondruš [Mon, 31 Dec 2018 00:05:48 +0000 (01:05 +0100)]
Doc++