From f5ae22e01b415ad558f768cfefef0cf19fd20211 Mon Sep 17 00:00:00 2001 From: Griatch Date: Fri, 12 Jun 2020 22:14:43 +0200 Subject: [PATCH] Remove search/ folder for now --- docs/search/README.md | 11 - docs/search/__init__.py | 188 - docs/search/css/searchbox.css | 152 - docs/search/js/search/lunr.js | 3475 ----------------- docs/search/js/search/main.js | 100 - docs/search/js/search/worker.js | 132 - docs/search/lunr-language/lunr.ar.js | 381 -- docs/search/lunr-language/lunr.da.js | 284 -- docs/search/lunr-language/lunr.de.js | 384 -- docs/search/lunr-language/lunr.du.js | 450 --- docs/search/lunr-language/lunr.es.js | 599 --- docs/search/lunr-language/lunr.fi.js | 541 --- docs/search/lunr-language/lunr.fr.js | 703 ---- docs/search/lunr-language/lunr.hu.js | 565 --- docs/search/lunr-language/lunr.it.js | 617 --- docs/search/lunr-language/lunr.ja.js | 188 - docs/search/lunr-language/lunr.jp.js | 5 - docs/search/lunr-language/lunr.multi.js | 79 - docs/search/lunr-language/lunr.nl.js | 448 --- docs/search/lunr-language/lunr.no.js | 258 -- docs/search/lunr-language/lunr.pt.js | 570 --- docs/search/lunr-language/lunr.ro.js | 558 --- docs/search/lunr-language/lunr.ru.js | 391 -- .../lunr-language/lunr.stemmer.support.js | 304 -- docs/search/lunr-language/lunr.sv.js | 256 -- docs/search/lunr-language/lunr.th.js | 97 - docs/search/lunr-language/lunr.tr.js | 1087 ------ docs/search/lunr-language/lunr.vi.js | 84 - docs/search/searchbox.html | 13 - 29 files changed, 12920 deletions(-) delete mode 100644 docs/search/README.md delete mode 100644 docs/search/__init__.py delete mode 100644 docs/search/css/searchbox.css delete mode 100644 docs/search/js/search/lunr.js delete mode 100644 docs/search/js/search/main.js delete mode 100644 docs/search/js/search/worker.js delete mode 100644 docs/search/lunr-language/lunr.ar.js delete mode 100644 docs/search/lunr-language/lunr.da.js delete mode 100644 docs/search/lunr-language/lunr.de.js delete mode 100644 docs/search/lunr-language/lunr.du.js delete mode 100644 docs/search/lunr-language/lunr.es.js delete mode 100644 docs/search/lunr-language/lunr.fi.js delete mode 100644 docs/search/lunr-language/lunr.fr.js delete mode 100644 docs/search/lunr-language/lunr.hu.js delete mode 100644 docs/search/lunr-language/lunr.it.js delete mode 100644 docs/search/lunr-language/lunr.ja.js delete mode 100644 docs/search/lunr-language/lunr.jp.js delete mode 100644 docs/search/lunr-language/lunr.multi.js delete mode 100644 docs/search/lunr-language/lunr.nl.js delete mode 100644 docs/search/lunr-language/lunr.no.js delete mode 100644 docs/search/lunr-language/lunr.pt.js delete mode 100644 docs/search/lunr-language/lunr.ro.js delete mode 100644 docs/search/lunr-language/lunr.ru.js delete mode 100644 docs/search/lunr-language/lunr.stemmer.support.js delete mode 100644 docs/search/lunr-language/lunr.sv.js delete mode 100644 docs/search/lunr-language/lunr.th.js delete mode 100644 docs/search/lunr-language/lunr.tr.js delete mode 100644 docs/search/lunr-language/lunr.vi.js delete mode 100644 docs/search/searchbox.html diff --git a/docs/search/README.md b/docs/search/README.md deleted file mode 100644 index 1d713230aa..0000000000 --- a/docs/search/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Search plugin - -This is a search plugin that modifies and combines code from two projects: - -- Sphinxcontrib-lunrsearch (https://github.com/rmcgibbo/sphinxcontrib-lunrsearch) - the lunr-index - generation component was reworked to read more than just the api and addded supoort for - using the `lunr` python library to pre-generate the search index. -- Mkdocs lunr search (https://www.mkdocs.org/) - the javascript components with - web-worker support, using the index generated by the above module. - -Parsing of the documentation to create the index is custom. diff --git a/docs/search/__init__.py b/docs/search/__init__.py deleted file mode 100644 index 0236933e93..0000000000 --- a/docs/search/__init__.py +++ /dev/null @@ -1,188 +0,0 @@ -""" -Custom Evennia search plugin. This combines code from sphinxplugin-lunr and the -Mkdocs search implementation. - -""" -from os.path import dirname, join, exists -from os import makedirs, getcwd -import json -import sphinx.search -from six import iteritems -from sphinx.util.osutil import copyfile -from sphinx.jinja2glue import SphinxFileSystemLoader - - -# Sphinx setup - -lunr = None -try: - import lunr -except ImportError: - pass - - -def _make_iter(inp): - """make sure input is an iterable""" - if not hasattr(inp, "__iter__"): - return (inp, ) - return inp - - -class IndexBuilder(sphinx.search.IndexBuilder): - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.filetexts = {} - - def _get_filetext(self, filename): - """Helper to get file content from file in main source dir""" - text = self.filetexts.get(filename) - if not text: - with open(join(dirname(dirname(__file__)), "source", filename), 'r') as fil: - text = self.filetexts[filename] = fil.read() - return text - - def freeze(self): - """Create a usable data structure for serializing.""" - data = super(IndexBuilder, self).freeze() - base_file_names = data['docnames'] - - lunrdocuments = [] - for prefix, items in iteritems(data['objects']): - # This parses API objects - for name, (index, typeindex, _, shortanchor) in iteritems(items): - objtype = data['objtypes'][typeindex] - - if objtype.startswith("py:"): - # Python API entitites - last_prefix = prefix.split('.')[-1] - if objtype == "py:method": - displayname = last_prefix + "." + name - else: - displayname = prefix + "." + name - - else: - last_prefix = prefix.split('.')[-1] - displayname = name - - anchor = f"#{shortanchor}" if shortanchor else '' - lunrdocuments.append({ - 'location': base_file_names[index] + anchor, - 'title': displayname, - 'text': prefix - }) - - titles = data['titles'] - filenames = data['filenames'] - - for titleterm, indices in data['titleterms'].items(): - for index in _make_iter(indices): - - title = titles[index] - text = self._get_filetext(filenames[index]) - anchor = "#" + title.replace(" ", "-") - - lunrdocuments.append({ - 'location': "../../" + base_file_names[index] + ".html" + anchor, - 'title': titles[index], - 'text': text - }) - - # this is just too big for regular use - # for term, indices in data['terms'].items(): - # # In-file terms - # for index in _make_iter(indices): - # ref = next(c) - # lunrdocuments[ref] = { - # 'ref': str(ref), - # 'filename': base_file_names[index], - # 'objtype': "", - # 'prefix': term, - # 'last_prefix': '', - # 'name': titles[index], - # 'displayname': titles[index], - # 'shortanchor': '' - # } - - if not lunr: - print("\npython package `lunr==0.5.8` required in order " - "to pre-build search index.") - return data - - print("\nPre-building search index using python-lunr ...") - # pre-compile the data store into a lunr index - fields = ["location", "title", "text"] - lunr_index = lunr.lunr(ref='location', fields=fields, - documents=lunrdocuments) - lunr_index = lunr_index.serialize() - - # required by js file - page_store = { - "config": {"lang": ['en'], - "separator": r'\s\-]+', - "min_search_length": 3, - "prebuild_index": "python"}, - "docs": lunrdocuments, - "index": lunr_index - } - - lunr_index_json = json.dumps(page_store, sort_keys=True, - separators=(',', ':')) - try: - fname = join( - dirname(__file__), "js", "search", "search_index.json") - with open(fname, 'w') as fil: - fil.write(lunr_index_json) - except Exception as err: - print("Failed saving lunr index to", fname, err) - - return data - - -def builder_inited(app): - """ - Adding a new loader to the template system puts our searchbox.html - template in front of the others, it overrides whatever searchbox.html - the current theme is using. - it's still up to the theme to actually _use_ a file called searchbox.html - somewhere in its layout. but the base theme and pretty much everything - else that inherits from it uses this filename. - """ - app.builder.templates.loaders.insert( - 0, SphinxFileSystemLoader(dirname(__file__))) - - -def copy_static_files(app, _): - """ - Because we're using the extension system instead of the theme system, it's - our responsibility to copy over static files outselves. files = - [join('js', 'searchbox.js'), join('css', 'searchbox.css')] - """ - files = [join('js', 'search', 'main.js'), - join('js', 'search', 'worker.js'), - join('js', 'search', 'lunr.js')] - - if lunr: - files.append(join('js', 'search', "search_index.json")) - - for f in files: - src = join(dirname(__file__), f) - dest = join(app.outdir, '_static', f) - if not exists(dirname(dest)): - makedirs(dirname(dest)) - copyfile(src, dest) - - -def setup(app): - # adds