kopia lustrzana https://github.com/simonw/datasette
Filter out duplicate JS/CSS URLs, refs #291 (testme)
rodzic
c972d79b5a
commit
02870e5731
|
@ -189,15 +189,25 @@ class Datasette:
|
||||||
return {"name": query_name, "sql": query}
|
return {"name": query_name, "sql": query}
|
||||||
|
|
||||||
def asset_urls(self, key):
|
def asset_urls(self, key):
|
||||||
urls_or_dicts = (self.metadata.get(key) or [])
|
|
||||||
# Flatten list-of-lists from plugins:
|
# Flatten list-of-lists from plugins:
|
||||||
urls_or_dicts += list(itertools.chain.from_iterable(getattr(pm.hook, key)()))
|
seen_urls = set()
|
||||||
for url_or_dict in urls_or_dicts:
|
for url_or_dict in itertools.chain(
|
||||||
|
itertools.chain.from_iterable(getattr(pm.hook, key)()),
|
||||||
|
(self.metadata.get(key) or [])
|
||||||
|
):
|
||||||
if isinstance(url_or_dict, dict):
|
if isinstance(url_or_dict, dict):
|
||||||
yield {"url": url_or_dict["url"], "sri": url_or_dict.get("sri")}
|
url = url_or_dict["url"]
|
||||||
|
sri = url_or_dict.get("sri")
|
||||||
else:
|
else:
|
||||||
yield {"url": url_or_dict}
|
url = url_or_dict
|
||||||
|
sri = None
|
||||||
|
if url in seen_urls:
|
||||||
|
continue
|
||||||
|
seen_urls.add(url)
|
||||||
|
if sri:
|
||||||
|
yield {"url": url, "sri": sri}
|
||||||
|
else:
|
||||||
|
yield {"url": url}
|
||||||
|
|
||||||
def extra_css_urls(self):
|
def extra_css_urls(self):
|
||||||
return self.asset_urls("extra_css_urls")
|
return self.asset_urls("extra_css_urls")
|
||||||
|
|
Ładowanie…
Reference in New Issue