diff options
author | Enrico Jörns <ejo@pengutronix.de> | 2025-07-03 12:23:01 +0200 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2025-07-11 08:11:53 -0700 |
commit | 045c6b1669c11e44f4b14c8f44dc4f3458bb4fca (patch) | |
tree | cb62586636cb8f5ae24f841014eba6f6789261b6 /documentation | |
parent | 395f818c91975053b64af802a625430cb661476f (diff) | |
download | poky-045c6b1669c11e44f4b14c8f44dc4f3458bb4fca.tar.gz |
conf.py: improve SearchEnglish to handle terms with dots
While search queries already handled words with hyphens correctly, they
did not do so for words with dots.
To fix this, we
- enhance the word tokenizer to treat both dots ('.') and hyphens ('-')
as valid characters within words.
(For robustness, explicitly exclude dots/hyphens at the start or end
of a word from indexing.)
- adjust query processing to avoid splitting on dots in search input
This allows search queries to correctly match terms such as
'local.conf', 'site.conf', and similar ones now.
Fixes: [YOCTO #14534]
(From yocto-docs rev: 3f88cb85cca8f9128cfaab36882c4563457b03d9)
Signed-off-by: Enrico Jörns <ejo@pengutronix.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 80084a4cabdf7f61c7e93eda8ddbd5bc7d54e041)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'documentation')
-rw-r--r-- | documentation/conf.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/documentation/conf.py b/documentation/conf.py index 1eca8756ab..c07b6c4199 100644 --- a/documentation/conf.py +++ b/documentation/conf.py | |||
@@ -179,13 +179,13 @@ from sphinx.search import SearchEnglish | |||
179 | from sphinx.search import languages | 179 | from sphinx.search import languages |
180 | class DashFriendlySearchEnglish(SearchEnglish): | 180 | class DashFriendlySearchEnglish(SearchEnglish): |
181 | 181 | ||
182 | # Accept words that can include hyphens | 182 | # Accept words that can include 'inner' hyphens or dots |
183 | _word_re = re.compile(r'[\w\-]+') | 183 | _word_re = re.compile(r'[\w]+(?:[\.\-][\w]+)*') |
184 | 184 | ||
185 | js_splitter_code = r""" | 185 | js_splitter_code = r""" |
186 | function splitQuery(query) { | 186 | function splitQuery(query) { |
187 | return query | 187 | return query |
188 | .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}-]+/gu) | 188 | .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}\-\.]+/gu) |
189 | .filter(term => term.length > 0); | 189 | .filter(term => term.length > 0); |
190 | } | 190 | } |
191 | """ | 191 | """ |