doc

Branch


Log

Author Commit Date CI Message
Pierre Le Marre 79502700 2023-11-14T10:10:50 Doc: fix malformed links and some typos
Pierre Le Marre 00e3058e 2023-11-06T21:53:51 Prevent recursive includes of keymap components - Add check for recursive includes of keymap components. It relies on limiting the include depth. The threshold is currently to 15, which seems reasonable with plenty of margin for keymaps in the wild. - Add corresponding new log message `recursive-include`. - Add tests for recursive includes.
Pierre Le Marre 171e0170 2023-10-25T20:39:39 Fix memory leak in FindFileInXkbPath The string `buf` was not freed after each call to `asprintf_safe`. Avoid allocating and introduce the new message: `XKB_ERROR_INSUFFICIENT_BUFFER_SIZE`.
Pierre Le Marre ca7aa69c 2023-09-26T17:05:05 Disallow producing NULL character with escape sequences NULL usually terminates the strings; allowing to produce it via escape sequences may lead to undefined behaviour. - Make NULL escape sequences (e.g. `\0` and `\x0`) invalid. - Add corresponding test. - Introduce the new message: XKB_WARNING_INVALID_ESCAPE_SEQUENCE.
Pierre Le Marre a83d745b 2023-09-21T20:06:27 Messages: add new messages to registry This commit is another step to identify and document the maximum number of logging messages. Bulk changes: - Rename `conflicting-key-type` to `conflicting-key-type-merging-groups`. Giving more context in the name allow us to introduce `conflicting-key-type-definitions` later. - Add conflicting-key-type-definitions - Add conflicting-key-type-map-entry - Add undeclared-modifiers-in-key-type Also improve the log messages. - Add conflicting-key-type-preserve-entries - Use XKB_ERROR_UNSUPPORTED_MODIFIER_MASK - Add illegal-key-type-preserve-result - Add conflicting-key-type-level-names - Add duplicate-entry - Add unsupported-symbols-field - Add missing-symbols-group-name-index - Use XKB_ERROR_WRONG_FIELD_TYPE - Add conflicting-key-name - Use XKB_WARNING_UNDEFINED_KEYCODE - Add illegal-keycode-alias - Add unsupported-geometry-section - Add missing-default-section - Add XKB_LOG_MESSAGE_NO_ID - Rename log_vrb_with_code to log_vrb - Use ERROR_WRONG_FIELD_TYPE & ERROR_INVALID_SYNTAX - Add unknown-identifier - Add invalid-expression-type - Add invalid-operation + fixes - Add unknown-operator - Rename ERROR_UNKNOWN_IDENTIFIER to ERROR_INVALID_IDENTIFIER - Add undeclared-virtual-modifier - Add expected-array-entry - Add invalid-include-statement - Add included-file-not-found - Add allocation-error - Add invalid-included-file - Process symbols.c - Add invalid-value - Add invalid-real-modifier - Add unknown-field - Add wrong-scope - Add invalid-modmap-entry - Add wrong-statement-type - Add conflicting-key-symbols-entry - Add invalid-set-default-statement
Pierre Le Marre eafd3ace 2023-09-18T18:17:39 Add a new warning for numeric keysyms Usually it is better to use the corresponding human-friendly keysym names. If there is none, then the keysym is most probably not supported in the ecosystem. The only use case I see is similar to the PUA in Unicode (see: https://en.wikipedia.org/wiki/Private_Use_Areas). I am not aware of examples of this kind of use.
Pierre Le Marre ef81d04e 2023-09-18T18:17:34 Structured log messages with a message registry Currently there is little structure in the log messages, making difficult to use them for the following use cases: - A user looking for help about a log message: the user probably uses a search engine, thus the results will depend on the proper indexing of our documentation and the various forums. It relies only on the wording of the message, which may change with time. - A user wants to filter the logs resulting of the use of one of the components of xkbcommon. A typical example would be testing xkeyboard-config against libxkbcommon. It requires the use of a pattern (simple words detection or regex). The issue is that the pattern may become silently out-of-sync with xkbcommon. A common practice (e.g. in compilers) is to assign unique error codes to reference theses messages, along with an error index for documentation. Thus this commit implements the following features: - Create a message registry (message-registry.yaml) that defines the log messages produced by xkbcommon. This is a simple YAML file that provides, for each message: - A unique numeric code as a short identifier. It is used in the output message and thus can be easily be filtered to spot errors or searched in the internet. It must not change: if the semantics of message changes, it is better to introduce a new message for clarity. - A unique text identifier, meant for two uses: 1. Generate constants dealing with log information in our code base. 2. Generate human-friendly names for the documentation. - A type: currently warning or error. Used to prefix the constants (see hereinabove) and for basic classification in documentation. - A short description, used as concise and mandatory documentation. - An optionnal detailed description. - Optional examples, intended to help the user to fix issues themself. - Version of xkbcommon it was added. For old entries this often unknown, so they will default to 1.0.0. - Version of xkbcommon it was removed (optional) No entry should ever be deleted from this index, even if the message is not used anymore: it ensures we have unique identifiers along the history of xkbcommon, and that users can refer to the documentation even for older versions. - Add the script update-message-registry.py to generate the following files: - messages.h: message code enumeration for the messages currently used in the code base. Currently a private API. - message.registry.md: the error index documentation page. - Modify the logging functions to use structured messages. This is a work in progress.
Ran Benita c1b6c79a 2023-07-31T22:35:16 doc: fix some Doxygen warnings ``` libxkbcommon/doc/introduction-to-xkb.md:67: warning: unable to resolve reference to 'rule-file-format' for \ref command libxkbcommon/doc/introduction-to-xkb.md:181: warning: unable to resolve reference to 'keymap-text-format-v1' for \ref command libxkbcommon/doc/rules-format.md:10: warning: unable to resolve reference to 'xkb-intro' for \ref command ``` Signed-off-by: Ran Benita <ran@unusedvar.com>
Wismill 64aaa7cd 2023-05-14T15:11:15 Add support for stable doc URLs (#342) Doc URLs may change with time because they depend on Doxygen machinery. This is unfortunate because it is good practice to keep valid URLs (see: https://www.w3.org/Provider/Style/URI.html). I could not find a built-in solution in Doxygen, so the solution proposed here is to maintain a registry of all URLs and manage legacy URLs as redirections to their canonical page. This commit adds a registry of URLs that has three functions: - Check no previous URL is now invalid. - Add aliases for moved pages. - Generate redirection pages for aliases. The redirection works with a simple <meta http-equiv="refresh"> HTML tag. See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#http-equiv This commit also initialize the URLs registry with current pages and some redirections needed after recent documentation refactoring. Finally, the CI is updated to catch any change that invalidate previous URLs.
Pierre Le Marre fc664cf1 2023-05-13T05:30:11 Improve documentation - Add introduction to XKB - Embrace Doxygen features - More cross links
Ran Benita e4226011 2023-05-04T11:55:51 Use consistent indentation for map and CSS files Signed-off-by: Ran Benita <ran@unusedvar.com>
Wismill 0e9c2ec9 2023-04-30T21:30:36 Improve the doc of the XKB keymap text format, V1 (#321) - Add table of contents - Add terminology section - (WIP) Add Introduction to the format - Improve the keycode section - Improve the interpret section - Add guide to create and use modifiers - (WIP) Add actions documentation - Add cross-references - Add keysyms header to documentation
Ran Benita 09ac27f7 2021-05-22T19:51:02 ignore: remove no longer relevant gitignore files These were relevant for the autoconf build but now we're meson only. Signed-off-by: Ran Benita <ran@unusedvar.com>
Jouke Witteveen 8b603dbe 2021-04-10T23:28:06 doc: fix user-configuration sample file Support copy-pasting from the docs to get something functional. Signed-off-by: Jouke Witteveen <j.witteveen@gmail.com>
Ran Benita 83e3a53d 2021-02-27T22:38:21 doc: add keymap-format-text-v1.md to the HTML documentation It's incomplete but might be helpful for someone. Signed-off-by: Ran Benita <ran@unusedvar.com>
Ran Benita 44df69c9 2020-12-27T09:47:08 doc/keymap: some slight editing Signed-off-by: Ran Benita <ran@unusedvar.com>
Simon Zeni 7420521f 2020-12-27T02:48:39 doc/keymap: add documentation for xkb_symbols (#205)
Peter Hutterer ae90a6a0 2020-08-26T15:47:51 doc: add some disclaimer regarding user-specific key types and compat entries It's a niche use-case but basically the same as adding symbols, so let's go with a general handwavy explanation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer d7b39f6f 2020-07-10T08:50:02 Add /etc/xkb as extra lookup path for system data files This completes the usual triplet of configuration locations available for most processes: - vendor-provided data files in /usr/share/X11/xkb - system-specific data files in /etc/xkb - user-specific data files in $XDG_CONFIG_HOME/xkb The default lookup order user, system, vendor, just like everything else that uses these conventions. For include directives in rules files, the '%E' resolves to that path. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Ran Benita 81842f7f 2020-07-25T17:18:02 doc: ignore rxkb, RXBK prefixes in doxygen Signed-off-by: Ran Benita <ran@unusedvar.com>
Peter Hutterer afb26e7d 2020-05-12T14:09:50 Add libxkbregistry to query available RMLVO This library is the replacement for clients parsing evdev.xml directly. Instead, they should use the API here so that in the future we may even be able to swap evdev.xml for a more suitable data format. The library parses through evdev.xml (using libxml2) and - if requested - through evdev.extras.xml as well. The merge approach is optimised for the default case where we have a system-installed rules XML and another file in $XDG_CONFIG_DIR that adds a few entries. We load the system file first, then append any custom ones to that. It's not possible to overwrite the MLVO list provided by the system files - if you want to do that, get the change upstream. XML validation is handled through the DTD itself which means we only need to check for a nonempty name, everything else the DTD validation should complain about. The logging system is effectively identical to xkbcommon. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer 3adbe54e 2020-06-23T16:20:08 tools: move the remaining tools from test to here Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer 4e544e27 2020-06-16T10:44:48 doc: correct the include path list XKB_CONFIG_ROOT (if defined) replaces the built-in system directories. Fixes 5fb2c6769b7259ba647781bc800d6a46d90cf1a9 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer 5fb2c676 2020-06-02T16:18:47 doc: add documentation for user configuration Most of this is currently hidden in the commit message for ca033a29d2ca, let's make it a bit more public so we have a link to point users to. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer a2657874 2020-06-02T16:11:33 doc: add the rules-format file (as markdown) Useful to have this as part of the documentation. The rendering isn't great but at least not any worse than pure text. Markdown escapes % so explaining our use of %S and %H would require a double % - not idea. Let's just wrap it as a code block and done. Includes two typo fixes too, yay. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Ran Benita 517464eb 2020-01-18T23:06:58 doc/rules-format.txt: document include support Signed-off-by: Ran Benita <ran@unusedvar.com>
Ran Benita 41bea9ab 2017-08-01T22:19:48 build: make doxygen run from the source tree I couldn't find any other way to make this work! Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 4983dbcf 2017-07-28T18:19:40 build: change doxygen target to be properly dependency-based This hackery (thanks libinput) is clearer and more precise than the previous hackery. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 148aec8b 2017-04-29T15:26:38 doc/compat: correct the XKB protocol version from 1.1 to 1.0 There is no XKB 1.1! Thanks to Oded Arbel for catching this. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 599fd9ba 2016-09-01T21:17:43 doc/compat: (! MODIFIER) syntax is parsed but ignored Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c29afcc3 2016-09-01T21:13:49 doc/compat.md: xkbcomp ignores multiple-keysyms these days https://cgit.freedesktop.org/xorg/app/xkbcomp/commit/?id=e119cbec7e750ffc4d4bd08b577db2c697035a30 Signed-off-by: Ran Benita <ran234@gmail.com>
Bryce Harrington d58fc90a 2016-06-15T17:36:18 doc: Also mention the wayland test client in the quick guide Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Bryce Harrington 094c8dc5 2016-06-15T17:36:17 doc: Declare keymap for wayland example keymap was defined in the X11 example, but also define it in the wayland example just to make it a bit more standalone Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Bryce Harrington 832e32dc 2016-06-15T17:36:16 doc: Fix ctx type in example xkb_context_new() returns a xkb_context pointer, so change the variable definition to be consistent. Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Daniel Stone a2974d5f 2016-03-15T11:20:35 doc: Fix Doxygen include for srcdir != builddir Instead of giving Doxygen a series of absolute paths to the source files and a relative path to the output directory, run it from the source directory with purely relative paths to the source files, and give it an absolute path to the build directory. This fixes the parsing of README.md with a separate build directory, since the relative includes for doc/quick-guide.md and doc/compat.md don't resolve otherwise. Doxygen's INCLUDE_PATH turns out not to fix this either, since that's just a set of paths to open and parse, rather than an analogue to cpp's -I. Signed-off-by: Daniel Stone <daniels@collabora.com>
Ran Benita 4aa50c9d 2016-01-20T22:48:10 doc: some notes about key names and aliases Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 7f3bb167 2015-11-23T00:07:15 doc/keymap-format-text-v1: add title and intro Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita cf337875 2015-11-21T23:17:55 doc/quick-guide: small improvements Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 42664023 2015-11-21T23:12:18 doc/keymap-format-text-v1: convert to markdown Make it more readable for random browsing. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 88919535 2015-11-21T22:39:38 doc/keymap-format-text-v1: update info on preserve Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 7bb425c1 2015-09-08T09:22:20 doc/Doxyfile: explicitly set HTML_TIMESTAMP = NO YES was the default in older version. Having a timestamp hurts reproducible builds, and serves no purpose, so remove it. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789071 Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 7a15c0ef 2015-09-08T09:21:32 doc/Doxyfile: only keep non-default values Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 8c0d6c79 2015-09-08T09:17:16 doc/Doxyfile: sync with latest version Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita aa41d883 2014-10-18T16:03:41 doc/compat.md: add compose incompatibilities Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0419f6e7 2014-10-18T14:50:49 docs: make html output have a fixed width, hide footer It's hard to read text which stretches indefinitely. The footer is not adding much. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 49dc91ce 2014-10-18T14:12:14 doc/quick-guide: some improvements Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita ab9cb11c 2014-10-18T13:53:25 doc/compat.md: we don't support more groups or mods yet Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 494a8fbf 2014-10-18T13:50:54 README: move compatibility notes to their own page Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 046c802e 2014-09-12T18:43:58 compose: add xkbcommon-compose - API xkbcommon-compose is a Compose implementation for xkbcommon. It mostly behaves like libX11's Compose, but the support is somewhat low-level and is not transparent like in libX11. The user must add some supporting code in order to utilize it. The intended audience are users who use xkbcommon but not a full-blown input method. With this they can add Compose support in a straightforward manner, so they have a fairly complete keyboard input for Latin-like languages at least. See the header documentation for details. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 9c088df3 2014-09-22T15:45:26 doc: disable alphabetical data structure index It is useless - we have very little data structures. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 805ed4e7 2014-09-22T15:31:51 doc: disable BRIEF_MEMBER_DESC It's easier to quickly go through the functions in a module this way. The names provide enough "brief description" to get someone to click for the full description. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 08d05799 2014-09-22T15:27:13 doc: disable tree view It is redundant with the header navigation. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f0cd7abc 2014-09-21T00:59:11 quick-guide: fix xkb_state_key_get_syms() example Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 51ae4a17 2014-09-21T00:56:33 quick-guide: fix Java-esque array syntax Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0aeb1095 2014-09-18T21:09:41 doc: order the modules better Explicitly specify the files in INPUT so that "X11 Support" appears after the main modules. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 770f3e4b 2014-04-25T01:21:09 doc: fix new doxygen version warnings Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 240fa418 2014-03-27T20:58:16 build: trim down generated doxygen docs Remove the huge verbatim copies of the header files. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 806dbeac 2014-03-23T15:04:51 Reformat README markdown So that github displays it as markdown, and correctly. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita aa3e8236 2014-03-23T14:32:12 doc: add a quick guide to the library This is a nice intro to the documentation, and also preferably gently pushes users to the "proper way" of using the library, which can be confusing. See also: http://fooishbar.org/tell-me-about/xkbcommon-intro/ Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 3923aa71 2014-02-09T11:27:34 doc: move some file comments into txt files in doc/ Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 6f06eb59 2013-06-19T21:13:52 doc: Update Doxyfile It gives: Warning: Tag `SYMBOL_CACHE_SIZE' at line 346 of file doc/Doxyfile has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" So run 'doxygen -u' as suggested. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e8c0396f 2013-03-05T13:16:30 doc: use README as doxygen main page overview The doxygen page looked a bit dead, the README fills it nicely, and is already written in the markdown format which doxygen uses (I think?). Unfortunately the USE_MDFILE_AS_MAINPAGE doxygen config doesn't seem to do anything.. So we just add a {#mainpage} tag at the top of the README which isn't so bad. BUT we still need some config option (the no_extension=md part) so that doxygen will accept README instead of README.md or somesuch. And that requires an even newer release, 1.8.3.1, released 2013-01. But if an older version is used, it doesn't spew out warnings but just skips the README, which is fine. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 40e5de9a 2013-03-05T12:01:48 doc: update Doxyfile template to one from newer version We want to use the USE_MDFILE_AS_MAINPAGE option which was introduced in doxygen 1.8.3 (released 2012-12). Right now the new options are commented, otherwise older doxygen spews these these warnings, which can be ignored: warning: ignoring unsupported tag `USE_MDFILE_AS_MAINPAGE =' at line 794, file doc/Doxyfile warning: ignoring unsupported tag `MATHJAX_FORMAT =' at line 1210, file doc/Doxyfile warning: ignoring unsupported tag `EXTERNAL_SEARCH =' at line 1257, file doc/Doxyfile warning: ignoring unsupported tag `SEARCHENGINE_URL =' at line 1265, file doc/Doxyfile warning: ignoring unsupported tag `SEARCHDATA_FILE =' at line 1271, file doc/Doxyfile warning: ignoring unsupported tag `EXTERNAL_SEARCH_ID =' at line 1278, file doc/Doxyfile warning: ignoring unsupported tag `EXTRA_SEARCH_MAPPINGS =' at line 1287, file doc/Doxyfile Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita bde066b9 2012-10-11T18:13:56 doc: use JAVADOC_AUTOBRIEF Don't have to type @brief all the time. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 108fa1c7 2012-09-22T15:02:54 Add support for building doxygen API documentation Simple HTML docs generated from the doxygen comments. After running 'make' or 'make doc', try firefox doc/html/index.html to see it (if you have doxygen). It's also installed with 'make install'. You can use --enable-docs or --disable-docs, or specifically --with-doxygen or --without-doxygen (autodetected, default yes). The docs are currently not distributed in the tarball, because I couldn't make it work properly in all cases :/ Signed-off-by: Ran Benita <ran234@gmail.com>