summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2023-02-24 18:08:46 +0100
committerCarlos Garnacho <carlosg@gnome.org>2023-02-27 09:18:57 +0100
commitc27eb6be6ce747c4112f528acd214d63f1504476 (patch)
treee69c3358f5c47c7f1493f18578d6b6eb8f204be3 /docs
parentd2083119e57afa1f088026dfcaa8617add99b49e (diff)
downloadtracker-c27eb6be6ce747c4112f528acd214d63f1504476.tar.gz
docs: Migrate documentation to gi-docgen
Move away from hotdoc, and port the documentation infrastructure to use gi-docgen. We still do fixup devhelp2 files in order to include ontology items as search terms, and we still do prefer to ship the pre-generated documentation in the tarball, in order to avoid a host of dependencies like graphviz for the people building from tarballs. It is not the first time that porting to gi-docgen was attempted, this is partially based on work by Daniele Nicolodi <daniele@grinta.net>.
Diffstat (limited to 'docs')
-rw-r--r--docs/reference/libtracker-sparql/dist-docs.sh24
-rwxr-xr-xdocs/reference/libtracker-sparql/generate-devhelp.sh29
-rw-r--r--docs/reference/libtracker-sparql/gi-index.md5
-rw-r--r--docs/reference/libtracker-sparql/index.md9
-rwxr-xr-xdocs/reference/libtracker-sparql/install-devhelp.sh11
-rw-r--r--docs/reference/libtracker-sparql/logo.svg35
-rw-r--r--docs/reference/libtracker-sparql/meson.build109
-rw-r--r--docs/reference/libtracker-sparql/sitemap.txt30
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/css/tracker-custom.css3
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.js65
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.min.js1
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.js55
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.min.js1
-rw-r--r--docs/reference/libtracker-sparql/theme-extra/templates/navbar_links.html6
-rw-r--r--docs/reference/libtracker-sparql/tracker-sparql.toml.in60
-rw-r--r--docs/reference/libtracker-sparql/urlmap.js6
-rw-r--r--docs/reference/meson.build2
17 files changed, 185 insertions, 266 deletions
diff --git a/docs/reference/libtracker-sparql/dist-docs.sh b/docs/reference/libtracker-sparql/dist-docs.sh
index 49e04aa8a..5511d5427 100644
--- a/docs/reference/libtracker-sparql/dist-docs.sh
+++ b/docs/reference/libtracker-sparql/dist-docs.sh
@@ -1,33 +1,13 @@
#!/bin/sh
-docs_name=$1
-
-pushd ${MESON_SOURCE_ROOT}
-files=`git clean -nx docs/reference/libtracker-sparql/theme-extra/`
-if [ -n "$files" ]
-then
- echo "Directory 'theme-extra' is unclean:"
- echo -e "$files"
- exit -1
-fi
-popd
-
pushd $MESON_BUILD_ROOT
# Ensure the build tree is compiled, we need generated files
ninja
-# Run hotdoc manually
-pushd docs/reference/libtracker-sparql
-hotdoc run --conf-file ${docs_name}-doc.json
-
# Generate fixed .devhelp2 file
-${MESON_SOURCE_ROOT}/docs/reference/libtracker-sparql/generate-devhelp.sh $1
+. ${MESON_SOURCE_ROOT}/docs/reference/libtracker-sparql/generate-devhelp.sh $1 $2
# And copy the resulting devhelp documentation into the dist location
-mv ${docs_name}-doc/devhelp/ ${MESON_DIST_ROOT}/docs/reference/libtracker-sparql/
-
-# Delete the remaining docs
-rm -rf ${docs_name}-doc/
+cp -a $2 ${MESON_DIST_ROOT}/docs/reference/libtracker-sparql/
popd
-popd
diff --git a/docs/reference/libtracker-sparql/generate-devhelp.sh b/docs/reference/libtracker-sparql/generate-devhelp.sh
index cb7010782..d4d8d0f88 100755
--- a/docs/reference/libtracker-sparql/generate-devhelp.sh
+++ b/docs/reference/libtracker-sparql/generate-devhelp.sh
@@ -1,27 +1,18 @@
#!/bin/sh
-cd ${MESON_BUILD_ROOT}/docs/reference/libtracker-sparql/
-
docs_name=$1
-docs_path="${docs_name}-doc/devhelp/books/${docs_name}"
-devhelp_file="${docs_path}/*.devhelp2"
-
-# Step 1. Build devhelp documentation (we let meson do this)
-# hotdoc run --conf-file '${docs_name}-doc.json' --devhelp-activate
+docs_path=$2
+devhelp_file="${docs_name}/${docs_name}.devhelp2"
-# Step 2. Fix .devhelp2 file so it contains keywords from out ontologies
-cat $devhelp_file | sed "s/<\/functions>//" - | sed "s/<\/book>//" - >fixed.devhelp2
-
-for i in *-ontology.keywords
-do
- cat $i >>fixed.devhelp2
-done
+pushd $docs_path >/dev/null
+# Fix .devhelp2 file so it contains keywords from out ontologies
+cat $devhelp_file | sed "s/<\/functions>//" - | sed "s/<\/book>//" - >fixed.devhelp2 2>/dev/null
+cat ../*-ontology.keywords >>fixed.devhelp2 2>/dev/null
+rm ../*-ontology.keywords 2>/dev/null
echo -e " </functions>\n</book>" >>fixed.devhelp2
+
+# Replace devhelp2 file
mv fixed.devhelp2 $devhelp_file
-# Step 3. Trim unnecessary data
-rm ${docs_path}/assets/fonts/*.woff*
-rm ${docs_path}/assets/fonts/*.svg
-rm -rf ${docs_path}/assets/js/search
-find ${docs_path} -name "dumped.trie" -delete
+popd >/dev/null
diff --git a/docs/reference/libtracker-sparql/gi-index.md b/docs/reference/libtracker-sparql/gi-index.md
deleted file mode 100644
index 8913fd4b8..000000000
--- a/docs/reference/libtracker-sparql/gi-index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: API reference
-...
-
-# API reference
diff --git a/docs/reference/libtracker-sparql/index.md b/docs/reference/libtracker-sparql/index.md
deleted file mode 100644
index 5da81f0cc..000000000
--- a/docs/reference/libtracker-sparql/index.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Tracker library documentation
-
-Tracker is a low-footprint, yet complete implementation of the SPARQL
-standard. It allows you to create triplestores (either in disk or in
-memory), connect to remote SPARQL endpoints (via DBus or HTTP), or
-be an endpoint yourself.
-
-- *License:* LGPL-2.1-or-later
-- *Website:* [https://gnome.pages.gitlab.gnome.org/tracker/](https://gnome.pages.gitlab.gnome.org/tracker/)
diff --git a/docs/reference/libtracker-sparql/install-devhelp.sh b/docs/reference/libtracker-sparql/install-devhelp.sh
index 74aafaa54..837a9e311 100755
--- a/docs/reference/libtracker-sparql/install-devhelp.sh
+++ b/docs/reference/libtracker-sparql/install-devhelp.sh
@@ -1,12 +1,9 @@
#!/bin/sh
# Generate fixed .devhelp2 file
-${MESON_SOURCE_ROOT}/docs/reference/libtracker-sparql/generate-devhelp.sh $1
+. ${MESON_SOURCE_ROOT}/docs/reference/libtracker-sparql/generate-devhelp.sh $1 $2
# Install all files
-docs_name=$1
-docs_path="${docs_name}-doc/devhelp/books/${docs_name}"
-
-cd ${MESON_BUILD_ROOT}/docs/reference/libtracker-sparql/
-mkdir -p ${MESON_INSTALL_DESTDIR_PREFIX}/share/devhelp/books
-cp -a $docs_path ${MESON_INSTALL_DESTDIR_PREFIX}/share/devhelp/books/
+docs_path=$2
+mkdir -p ${MESON_INSTALL_DESTDIR_PREFIX}/share/doc
+cp -a $docs_path/* ${MESON_INSTALL_DESTDIR_PREFIX}/share/doc/
diff --git a/docs/reference/libtracker-sparql/logo.svg b/docs/reference/libtracker-sparql/logo.svg
new file mode 100644
index 000000000..21ad79cd6
--- /dev/null
+++ b/docs/reference/libtracker-sparql/logo.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256" height="256" version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="Gradient" x1="0" x2="0" y1="0" y2="1">
+ <stop offset="0%" style="stop-color:#E01B24;stop-opacity:1" />
+ <stop offset="100%" style="stop-color:#C061CB;stop-opacity:1" />
+ </linearGradient>
+ <filter id="alpha-to-white">
+ <feColorMatrix in="SourceGraphic" type="matrix"
+ values="0 0 0 1 0
+ 0 0 0 1 0
+ 0 0 0 1 0
+ 0 0 0 1 0"/>
+ </filter>
+ <g id="child-svg">
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#241f31">
+ <path d="m 11.5 10.644531 c -0.863281 0.15625 -1.175781 1.234375 -0.53125 1.828125 l 3.195312 3.195313 c 1.019532 0.996093 2.515626 -0.53125 1.496094 -1.53125 l -3.195312 -3.195313 c -0.25 -0.253906 -0.613282 -0.367187 -0.964844 -0.296875 z m 0 0"/>
+ <path d="m 6.917969 0 c -3.808594 0 -6.917969 3.109375 -6.917969 6.917969 c 0 3.808593 3.109375 6.917969 6.917969 6.917969 c 3.808593 0 6.921875 -3.109376 6.921875 -6.917969 c 0 -3.808594 -3.113282 -6.917969 -6.921875 -6.917969 z m 0 2.128906 c 2.660156 0 4.792969 2.132813 4.792969 4.789063 c 0 2.660156 -2.132813 4.789062 -4.792969 4.789062 c -2.65625 0 -4.789063 -2.128906 -4.789063 -4.789062 c 0 -2.65625 2.132813 -4.789063 4.789063 -4.789063 z m 0 0"/>
+ </g>
+</svg>
+</g>
+ </defs>
+ <rect
+ width="256"
+ height="256"
+ fill="url(#Gradient)"
+ ry="128"
+ x="0"
+ y="0" />
+ <use xlink:href="#child-svg" filter="url(#alpha-to-white)"
+ transform="matrix(8,0,0,8,64,64)" />
+</svg>
diff --git a/docs/reference/libtracker-sparql/meson.build b/docs/reference/libtracker-sparql/meson.build
index b6dad9c9a..d55a15b06 100644
--- a/docs/reference/libtracker-sparql/meson.build
+++ b/docs/reference/libtracker-sparql/meson.build
@@ -1,13 +1,21 @@
fs = import('fs')
-if fs.exists('devhelp')
+if fs.exists('doc')
# Special case for tarballs, install the pre-generated docs
- install_subdir('devhelp/books',
- install_dir: join_paths(datadir, 'devhelp'))
+ install_subdir('doc',
+ install_dir: datadir)
subdir_done()
endif
-hotdoc = import('hotdoc')
+gidocgen_dep = dependency('gi-docgen', fallback: ['gi-docgen', 'dummy_dep'])
+gidocgen = find_program('gi-docgen')
+
+ontology_introductions = [
+ 'nie-introduction.md',
+ 'nmm-introduction.md',
+ 'nco-introduction.md',
+ 'mfo-introduction.md',
+]
base_ontology_docs = custom_target('ontology-docgen',
output: ['dc-ontology.md'],
@@ -18,7 +26,7 @@ base_ontology_docs = custom_target('ontology-docgen',
'--introduction-dir', meson.current_source_dir(),
'--ontology-description-dir', join_paths(source_root, 'src/ontologies/')],
depends: tracker_docgen,
- depend_files: [base_ontology],
+ depend_files: [base_ontology, ontology_introductions],
build_by_default: true,
)
@@ -30,55 +38,72 @@ nepomuk_ontology_docs = custom_target('nepomuk-docgen',
'--output-dir', meson.current_build_dir(),
'--introduction-dir', meson.current_source_dir()],
depends: tracker_docgen,
- depend_files: [base_ontology],
+ depend_files: [nepomuk, ontology_introductions],
build_by_default: true,
)
+generated_content = [
+ 'xsd-ontology.md',
+ 'rdf-ontology.md',
+ 'nrl-ontology.md',
+ 'dc-ontology.md',
+
+ 'nie-ontology.md',
+ 'nao-ontology.md',
+ 'nco-ontology.md',
+ 'nfo-ontology.md',
+ 'nmm-ontology.md',
+ 'mfo-ontology.md',
+ 'tracker-ontology.md',
+ 'slo-ontology.md',
+ 'osinfo-ontology.md',
+]
+
content = [
'overview.md',
'examples.md',
+ 'tutorial.md',
'ontologies.md',
+ 'sparql-functions.md',
+ 'sparql-and-tracker.md',
'limits.md',
'performance.md',
- 'sparql-and-tracker.md',
- 'sparql-functions.md',
- 'migrating-2to3.md',
- 'tutorial.md',
'security.md',
+ 'migrating-2to3.md',
]
-required_hotdoc_extensions = [
- 'gi-extension',
- 'devhelp-extension',
- 'syntax-highlighting-extension',
-]
-
-foreach ext: required_hotdoc_extensions
- if not hotdoc.has_extensions(ext)
- error('Documentation enabled but HotDoc extension "@0@" is missing'.format(ext))
- endif
+# The TOML gi-docgen configuration wants a list of quoted file names.
+content_quoted = []
+foreach c : content + generated_content
+ content_quoted += '"@0@"'.format(c)
endforeach
-docs_name = 'Tracker'
-hotdoc.generate_doc(docs_name,
- project_version: tracker_version,
- languages: [ 'c', 'python', 'javascript' ],
- gi_c_sources: [libtracker_sparql_sources, libtracker_sparql_public_headers],
- gi_sources: [tracker_sparql_gir[0].full_path()],
- sitemap: 'sitemap.txt',
- index: 'index.md',
- gi_index: 'gi-index.md',
- gi_smart_index: true,
- gi_c_source_roots: [sparqlinc],
- dependencies: [tracker_sparql_dep, base_ontology_docs, nepomuk_ontology_docs],
- extra_assets: [join_paths(meson.current_source_dir(), 'images')],
- html_theme: 'https://github.com/hotdoc/hotdoc_lumen_theme/releases/download/0.13.2/hotdoc_lumen_theme-0.13.2.tar.xz?sha256=5721189b7e985f27381ee20137f4a9003049a70a75ab1221a69fd04d27e752bc',
- html_extra_theme: join_paths(meson.current_source_dir(), 'theme-extra'),
- syntax_highlighting_activate: true,
- devhelp_activate: true,
- devhelp_online: 'https://gnome.pages.gitlab.gnome.org/tracker/docs/developer/',
- install: true,
-)
+gidocgen_conf = configuration_data()
+gidocgen_conf.set('version', meson.project_version())
+gidocgen_conf.set('content', ','.join(content_quoted))
+
+gidocgen_toml = configure_file(
+ input: 'tracker-sparql.toml.in',
+ output: 'tracker-sparql.toml',
+ configuration: gidocgen_conf)
+
+reference = custom_target(
+ 'docgen',
+ input: [ gidocgen_toml, tracker_sparql_gir[0] ],
+ output: 'doc',
+ command: [
+ gidocgen,
+ 'generate',
+ '--quiet',
+ '--config=@INPUT0@',
+ '--output-dir=@OUTPUT@',
+ '--content-dir=@0@'.format(meson.current_source_dir()),
+ '--content-dir=@0@'.format(meson.current_build_dir()),
+ '@INPUT1@',
+ ],
+ depends: [tracker_sparql_gir[0], base_ontology_docs, nepomuk_ontology_docs],
+ depend_files: content)
-meson.add_install_script('install-devhelp.sh', docs_name)
-meson.add_dist_script('dist-docs.sh', docs_name)
+docs_name = 'Tracker-3.0'
+meson.add_install_script('install-devhelp.sh', docs_name, reference)
+meson.add_dist_script('dist-docs.sh', docs_name, reference.full_path())
diff --git a/docs/reference/libtracker-sparql/sitemap.txt b/docs/reference/libtracker-sparql/sitemap.txt
deleted file mode 100644
index a28c62b35..000000000
--- a/docs/reference/libtracker-sparql/sitemap.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-index.md
- overview.md
- examples.md
- tutorial.md
- ontologies.md
- nepomuk.md
- nie-ontology.md
- nao-ontology.md
- nfo-ontology.md
- nco-ontology.md
- nmm-ontology.md
- mfo-ontology.md
- slo-ontology.md
- tracker-ontology.md
- osinfo-ontology.md
- base-ontology.md
- xsd-ontology.md
- dc-ontology.md
- rdf-ontology.md
- rdfs-ontology.md
- nrl-ontology.md
- defining-ontologies.md
- gi-index
- sparql-functions.md
- implementation.md
- limits.md
- performance.md
- sparql-and-tracker.md
- security.md
- migrating-2to3.md
diff --git a/docs/reference/libtracker-sparql/theme-extra/css/tracker-custom.css b/docs/reference/libtracker-sparql/theme-extra/css/tracker-custom.css
deleted file mode 100644
index dc1ed37bf..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/css/tracker-custom.css
+++ /dev/null
@@ -1,3 +0,0 @@
-#page-description img {
- display: inherit;
-}
diff --git a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.js b/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.js
deleted file mode 100644
index 691d48707..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Original at https://github.com/PrismJS/prism.git, under MIT license.
- * Plus adaptions to make it work on ancient prism as used by hotdoc,
- * and our own keywords.
- */
-Prism.languages.sparql = {
- 'comment': {
- pattern: /#.*/,
- greedy: true
- },
- 'multiline-string': {
- pattern: /"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,
- greedy: true,
- alias: 'string',
- inside: {
- 'comment': /#.*/
- }
- },
- 'string': {
- pattern: /"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,
- greedy: true
- },
- 'url': {
- pattern: /<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,
- greedy: true,
- inside: {
- 'punctuation': /[<>]/
- }
- },
- 'function': {
- pattern: /(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,
- inside: {
- 'local-name': {
- pattern: /([^:]*:)[\s\S]+/,
- lookbehind: true
- },
- 'prefix': {
- pattern: /[\s\S]+/,
- inside: {
- 'punctuation': /:/
- }
- }
- }
- },
- 'number': /[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
- 'punctuation': /[{}.,;()[\]]|\^\^/,
- 'boolean': /\b(?:true|false)\b/i,
- 'keyword': [
- /\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRAINT|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|OR|ORDER|RAND|REDUCED|REPLACE|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,
- /\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,
- /\b(?:GRAPH|BASE|PREFIX)\b/i,
- /(?:\ba|@prefix|@base)\b|=/,
- /\b(?:graph|base|prefix)\b/i
- ],
- 'variable': {
- pattern: /[?$]\w+/,
- greedy: true
- },
- 'tag': {
- pattern: /@[a-z]+(?:-[a-z\d]+)*/i,
- inside: {
- 'punctuation': /@/
- }
- }
-};
-Prism.languages.rq = Prism.languages.sparql;
diff --git a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.min.js b/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.min.js
deleted file mode 100644
index 0df615e1e..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-sparql.min.js
+++ /dev/null
@@ -1 +0,0 @@
-Prism.languages.sparql={'comment':{pattern:/#.*/,greedy:true},'multiline-string':{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:true,alias:'string',inside:{'comment':/#.*/}},'string':{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:true},'url':{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:true,inside:{'punctuation':/[<>]/}},'function':{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{'local-name':{pattern:/([^:]*:)[\s\S]+/,lookbehind:true},'prefix':{pattern:/[\s\S]+/,inside:{'punctuation':/:/}}}},'number':/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,'punctuation':/[{}.,;()[\]]|\^\^/,'boolean':/\b(?:true|false)\b/i,'keyword':[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRAINT|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|OR|ORDER|RAND|REDUCED|REPLACE|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:GRAPH|BASE|PREFIX)\b/i,/(?:\ba|@prefix|@base)\b|=/,/\b(?:graph|base|prefix)\b/i],'variable':{pattern:/[?$]\w+/,greedy:true},'tag':{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{'punctuation':/@/}}};Prism.languages.rq=Prism.languages.sparql;
diff --git a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.js b/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.js
deleted file mode 100644
index 4d588f716..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Original at https://github.com/PrismJS/prism.git, under MIT license */
-Prism.languages.turtle = {
- 'comment': {
- pattern: /#.*/,
- greedy: true
- },
- 'multiline-string': {
- pattern: /"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,
- greedy: true,
- alias: 'string',
- inside: {
- 'comment': /#.*/
- }
- },
- 'string': {
- pattern: /"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,
- greedy: true
- },
- 'url': {
- pattern: /<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,
- greedy: true,
- inside: {
- 'punctuation': /[<>]/
- }
- },
- 'function': {
- pattern: /(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,
- inside: {
- 'local-name': {
- pattern: /([^:]*:)[\s\S]+/,
- lookbehind: true
- },
- 'prefix': {
- pattern: /[\s\S]+/,
- inside: {
- 'punctuation': /:/
- }
- }
- }
- },
- 'number': /[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
- 'punctuation': /[{}.,;()[\]]|\^\^/,
- 'boolean': /\b(?:true|false)\b/,
- 'keyword': [
- /(?:\ba|@prefix|@base)\b|=/,
- /\b(?:graph|base|prefix)\b/i
- ],
- 'tag': {
- pattern: /@[a-z]+(?:-[a-z\d]+)*/i,
- inside: {
- 'punctuation': /@/
- }
- }
-};
-Prism.languages.trig = Prism.languages['turtle'];
diff --git a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.min.js b/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.min.js
deleted file mode 100644
index eaa96996e..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/prism_components/prism-turtle.min.js
+++ /dev/null
@@ -1 +0,0 @@
-Prism.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:true|false)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:graph|base|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},Prism.languages.trig=Prism.languages.turtle; \ No newline at end of file
diff --git a/docs/reference/libtracker-sparql/theme-extra/templates/navbar_links.html b/docs/reference/libtracker-sparql/theme-extra/templates/navbar_links.html
deleted file mode 100644
index ad72a1401..000000000
--- a/docs/reference/libtracker-sparql/theme-extra/templates/navbar_links.html
+++ /dev/null
@@ -1,6 +0,0 @@
-@require(page)
-
-<li>
- <a href="https://gnome.pages.gitlab.gnome.org/tracker/">Website</a>
-</li>
-
diff --git a/docs/reference/libtracker-sparql/tracker-sparql.toml.in b/docs/reference/libtracker-sparql/tracker-sparql.toml.in
new file mode 100644
index 000000000..78d01838a
--- /dev/null
+++ b/docs/reference/libtracker-sparql/tracker-sparql.toml.in
@@ -0,0 +1,60 @@
+[library]
+version = "@version@"
+browse_url = "https://gitlab.gnome.org/GNOME/tracker/"
+repository_url = "https://gitlab.gnome.org/GNOME/tracker.git"
+website_url = "https://tracker.gnome.org/"
+authors = "Tracker Development Team"
+logo_url = "logo.svg"
+license = "GPL-2.1-or-later"
+description = "Low-footprint RDF triple store with SPARQL 1.1 interface"
+
+dependencies = [ "GObject-2.0", "Gio-2.0" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://docs.gtk.org/gobject/"
+
+ [dependencies."Gio-2.0"]
+ name = "Gio"
+ description = "GObject Interfaces and Objects, Networking, IPC, and I/O"
+ docs_url = "https://docs.gtk.org/gio/"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = false
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/tracker/-/blob/master/"
+
+[extra]
+content_files = [
+ @content@,
+]
+content_images = [
+ "logo.svg",
+ "images/icon-deprecated.svg",
+ "images/icon-fulltextindexed.svg",
+ "images/icon-multivalue.svg",
+ "images/icon-notify.svg",
+ "images/icon-superproperty.svg",
+ "images/triple-graph-1.png",
+ "images/triple-graph-2.png",
+ "images/triple-graph-3.png",
+]
+
+urlmap_file = "urlmap.js"
+
+# Overrides
+[[object]]
+# Deprecation macros don't matter to anyone but us
+pattern = "DEPRECATED_IN.*"
+hidden = true
+
+[[object]]
+# Object type name capitalization messes with gi-docgen matching of type macros
+pattern = "ENDPOINT_DBUS.*"
+hidden = true
diff --git a/docs/reference/libtracker-sparql/urlmap.js b/docs/reference/libtracker-sparql/urlmap.js
new file mode 100644
index 000000000..67e8a251f
--- /dev/null
+++ b/docs/reference/libtracker-sparql/urlmap.js
@@ -0,0 +1,6 @@
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+]
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index 8ef80ee9f..58d222006 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -1,3 +1,3 @@
-docpath = join_paths(datadir, 'gtk-doc')
+docpath = join_paths(datadir)
subdir('libtracker-sparql')