From ca4791dba46b0c285763d3dd76a9c8a61b279a35 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 6 Oct 2019 17:05:50 -0400 Subject: users-guide: Rework pragma key generation Previously we had a hack to handle the case of multi-token SPECIALISE pragmas. Now we use a slightly more general rule of using a prefix of tokens containing only alphabetical characters. --- docs/users_guide/conf.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'docs/users_guide/conf.py') diff --git a/docs/users_guide/conf.py b/docs/users_guide/conf.py index c3d5a3590c..1f6f8b5b11 100644 --- a/docs/users_guide/conf.py +++ b/docs/users_guide/conf.py @@ -147,14 +147,16 @@ def parse_ghci_cmd(env, sig, signode): return name def parse_pragma(env, sig, signode): + # Collect a prefix of alphabetical tokens to use as the pragma name parts = sig.split(' ') - idx = parts[0] + idx_parts = [] + for part in parts: + if all(c.isalpha() or c == "_" for c in part): + idx_parts.append(part) + else: + break + idx = '-'.join(idx_parts) - # To avoid re-using the same HTTP anchor #pragma-SPECIALIZE in multiple - # places, we disambiguate the anchor by adding the second word after it (if - # one exists). - if idx == "SPECIALIZE" and 1 in parts and parts[1].isalpha(): - idx += "-" + parts[1] name = '{-# ' + sig + ' #-}' signode += addnodes.desc_name(name, name) return idx -- cgit v1.2.1