From 959ea0df6056a8489e1bad1109b3f2575eae9602 Mon Sep 17 00:00:00 2001 From: Michael Szell Date: Sun, 9 Aug 2026 12:33:13 +0200 Subject: [PATCH 1/2] Add logo and when to use to readme --- README.md | 7 ++++++- docs/source/_static/logo_fixbikenet.png | Bin 0 -> 10822 bytes 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 docs/source/_static/logo_fixbikenet.png diff --git a/README.md b/README.md index 6a5d4c9..e2f16c7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Bike Net Kit / Fix Bike Net +# FixBikeNet [![PyPI Version](https://img.shields.io/pypi/v/fixbikenet?color=10d249)](https://pypi.org/project/FixBikeNet/) [![Docs](https://github.com/BikeNetKit/FixBikeNet/actions/workflows/docs.yml/badge.svg)](https://bikenetkit.github.io/FixBikeNet/) @@ -9,6 +9,11 @@ The Python package `fixbikenet` identifies the most important gaps to fill in a FixBikeNet is a decision support tool for urban planners. It is also useful for proactive citizens to help inform their city about data-driven improvements, and it aims to foster research on bicycle networks. +## When to use +FixBikeNet works well for cities or areas that have a well developed -but not yet perfect- bicycle network. Recommended example cities to fix: Aalborg, Amsterdam, Copenhagen + +For alternative approaches, or for cities with less developed bicycle networks, consider using [LinkBikeNet](https://github.com/BikeNetKit/LinkBikeNet) or extending the existing network with [GrowBikeNet](https://github.com/BikeNetKit/GrowBikeNet). + ## Installation ### The easy way diff --git a/docs/source/_static/logo_fixbikenet.png b/docs/source/_static/logo_fixbikenet.png new file mode 100644 index 0000000000000000000000000000000000000000..9606c18643e77cd9256a2073b6814cb7476fec23 GIT binary patch literal 10822 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 Ubli4~AHJZ;ORIp2- Date: Sun, 9 Aug 2026 12:42:37 +0200 Subject: [PATCH 2/2] Add logo to docs, make conf consistent with gbn --- README.md | 2 +- docs/source/_static/favicon.png | Bin 0 -> 455 bytes docs/source/_static/logo_fixbikenet.svg | 6 ++++++ docs/source/conf.py | 13 ++++++++----- docs/source/index.rst | 17 ++++++++++++++--- 5 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 docs/source/_static/favicon.png create mode 100644 docs/source/_static/logo_fixbikenet.svg diff --git a/README.md b/README.md index e2f16c7..bfb7ccd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FixBikeNet +# FixBikeNet [![PyPI Version](https://img.shields.io/pypi/v/fixbikenet?color=10d249)](https://pypi.org/project/FixBikeNet/) [![Docs](https://github.com/BikeNetKit/FixBikeNet/actions/workflows/docs.yml/badge.svg)](https://bikenetkit.github.io/FixBikeNet/) diff --git a/docs/source/_static/favicon.png b/docs/source/_static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..064924ca517f1d67fdfb1d6106c0eb5eb325463b GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dymH|E?uI>dsw%6rtuFGOUH?Rr9 zROWr&{}yP7P)U$qFax{Lq_q97zFW(=mfTx1f1PgVT2ZwI1_nlLPZ!4!i{7ch7yFJV zaD-%wMwj3H^k2SOiKA+EOws26Ya^}~FYeR_D6CoXhs$14P}rc;#bDh>X36AFx=(UH zuD*OLBQ|kT)T{UaM^~F)1xov#UEeFR~5jJdZ9rd0)sgvWM$z#l$8Gf3bU`*%FQqcyqn?ZhKfeR@vn#5zWGBvr3?`1 + + + + + diff --git a/docs/source/conf.py b/docs/source/conf.py index ce0e6fb..a3b374f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -61,12 +61,15 @@ ### select html theme html_theme = "furo" +html_logo = "_static/logo_fixbikenet.svg" +html_favicon = "_static/favicon.png" html_theme_options = { - "pygment_light_style": "tango", - "logo": { - "image_light": "logo.png", - "image_dark": "logo.png", - }, + "sidebar_hide_name": True, + "source_repository": "https://github.com/BikeNetKit/FixBikeNet/", + "source_branch": "main", + "source_directory": "docs/source/", + "top_of_page_buttons": ["view", "edit"], + "navigation_with_keys": True, "light_css_variables": { "color-brand-primary": "#096a51", "color-brand-content": "#096a51", diff --git a/docs/source/index.rst b/docs/source/index.rst index 2b000cd..d3258a1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -6,11 +6,16 @@ FixBikeNet |version| documentation =================================== -The Python package ``fixbikenet`` identifies the most important gaps to fill in a city's bicycle network. It is hosted on `Github `__, part of `BikeNetKit `__. +The Python package ``fixbikenet`` identifies the most important gaps to fill in a city's bicycle network. You can download street and bike network data with a single line of code, simulate different bicycle network fixing scenarios, and export and plot the resulting prioritized gaps. It is hosted on `Github `__, part of `BikeNetKit `__. -The software downloads and pre-processes data from OpenStreetMap, identifies the gaps, saves the results, creates plots and videos. The source code builds on `the code from the -research paper `__ *Automated Detection of Missing Links in Bicycle Networks*. +FixBikeNet is a decision support tool for urban planners. It is also useful for proactive citizens to help inform their city about data-driven improvements, and it aims to foster research on bicycle networks. + +When to use +----------- + +FixBikeNet works well for cities or areas that have a well developed -but not yet perfect- bicycle network. Recommended example cities to fix: Aalborg, Amsterdam, Copenhagen +For alternative approaches, or for cities with less developed bicycle networks, consider using `LinkBikeNet `__ or extending the existing network with `GrowBikeNet `__. Setup and use ------------- @@ -24,6 +29,12 @@ is a good place to start, which also explains how the package works in detail. F .. TBA +Source +------ + +The source code builds on `the code from the +research paper `__ *Automated Detection of Missing Links in Bicycle Networks*. + How to cite -----------