def article(name): if name.endswith(".html"): return redirect(url_for("article", name=name.replace(".html", ""))) try: return render_template(name + ".html") except jinja2.exceptions.TemplateNotFound: index = dict(iteritems(INDEX)) reference_name = name.replace("_", " ") return redirect(get_hyperlink_target(index, reference_name))
def search_view(): if not os.path.isdir(INDEX_PATH): os.mkdir(INDEX_PATH) search_index = search.get_or_create_index(INDEX_PATH, SCHEMA, SRC) querystring = request.args.get('q') results = list(search.search(search_index, querystring)) # Redirect to article if a direct hit is found in the INDEX index = {k.lower(): v for k, v in iteritems(INDEX)} for result in results: reference_name = str(querystring).lower() try: target = get_hyperlink_target(index, reference_name) except KeyError: pass else: return redirect(target) return render_template("_layouts/search.html", querystring=querystring, results=results)
def search_view(): if not os.path.isdir(INDEX_PATH): os.mkdir(INDEX_PATH) search_index = search.get_or_create_index(INDEX_PATH, SCHEMA, SRC) querystring = request.args.get('q') results = list(search.search(search_index, querystring)) if request.args.get('follow'): # Redirect to article if a direct hit is found in the INDEX index = {k.lower(): v for k, v in iteritems(INDEX)} for result in results: reference_name = str(querystring).lower() try: target = get_hyperlink_target(index, reference_name) except KeyError: pass else: return redirect(target) return render_template("_layouts/search.html", querystring=querystring, results=results)
def get_canonical_name(self, name): """Find the canonical name for *name*.""" index = dict(iteritems(INDEX)) reference_name = name.replace("_", " ") return get_hyperlink_target(index, reference_name)
import collections import json import docutils.nodes import docutils.parsers.rst import docutils.utils import docutils.frontend from models import Corpus from rst import iteritems, get_hyperlink_target from settings import INDEX DICT = dict(iteritems(INDEX)) def get_canonical_name(name): reference_name = name.replace("_", " ") return get_hyperlink_target(DICT, reference_name) class ReferenceVisitor(docutils.nodes.NodeVisitor): def __init__(self, doc): super().__init__(doc) self._references = [] @property def references(self): return self._references def visit_reference(self, node: docutils.nodes.reference) -> None:
def index(): reference_names = [k for k, _ in iteritems(INDEX)] return render_template("_layouts/index.html", anchors=reference_names)