Skip to content

Commit 4c4e3c0

Browse files
committed
Fixed numeric tags breaking search
1 parent 3fbd048 commit 4c4e3c0

File tree

2 files changed

+44
-4
lines changed

2 files changed

+44
-4
lines changed

material/plugins/search/plugin.py

+22-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
2020

21+
import logging
22+
23+
from mkdocs.commands.build import DuplicateFilter
2124
from mkdocs.contrib.search import SearchPlugin as BasePlugin
2225
from mkdocs.contrib.search.search_index import SearchIndex as BaseIndex
2326

@@ -44,12 +47,29 @@ def add_entry_from_context(self, page):
4447
super().add_entry_from_context(page)
4548
entry = self._entries[index]
4649

47-
# Add document tags
50+
# Add document tags, if any
4851
if page.meta.get("tags"):
49-
entry["tags"] = page.meta["tags"]
52+
if type(page.meta["tags"]) is list:
53+
entry["tags"] = [
54+
str(tag) for tag in page.meta["tags"]
55+
]
56+
else:
57+
log.warning(
58+
"Skipping 'tags' due to invalid syntax [%s]: %s",
59+
page.file.src_path,
60+
page.meta["tags"]
61+
)
5062

5163
# Add document boost for search
5264
if "search" in page.meta:
5365
search = page.meta["search"]
5466
if "boost" in search:
5567
entry["boost"] = search["boost"]
68+
69+
# -----------------------------------------------------------------------------
70+
# Data
71+
# -----------------------------------------------------------------------------
72+
73+
# Set up logging
74+
log = logging.getLogger("mkdocs")
75+
log.addFilter(DuplicateFilter())

src/plugins/search/plugin.py

+22-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
2020

21+
import logging
22+
23+
from mkdocs.commands.build import DuplicateFilter
2124
from mkdocs.contrib.search import SearchPlugin as BasePlugin
2225
from mkdocs.contrib.search.search_index import SearchIndex as BaseIndex
2326

@@ -44,12 +47,29 @@ def add_entry_from_context(self, page):
4447
super().add_entry_from_context(page)
4548
entry = self._entries[index]
4649

47-
# Add document tags
50+
# Add document tags, if any
4851
if page.meta.get("tags"):
49-
entry["tags"] = page.meta["tags"]
52+
if type(page.meta["tags"]) is list:
53+
entry["tags"] = [
54+
str(tag) for tag in page.meta["tags"]
55+
]
56+
else:
57+
log.warning(
58+
"Skipping 'tags' due to invalid syntax [%s]: %s",
59+
page.file.src_path,
60+
page.meta["tags"]
61+
)
5062

5163
# Add document boost for search
5264
if "search" in page.meta:
5365
search = page.meta["search"]
5466
if "boost" in search:
5567
entry["boost"] = search["boost"]
68+
69+
# -----------------------------------------------------------------------------
70+
# Data
71+
# -----------------------------------------------------------------------------
72+
73+
# Set up logging
74+
log = logging.getLogger("mkdocs")
75+
log.addFilter(DuplicateFilter())

0 commit comments

Comments
 (0)