def init_tutorials(app, url_prefix): session = talisker.requests.get_session() discourse_docs = Docs( parser=DocParser( api=DiscourseAPI(base_url="https://discourse.charmhub.io/", session=session), index_topic_id=2628, category_id=34, url_prefix=url_prefix, ), document_template="tutorials/tutorial.html", url_prefix=url_prefix, blueprint_name="tutorials", ) @app.route(url_prefix) def index(): page = flask.request.args.get("page", default=1, type=int) posts_per_page = 12 discourse_docs.parser.parse() metadata = discourse_docs.parser.metadata total_pages = math.ceil(len(metadata) / posts_per_page) return flask.render_template( "tutorials/index.html", navigation=discourse_docs.parser.navigation, forum_url=discourse_docs.parser.api.base_url, metadata=metadata, page=page, posts_per_page=posts_per_page, total_pages=total_pages, active_section="tutorials", ) discourse_docs.init_app(app)
def init_docs(app, url_prefix): discourse_docs = Docs( parser=DocParser( api=DiscourseAPI( base_url="https://forum.snapcraft.io/", session=talisker.requests.get_session(), ), index_topic_id=11127, url_prefix=url_prefix, ), document_template="docs/document.html", url_prefix=url_prefix, ) discourse_docs.init_app(app) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=talisker.requests.get_session(), site="snapcraft.io/docs", template_path="docs/search.html", ), )
def init_docs(app, url_prefix): discourse_index_id = 3394 session = talisker.requests.get_session() discourse_docs = Docs( parser=DocParser( api=DiscourseAPI(base_url="https://discourse.charmhub.io/", session=session), index_topic_id=discourse_index_id, url_prefix=url_prefix, ), document_template="docs/document.html", url_prefix=url_prefix, ) discourse_docs.init_app(app) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=session, site="charmhub.io/docs", template_path="docs/search.html", ), )
def init_docs(app, url_prefix): session = talisker.requests.get_session() discourse_docs = Docs( parser=DocParser( api=DiscourseAPI( base_url="https://forum.snapcraft.io/", session=session, api_key=DISCOURSE_API_KEY, api_username=DISCOURSE_API_USERNAME, get_topics_query_id=2, ), index_topic_id=11127, url_prefix=url_prefix, tutorials_index_topic_id=15409, tutorials_url_prefix="/tutorials", ), document_template="docs/document.html", url_prefix=url_prefix, ) discourse_docs.init_app(app) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=session, site="snapcraft.io/docs", template_path="docs/search.html", ), )
def init_tutorials(app, url_prefix): discourse_index_id = 3393 category_id = 30 session = talisker.requests.get_session() tutorials_docs = Docs( parser=DocParser( api=DiscourseAPI(base_url="https://discourse.juju.is/", session=session), index_topic_id=discourse_index_id, category_id=category_id, url_prefix=url_prefix, ), document_template="tutorials/tutorial.html", url_prefix=url_prefix, blueprint_name="tutorials", ) @app.route(url_prefix) def tutorials(): page = flask.request.args.get("page", default=1, type=int) topic = flask.request.args.get("topic", default=None, type=str) sort = flask.request.args.get("sort", default=None, type=str) posts_per_page = 15 tutorials_docs.parser.parse() if not topic: metadata = tutorials_docs.parser.metadata else: metadata = [ doc for doc in tutorials_docs.parser.metadata if topic in doc["categories"] ] if sort == "difficulty-desc": metadata = sorted(metadata, key=lambda k: k["difficulty"], reverse=True) if sort == "difficulty-asc" or not sort: metadata = sorted(metadata, key=lambda k: k["difficulty"], reverse=False) total_pages = math.ceil(len(metadata) / posts_per_page) return flask.render_template( "tutorials/index.html", navigation=tutorials_docs.parser.navigation, forum_url=tutorials_docs.parser.api.base_url, metadata=metadata, page=page, topic=topic, sort=sort, posts_per_page=posts_per_page, total_pages=total_pages, ) tutorials_docs.init_app(app)
def init_docs(app): discourse_index_id = 1087 tutorials_index_topic_id = 2628 tutorials_url_prefix = "/tutorials" session = talisker.requests.get_session() discourse_docs = Docs( parser=DocParser( api=DiscourseAPI( base_url="https://discourse.charmhub.io/", session=session, api_key=DISCOURSE_API_KEY, api_username=DISCOURSE_API_USERNAME, get_topics_query_id=2, ), index_topic_id=discourse_index_id, url_prefix="/docs", tutorials_index_topic_id=tutorials_index_topic_id, tutorials_url_prefix=tutorials_url_prefix, ), document_template="docs/document.html", url_prefix="/docs", ) discourse_docs.init_app(app) sdk_docs_id = 4449 sdk_docs = Docs( parser=DocParser( api=DiscourseAPI( base_url="https://discourse.charmhub.io/", session=session, api_key=DISCOURSE_API_KEY, api_username=DISCOURSE_API_USERNAME, get_topics_query_id=2, ), index_topic_id=sdk_docs_id, url_prefix="/docs/sdk", tutorials_index_topic_id=tutorials_index_topic_id, tutorials_url_prefix=tutorials_url_prefix, ), document_template="docs/document.html", url_prefix="/docs/sdk", blueprint_name="sdk_docs", ) sdk_docs.init_app(app) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=session, site="juju.is/docs", template_path="docs/search.html", ), )
def init_docs(app): discourse_index_id = 1087 session = talisker.requests.get_session() discourse_docs = Docs( parser=DocParser( api=DiscourseAPI(base_url="https://discourse.charmhub.io/", session=session), index_topic_id=discourse_index_id, url_prefix="/docs", ), document_template="docs/document.html", url_prefix="/docs", ) discourse_docs.init_app(app) sdk_docs_id = 4449 sdk_docs = Docs( parser=DocParser( api=DiscourseAPI(base_url="https://discourse.charmhub.io/", session=session), index_topic_id=sdk_docs_id, url_prefix="/docs/sdk", ), document_template="docs/document.html", url_prefix="/docs/sdk", blueprint_name="sdk_docs", ) sdk_docs.init_app(app) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=session, site="juju.is/docs", template_path="docs/search.html", ), )
# Rename your project below app = FlaskBase( __name__, "microstack.run", template_folder="../templates", static_folder="../static", ) session = talisker.requests.get_session() doc_parser = DocParser( api=DiscourseAPI(base_url="https://discourse.ubuntu.com/", session=session), index_topic_id=18212, url_prefix="/docs", ) if app.debug: doc_parser.api.session.adapters["https://"].timeout = 99 discourse_docs = Docs( parser=doc_parser, document_template="docs/document.html", url_prefix="/docs", ) discourse_docs.init_app(app) @app.route("/") def index(): return render_template("index.html")
"/core/build/notify", view_func=notify_build, methods=["POST"] ) app.add_url_rule("/<path:subpath>", view_func=template_finder_view) url_prefix = "/server/docs" server_docs = Docs( parser=DocParser( api=discourse_api, category_id=26, index_topic_id=11322, url_prefix=url_prefix, ), document_template="/templates/docs/discourse.html", url_prefix=url_prefix, ) server_docs.init_app(app) # Allow templates to be queried from discourse.ubuntu.com app.add_url_rule( "/templates/<filename>", "templates", view_func=show_template, ) tutorials_path = "/tutorials" tutorials_docs = Docs( parser=DocParser( api=discourse_api, category_id=34, index_topic_id=13611, url_prefix=tutorials_path,
index_topic_id=11243, url_prefix="/docs", ), document_template="docs/document.html", url_prefix="/docs", ) app.add_url_rule( "/docs/search", "docs-search", build_search_view( session=session, site="microk8s.io/docs", template_path="docs/search.html", ), ) discourse.init_app(app) @app.route("/") def index(): return render_template("index.html") @app.route("/contact-us") def contact(): return render_template("contact-us.html") @app.route("/thank-you") def thankyou(): return render_template("thank-you.html")
"/core/build/notify", view_func=notify_build, methods=["POST"] ) app.add_url_rule("/<path:subpath>", view_func=template_finder_view) url_prefix = "/server/docs" server_docs = Docs( parser=DocParser( api=discourse_api, category_id=26, index_topic_id=11322, url_prefix=url_prefix, ), document_template="/docs/document.html", url_prefix=url_prefix, ) server_docs.init_app(app) # Allow templates to be queried from discourse.ubuntu.com app.add_url_rule( "/templates/<filename>", "templates", lambda filename: ( flask.render_template(f"templates/{filename}.html"), {"Access-Control-Allow-Origin": "*"}, ), ) tutorials_path = "/tutorials" tutorials_docs = Docs( parser=DocParser( api=discourse_api,
url_prefix=core_services_guide_url, blueprint_name="core-services-guide", ) # app.add_url_rule( # "/core/services/guide/search", # "core-services-guide-search", # build_search_view( # session=session, # site="ubuntu.com/core/services/guide", # template_path="core/services/guide/search-results.html", # search_engine_id=search_engine_id, # ), # ) core_services_guide.init_app(app) # All other routes template_finder_view = TemplateFinder.as_view("template_finder") template_finder_view._exclude_xframe_options_header = True app.add_url_rule("/", view_func=template_finder_view) app.add_url_rule("/<path:subpath>", view_func=template_finder_view) url_prefix = "/server/docs" server_docs = Docs( parser=DocParser( api=discourse_api, index_topic_id=11322, url_prefix=url_prefix, ),
view_func=notify_build, methods=["POST"]) app.add_url_rule("/<path:subpath>", view_func=template_finder_view) url_prefix = "/server/docs" server_docs = Docs( parser=DocParser( api=discourse_api, category_id=26, index_topic_id=11322, url_prefix=url_prefix, ), document_template="/docs/document.html", url_prefix=url_prefix, ) server_docs.init_app(app) # Allow templates to be queried from discourse.ubuntu.com app.add_url_rule( "/templates/<filename>", "templates", lambda filename: ( flask.render_template(f"templates/{filename}.html"), { "Access-Control-Allow-Origin": "*" }, ), ) tutorials_path = "/tutorials" tutorials_docs = Docs(