summaryrefslogtreecommitdiffstats
path: root/mdoc_html.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdoc_html.c')
-rw-r--r--mdoc_html.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/mdoc_html.c b/mdoc_html.c
index dc01f88c..a0e29c72 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,7 +1,8 @@
/* $Id$ */
/*
- * Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2014-2022 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -665,26 +666,34 @@ mdoc_nm_pre(MDOC_ARGS)
static int
mdoc_xr_pre(MDOC_ARGS)
{
- if (NULL == n->child)
+ char *name, *section, *label;
+
+ if (n->child == NULL)
return 0;
+ name = n->child->string;
+ if (n->child->next != NULL) {
+ section = n->child->next->string;
+ mandoc_asprintf(&label, "%s, section %s", name, section);
+ } else
+ section = label = NULL;
+
if (h->base_man1)
- print_otag(h, TAG_A, "chM", "Xr",
- n->child->string, n->child->next == NULL ?
- NULL : n->child->next->string);
+ print_otag(h, TAG_A, "chM?", "Xr",
+ name, section, "aria-label", label);
else
- print_otag(h, TAG_A, "c", "Xr");
+ print_otag(h, TAG_A, "c?", "Xr", "aria-label", label);
- n = n->child;
- print_text(h, n->string);
+ free(label);
+ print_text(h, name);
- if (NULL == (n = n->next))
+ if (section == NULL)
return 0;
h->flags |= HTML_NOSPACE;
print_text(h, "(");
h->flags |= HTML_NOSPACE;
- print_text(h, n->string);
+ print_text(h, section);
h->flags |= HTML_NOSPACE;
print_text(h, ")");
return 0;