diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2023-02-24 19:06:09 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2023-02-27 09:18:57 +0100 |
commit | 12c21b71e5c5db0ebfd336d9678ccfbee1ae1168 (patch) | |
tree | 4febbd46dbfe2e50e55bcc6860527ca29c5edcdc /docs | |
parent | 892d1141e47a785709ced1b941bda7426271008e (diff) | |
download | tracker-12c21b71e5c5db0ebfd336d9678ccfbee1ae1168.tar.gz |
docs: Also fix index.json search terms for web UI
Same rationale than devhelp, we want to add ontology-related
search terms there. Generate the JSON files separately, in order
to merge them at the same last stage.
Diffstat (limited to 'docs')
-rwxr-xr-x | docs/reference/libtracker-sparql/generate-devhelp.sh | 5 | ||||
-rw-r--r-- | docs/reference/libtracker-sparql/merge-json.py | 13 | ||||
-rw-r--r-- | docs/tools/tracker-docgen-md.c | 81 |
3 files changed, 93 insertions, 6 deletions
diff --git a/docs/reference/libtracker-sparql/generate-devhelp.sh b/docs/reference/libtracker-sparql/generate-devhelp.sh index d4d8d0f88..34581451a 100755 --- a/docs/reference/libtracker-sparql/generate-devhelp.sh +++ b/docs/reference/libtracker-sparql/generate-devhelp.sh @@ -15,4 +15,9 @@ echo -e " </functions>\n</book>" >>fixed.devhelp2 # Replace devhelp2 file mv fixed.devhelp2 $devhelp_file +# Also fix index.json file for web UI search +index_json="${docs_name}/index.json" +python3 ${MESON_SOURCE_ROOT}/docs/reference/libtracker-sparql/merge-json.py $index_json ../*-ontology.index.json +rm ../*-ontology.index.json 2>/dev/null + popd >/dev/null diff --git a/docs/reference/libtracker-sparql/merge-json.py b/docs/reference/libtracker-sparql/merge-json.py new file mode 100644 index 000000000..7793f9155 --- /dev/null +++ b/docs/reference/libtracker-sparql/merge-json.py @@ -0,0 +1,13 @@ +#!/bin/env python3 +import json, sys + +index = json.load(open(sys.argv[1])) +for x in range (2, len(sys.argv)): + extra = json.load(open(sys.argv[x])) + index['symbols'] += extra['symbols'] + +rewritten = json.dumps(index) + +with open(sys.argv[1], 'w') as f: + f.write(rewritten) + f.close() diff --git a/docs/tools/tracker-docgen-md.c b/docs/tools/tracker-docgen-md.c index 62cc081e4..0aa099135 100644 --- a/docs/tools/tracker-docgen-md.c +++ b/docs/tools/tracker-docgen-md.c @@ -499,11 +499,11 @@ print_toc_classes (FILE *f, } void -generate_keywords (TrackerOntologyModel *model, - TrackerOntologyDescription *description, - GFile *output_location, - GList *classes, - GList *properties) +generate_devhelp_keywords (TrackerOntologyModel *model, + TrackerOntologyDescription *description, + GFile *output_location, + GList *classes, + GList *properties) { gchar *path, *filename; GFile *file; @@ -543,6 +543,74 @@ generate_keywords (TrackerOntologyModel *model, fclose (f); } +void +generate_search_terms (TrackerOntologyModel *model, + TrackerOntologyDescription *description, + GFile *output_location, + GList *classes, + GList *properties) +{ + gchar *path, *filename; + GFile *file; + GList *l; + FILE *f; + gboolean first = TRUE; + + filename = g_strdup_printf ("%s-ontology.index.json", description->localPrefix); + file = g_file_get_child (output_location, filename); + g_free (filename); + + path = g_file_get_path (file); + f = fopen (path, "w"); + g_assert (f != NULL); + g_free (path); + + g_fprintf (f, "{\"symbols\":["); + + for (l = classes; l != NULL; l = l->next) { + TrackerOntologyClass *klass; + g_autofree gchar *desc = NULL; + + if (!first) + g_fprintf (f, ","); + + klass = tracker_ontology_model_get_class (model, l->data); + if (klass->description) + desc = g_strescape (klass->description, NULL); + + g_fprintf (f, "{\"type\": \"content\", \"name\":\"%s\",\"href\":\"%s-ontology.html#%s\",\"summary\":\"%s\"}", + klass->shortname, + description->localPrefix, + klass->shortname, + desc ? desc : ""); + first = FALSE; + } + + for (l = properties; l != NULL; l = l->next) { + TrackerOntologyProperty *prop; + g_autofree gchar *desc = NULL; + + if (!first) + g_fprintf (f, ","); + + prop = tracker_ontology_model_get_property (model, l->data); + if (prop->description) + desc = g_strescape (prop->description, NULL); + + g_fprintf (f, "{\"type\": \"content\", \"name\":\"%s\",\"href\":\"%s-ontology.html#%s\",\"summary\":\"%s\"}", + prop->shortname, + description->localPrefix, + prop->shortname, + desc ? desc : ""); + first = FALSE; + } + + g_fprintf (f, "]}"); + + g_object_unref (file); + fclose (f); +} + /* Generate markdown document for one ontology. */ void ttl_md_print (TrackerOntologyDescription *description, @@ -620,7 +688,8 @@ ttl_md_print (TrackerOntologyDescription *description, print_md_footer (f, description); - generate_keywords (model, description, output_location, classes, properties); + generate_devhelp_keywords (model, description, output_location, classes, properties); + generate_search_terms (model, description, output_location, classes, properties); g_free (upper_name); g_free (introduction); |