Giter Site home page Giter Site logo

androidapsdocs's Introduction

openaps utility belt

These are the core utilities needed to develop a self-built open source artificial pancreas.

This is part of a series of tools to support a self-driven DIY implementation based on the OpenAPS reference design. The tools may be categorized as monitor (collecting data about environment, and operational status of devices and/or aggregating as much data as is relevant into one place), predict (make predictions about what should happen next), or control (enacting changes, and feeding more data back into the monitor).

By proceeding using these tools or any piece within, you agree to the copyright (see LICENSE.txt for more information) and release any contributors from liability.

Check out the OpenAPS documentation to help get you started.

Note: This is intended to be a set of tools to support a self-driven DIY implementation and any person choosing to use these tools is solely responsible for testing and implement these tools independently or together as a system. The DIY part of OpenAPS is important. While formal training or experience as an engineer or a developer is not required, what is required is a growth mindset to learn what are essentially "building blocks" to implement an OpenAPS instance. This is not a "set and forget" system; it requires diligent and consistent testing and monitoring to ensure each piece of the system is monitoring, predicting, and performing as desired. The performance and quality of your system lies solely with you.

Additionally, this community of contributors believes in "paying it forward", and individuals who are implementing these tools are asked to contribute by asking questions, helping improve documentation, and contribute in other ways.

openaps example rig hardware setup

This is not an artificial pancreas, but rather tools which independently allow:

  • monitor - Collect data about environment, and operational status of devices. Aggregate as much data relevant to therapy as possible into one place. We propose a tool, openaps-use as a proof of concept.

  • predict - Can make predictions about what should happen next.

  • control - Can enact changes in the world: emails, placing phone calls, SMS, issuing commands to pumps.

Install

There are two ways to install openaps, from source, and as a python package via setuptools.

The following apt-get dependencies are required (they can be installed through variety of means, in debian/ubuntu and apt based systems the following packages are recommended/required:

sudo apt-get install python python-dev python-setuptools python-software-properties python-numpy

From source

To install from source clone this repo, and issue:

sudo python setup.py develop

From pypi

To install from pypi:

sudo pip install -U openaps

This installs openaps system wide. Do not use openaps commands in the the openaps repo. Only use the openaps directory for hacking on the core library, or for managing upgrades through git. Running openaps inside of the openaps source directory will error in the best case, and mess up your openaps install in the worst case.

Updating
sudo easy_install -ZU openaps

Usage

usage: openaps [-h] [-c C C] [-C CONFIG] [--version] [command] ...

openaps - openaps: a toolkit for DIY artificial pancreas system

positional arguments:
  • command
  • args

optional arguments:

-h, --help            show this help message and exit
-c C C
-C CONFIG, --config CONFIG
--version             show program's version number and exit

Utilities for developing an artificial pancreas system. openaps helps you manage and structure reports for various devices.

All of the device and report add and show commands modify openaps.ini in the current working directory, which is assumed to be a git repo explicitily dedicated to helping develop and configure a DIY artificial pancreas system. This means openaps is an SDK for an artificial pancreas system, not an artificial pancreas system.

See openaps init for setting up a brand new instance of your own openaps, or see the notes below for details on how to convert an existing git repo into an instance of openaps.

Common workflows:

openaps init
openaps device <cmd>
  
  Device commands allow you to match a device driver, with a name
  and a configuration.
  
  add     - add device config to `openaps.ini`
  remove  - remove device from `openaps.ini`
  show    - print device uri, list all by default

openaps use [--format <json,stdout,text>]
            [--output <filename>]
        <device>
        <use>
        [use-args...]

  For each device registered, the vendor implementation provides a
  number of uses.  This allows users to experiment with reports.

openaps report <cmd>

  Reports match a device use to a format and filename.

  add     - add report config to `openaps.ini`
  remove  - remove report from `openaps.ini`
  show    - print report uri, list all by default
  invoke  - run and save report in file

Init new openaps environment

Do not use openaps commands in the the openaps repo. Only use the openaps directory for hacking on the core library, or for managing upgrades through git. Instead change to a new directory, not managed by git: cd ~/Documents.

Setup of new instance:

openaps init myopenaps    - this creates an instance of openaps in a new
                            directory, called myopenaps


cd myopenaps - change directory to root of new repo

A valid instance of openaps is a git repo with a file called openaps.ini present.

openaps will track configuration and some status information inside of openaps.ini.

Init existing git repo as openaps-environment

If you already have a git repo which you would like to become a valid openaps environent, in the root of your repo, run:

touch openaps.ini
git add openaps.ini
git commit -avm 'init openaps'

Now, wth a valid openaps environment, you can register devices for use. A device is implemented by a vendor. openaps provides a modular, language and process independent environment for creating vendors and devices.

Managing devices

To register devices for use, see openaps device commands:

openaps device -h
openaps device add <name> <vendor> [opts...]
eg:
# register a medtronic device named pump
openaps device add pump medtronic 665455
# register a dexcom device named cgm
openaps device add cgm dexcom

Using devices

Now that devices are known, and we have a variety of commands available. We can explore how to produce reports by using devices with the openaps use command:

openaps use <device-name> <use-name> [opts]

openaps use commands can only be used after devices have been added to the openaps.ini config using openaps device add. Eg:

openaps use pump -h        - show available commands for the
                             device known as "pump"
openaps use pump iter_pump 100 - get last 100 pump history records
                             from the device called pump
openaps use cgm -h         - show available commands for the
                             device known as "cgm"
openaps use cgm glucose

Save reports

After experimenting with openaps use commands, users can save reports using the openaps report commands. openaps report commands map openaps use commands to filenames:

openaps report add

Adding a report means configuring a use command with a format and a output, most commonly, a filename is used as the output.

openaps report add <report-name> <report-formatter> <device> <use> [opts]

# add a report, saved in a file called pump-history.json, which is
# JSON format, from device pump using use iter_pump.
openaps report add pump-history.json JSON pump iter_pump 100

# add a report, saved in a file called glucose.json, which is
# JSON format, from device cgm using use glucose.
openaps report add glucose.json JSON cgm glucose

invoke reports to run and save the results of the use

openaps report invoke

Invoking a report means running a use command according to it's configuration.

# invoke the report to create glucose.json
openaps report invoke glucose.json

# invoke the report to create pump-history.json
openaps report invoke pump-history.json

All commands support tab completion, and -h help options to help explore the live help system.

Sample use commands

medtronic

Assuming device is named pump:

usage: openaps-use pump [-h]
                        {Session, bolus, iter_glucose, iter_pump,
                        model, mytest, read_basal_profile_A,
                        read_basal_profile_B,
                        read_basal_profile_std, read_carb_ratios,
                        read_clock, read_current_glucose_pages,
                        read_current_history_pages,
                        read_glucose_data, read_history_data,
                        read_selected_basal_profile,
                        read_settings, read_status,
                        read_temp_basal, reservoir, resume_pump,
                        scan, set_temp_basal, settings, status,
                        suspend_pump}
                        ...

positional arguments:
  {Session, bolus, iter_glucose, iter_pump, model, mytest,
  read_basal_profile_A, read_basal_profile_B,
  read_basal_profile_std, read_carb_ratios, read_clock,
  read_current_glucose_pages, read_current_history_pages,
  read_glucose_data, read_history_data,
  read_selected_basal_profile, read_settings, read_status,
  read_temp_basal, reservoir, resume_pump, scan, set_temp_basal,
  settings, status, suspend_pump}
                        Operation
    Session             session for pump
    bolus               Send bolus.
    iter_glucose        Read latest 100 glucose records
    iter_pump           Read latest 100 pump records
    model               Get model number
    mytest              Testing read_settings
    read_basal_profile_A
                        Read basal profile A.
    read_basal_profile_B
                        Read basal profile B.
    read_basal_profile_std
                        Read default basal profile.
    read_carb_ratios    Read carb_ratios.
    read_clock          Read date/time of pump
    read_current_glucose_pages
                        Read current glucose pages.
    read_current_history_pages
                        Read current history pages.
    read_glucose_data   Read pump glucose page
    read_history_data   Read pump history page
    read_selected_basal_profile
                        Fetch the currently selected basal profile.
    read_settings       Read settings.
    read_status         Get pump status
    read_temp_basal     Read temporary basal rates.
    reservoir           Get pump remaining insulin
    resume_pump         resume pumping.
    scan                scan for usb stick
    set_temp_basal      Set temporary basal rates.
    settings            Get pump settings
    status              Get pump status (alias for read_status)
    suspend_pump        Suspend pumping.

optional arguments:
  -h, --help            show this help message and exit

Some commands like read_glucose_data, read_history_data take a page parameter, describing which page to fetch.

Some commands like bolus, set_temp_basal, take an input parameter which may be - for stdin or a filename containing a json data structure which represents the request.

All commands support -h and --help output.

dexcom

usage: openaps-use cgm [-h] {glucose,iter_glucose,scan} ...

positional arguments:
  {glucose,iter_glucose,scan}
                        Operation
    glucose             glucose (will pull all records)
    iter_glucose <n>       glucose ('n' for the number of records you want)
    scan                scan for usb stick

optional arguments:
  -h, --help            show this help message and exit

License

MIT License

Copyright (c) 2016 Ben West Copyright (c) 2015 Ben West

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

androidapsdocs's People

Contributors

adrianlxm avatar anbraten avatar andries-smit avatar andyrozman avatar blaqone avatar bramine avatar danamlewis avatar dexdan avatar dottedfingertips avatar gregorybel avatar jbfeutz avatar jonaschn avatar legochemist avatar lillycgm avatar maheini avatar mariet1d avatar markvader avatar miloskozak avatar peterleimbach avatar philoul avatar psonnera avatar robertrub avatar roppenheimer avatar tanja3981 avatar teleriddler avatar tim2000s avatar undercliffe10 avatar vlin-der avatar xjoe avatar xjoe2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidapsdocs's Issues

How do we handle links?

Is it ok to add links to the wiki, do we have to be careful about the Content, is there anything in the docs, that says 'we do not guarantee for the Content in the links'?

Confusing description of blue prediction line in screenshots section

* **Light blue** line: zero-temp (predicted BG if temporary basal rate at 0% would be set)

Is this ☝️ statement correct?

It seems to be contradictory with section below:

Prediction line shows how the IOB trajectory line would change if the pump stopped all insulin delivery (0% TBR).

So is it prediction of BG or IOB?

Screenshot to visualise the problem, when TBR at 0% BG should rather rise not fall, right?
image
(from NS with OpenAPS mode)

Dead link to AMA in the OpenAPS documentation

License Issues

The main content of this Wiki is licensed under "GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007".

When creating this repository there has happened that MIT-License was set. This means we would have to ask all (unknown) authors of the old wiki. IMHO the easiest way would be to go back to the original license.

@danamlewis , @typ1-brods , @jotomo , @scottleibrand , @Lillycgm , @roppenheimer, you have been doing edits in the meantime. Are you ok with going back to the original license?

Percentage profile is not correct

This is something that tricked me when going through the objective 3.
If you set a 90 % profile, the example states that the ISF is devided by 0.9, which is not a 10 % increase last time I checked...
And the example image in the docs is also wrong (2.2/0.9 != 2.4) its more like 2.44444. (yes you have 2 digits on some numbers). but an 10 % increase would be: 2.2+0.22=2.42.
image

Yes it's close to a 10 % increase, but lots of us are engineers, and we will have a hard time with this question since you'd have to answer wrong to get it right! Probably more than me that had to check the source-code to get this right ;)
image

To prove the point, lets take something larger: if you set a profile switch of 60 % (not even sure its posible) and an ISF of 10.
10/0.6 = 16,6667, but a 40 % increase of 10 is 14.0!

Or am I misinterpreting this on some way?

NSClient documentation does not reflect actual behavior

Referencing this thread in the AndroidAPS FB group...
https://www.facebook.com/groups/AndroidAPSUsers/permalink/2616961101858624/

The AAPS documentation (right now) indicates that NSClient is intended to be used for remote monitoring and downloads all data (IOB/COB included) that is uploaded to NS by the master phone.

It appears that this is not actually the current behavior of the NSClient app, which performs its own IOB/COB calculations based on the settings configured in the app. If these settings differ from the master phone (or OpenAPS rig, in my case) in any way, then the results of the calculations performed by the NSClient app will produce different results from the master phone, potentially leading to a life threatening situation if a remote caregiver treats based on data displayed in the NSClient app.

These two screenshots show the mismatch in IOB.
Screenshot_20200202-113622
Screenshot_20200202-113612

These two screenshots illustrate the mismatch in COB (as reported by the OpenAPS rig) and the COB reported by NSClient.
Screenshot_20200203-123504
84141493_1036080293444552_7397697751334518784_o

Update DASH history instructions

nightscout/AndroidAPS#2549

Has been merged into dev, which changes the view of the pod history by adding the total amount insulin delivered

Note: This amount is the amount that is in the reservoir on POD connection, so when a bolus is issued, it's the ammount before the bolus was issued.

Question: If I where to pick this up which branch to target?

Restrict search to one language

Is it possible to restrict the search results to a definied language? At present I get results for the topic in every language. So the result list is long.

URL in Install-Git is just for Windows

The URL for the git-download is just for Windows users. So I suggest:

  • mention that it is just for windows

  • or use https://git-scm.com/download/ instead of https://git-scm.com/download/win for anyone.

  • or use the URLs for Windows AND MacOS, Linux-Users should know how to do it

  • I would mention that also step 3 (Path to get executable) is an example for windows as (git).exe is for windows, so MacOS-users with just few knowledge might not know why .exe is written there

  • also in the first sentence: "Let Studio know where is git.exe located: File - Settings" 'git.exe' is mentioned, which is just for Windows, not MacOS/Linux

File:
https://github.com/openaps/AndroidAPSdocs/blob/master/docs/EN/Installing-AndroidAPS/git-install.rst

maxSMBBasalMinutes misleading description

In the latest version of the docs maxSMBBasalMinutes is descriped as followed:

This is an important safety setting. This value determines how much SMB can be given based on the amount of basal insulin in a given time, when it is not covered by COBs.

https://androidaps.readthedocs.io/en/latest/EN/Usage/Open-APS-features.html

According to
https://github.com/MilosKozak/AndroidAPS/blob/08730dfc9a73fa9317a162a41c66a7bc9d2bb387/app/src/main/assets/OpenAPSSMB/determine-basal.js#L1048-L1054

maxSMBBasalMinutes is only used if mealInsulinReq >= iob_data.iob.
Otherwise maxBolus seems to be calculated with the hardcoded value 30.

This means to me if all COBs are covered with Insulin, SMBs can't be bigger than maxSMBBasalMinutes = 30 regardless of what value is set in maxSMBBasalMinutes.

please check if updates for Libre3.md are needed

@maheini
Hi Martin,

please check this and give feedback ideally via PR. The Link Checker Action reports two 404 errors in Libre3.md.

=> The Link is not working anymore. Can you please update or remove the link?!
"(There are several apps to find out if the smartphone is rooted, one of them is e.g. root-checker.org)"

=> The Juggluco App is not available in the Playstore anymore. I thought there was already an update but I can't find it. Can you please check this and update or delete the link/description?
"Now install the Juggluco App from the Playstore (version 4.0.1 or higher). With the help of this app, the blood sugar readings can be sent directly to Xdrip and AndroidAPS. For this purpose, the active sensor (which is registered on Libreview) is used within Juggluco. This also explains why a Libreview account is mandatory.Now install the Juggluco App from the Playstore (version 4.0.1 or higher). With the help of this app, the blood sugar readings can be sent directly to Xdrip and AndroidAPS. For this purpose, the active sensor (which is registered on Libreview) is used within Juggluco. This also explains why a Libreview account is mandatory."

NSClient app - more info needed

Hi,
I'd like to address some minor issues regarding the NSClient app:

1) Naming confusion
It should be made clear whether the NSClient module (of AAPS) is meant or the NSClient app.

2) Download location of NSClient app
Can't be found in the doc.

3) Difference between NSClient and NSClient2 apk
I've found on Gitter:
Only difference is the app name. This way you can install the app twice on the same phone. You can follow 2 different persons/nightscouts with it.

4) NSClient app related to AAPS
A few sentences would be great about it pointing out the key differences: stripped down AAPS, etc.


We are using a system of Dexcom G6, Accu-Chek Combo, Nightscout, xDrip+, AAPS and NSClient app for a few months. Until now NSClient app seems to be the best way to follow somebody, as it can display all info including current insulin activity, and allows some interaction (profile, TT). Taking this into account, the app is not "advertised" enough. I've randomly came across the download location, and had to try NSClient and NSClient2, as I didn't know the diff.

Best regards

// and great appreciation for all the work done

Max IOB example is misleading

In the documentation, when dealing with maxIoB the example used as a starting point says : max daily basal...
This can be understood as total daily basal ...
Could be rephrased with something like max hourly basal rate...
Issue also raised in OpenAPS

Repository Access Request

Hi All,

I have created a new automated build system for AndroidAPS.

I have also clone your repo and created a remote branch, modifing the building / updating APK instructions.

I would like to push my branch, raise a pull request and try to get the changes merged. However I am unable to do this. Could someone grant me access to push my branch please.

Here is a link to the documentation so you can see what I am linking to:
AndroidAPS Automated Build System

This has been tried and tested by a number of users but will continue to grow as experience of supporting users is gained.

some doc update requests

*Release notes for 3.0:
-bg data quality checks/constraints added

*a description of the data quality icons and what this means is missing, see https://www.facebook.com/groups/AndroidAPSUsers/permalink/3130354490519280/
@MilosKozak please help with a good wording for the documentation!

BYOD support for Dexcom One

Hi all,
I am from Europe and I finally started getting coverage for dexcom cgm.
As fun as it is, several days and a couple of sensor later, I can't get that bloody thing to work in any way.
I have tried pretty much all possible options - apps (dexcom, xdrip, BYOD), all the settings.
I still have some hope that maybe BYOD could be the solution. But here's the issue - it does not currently support specifically Dexcom One. I imagine that implementation of it should not be complicated, as the product is basically the same.
Does anyone know if there's any hope for this, or should I be looking for alternatives altogether, as I am getting very tired with this? :)
Thanks!

surreptitious advertising

I find the surreptitious advertising for mevita.de in the image of the basal rate profile inappropriate and would like to suggest to remove the image, or to remove the link.

[suggestion] update the google sheet form: AAPS Omnipod DASH Hardware setups

Few suggestions to improve the form:

  1. from: "Smartphone Brand & Model"
    to: "Smartphone Brand & Model & Provider: ie Samsung S22+ Tmobile"

2)in CGM choices add: G7
in CGM software add: BYODA-DIAKEM (G7 only)

  1. in AAPS version: allow to enter the complete string so we can specify which version of dev specifically like "3.2.0-dev-i"

  2. consider adding a question about "AAPS client display on watch Brand, Model,: Samsung GalaxyWatch4"

Omnipod EROS: There is no way to forcefully wipe/reset the pod state in case of "emergency"

AAPS version 3.0.0.1 release and higher
Driver: Omnipod EROS

Problem description:
The Omnipod EROS driver has a bug that can lead to a situation where users get stuck with a pod registration that can not be "forcefully" discarded. Several users reported running into this problem as a result of Pod failure.

Work around used for not losing Objectives is importing 3.0 settings in AAPS version 2.8.1, discard the Pod and then export preferences that can be imported by AAPS 3.0

Proposed work around
Until the actual bug is solved, but also in general, I think the EROS driver should have a way to "wipe" the Pod state in case of "emergencies". Up to AAPS version 2.8 this could be done by editing the unencrypted preference file.
As of version 3.0 this is no longer an option.

How about an option to clear Pod state when running in developer mode?
This way users have an "escape" option to get out of situations where there is Pod state without option to Discard.
For AAPS 2.8 editing the preference file was used as a last resort

Status AccuChek Insight

HI there,

I wondered about the status of reverse engineering the Insight protocol. Is there any news or plan?

Kind regards

US version of Libre 3 works with new Juggluco

Hi,
Any admin can change the phrase that Libre 3 does not work with the US version.

I tested it on 10/1/2023, and it's working as expected.

I followed the same steps and was able to broadcast the values from xDrip to AAPS.
Libre 3

Priorities on SMB settings page

I'd like to propose to adjust the description of the SMB settings starting from here (https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html#enable-smb).

  1. Change the order of how the settings are listed to reflect the order on the AAPS screen and the priority of how AAPS handles them
  2. Highlight that "Enable SMB with high temp targets" has the highest priority
  3. Highlight that you can either set "Enable SMB always" or use one or multiple of "Enable SMB with COB", "Enable SMB with temp targets", "Enable SMB after carbs"

[DISCUSSION] Migrate docs to markdown.

Issue

Based on technical analysis #999, we could state that the quality of the multi-lingual documentation is poor with over a 1000 broken links and build warning. Despite the many people who have contributed wither their best effort and valuable time in translating the texts, but it resulted in broken mark-up, links and unreachable documentation.

“As a (potential) user I do not trust my live to a medical product that does not have quality documentation!”

The documentation is the first point of interaction for a new user. And the user will assume the there is a relation to the quality of the documentation and the quality of the product. And if he or she does not understand the product, will not start using it.

What should we do? I am sorry to raise the question. Should we continue this way?

Our question is: the effort of the translator’s and maintainers, should it be spent on average to low quality (translated) documentation, or should it focus on have 1 documentation language in excellent quality? Translations are less important these days as more machine translations tools are available and with reasonable to great quality! (What do you think?)

We should either facilitate an easy translatable documentation flow while maintaining the technical quality or drop some languages and make the view documentation languages shine.
My suggestion before we give up translations; use markdown instead of restructure text:

  • Most issues (build warnings) in the translation are caused by crowdin (machine suggested) translations to break the mark up.
  • Links to anchors are broken, /Sample-Setup.html#required-components as the heading Required Components is translated it will always break all the link to the anchor.

To give translated documentation another shot. -My suggestion is do 2 actions;

  • convert the restructured text to markdown and use untranslated header anchors.
  • Language independent anchors

convert to markdown

Pro Markdown

  • Supported by crowdin (rst is not)
  • Links are harder to break. (not space sensitive)
  • No accidental translation of the rst directive
  • MD is easier to understand by users (rst is less common and more technical). google trends
  • md is less technical. rst is more technical a documentation language for programming languages. We don’t use any of the advanced features.

Cons Markdown

  • Migrating files is an effort. Converter
  • Some pending translations might get lost in the migration.
  • Some rst feature are missing. work around

Are we missing some pros and cons… let us know.

Migration Actions:

  • Sync/upload translations from GitHub
  • Gradual migration, one file at the time (and all its translations).
  • Approve pending translations.
  • Merge translation branch into master
  • Fix build warning and link warning in rts files
  • Use Pandocs to convert to markdown (no wrap)
  • Fix heading level, and page title
  • Use standard formatter
  • Commit and merge into master
  • Upload new files with translation to crowdin.

Fix heading anchors

Page URLs are not translated. However all heading anchors are auto-generated which is awesome, however if you work with translations, anchors changed with the heading is translated.

For language independent anchors in markdown we can leverage eval_rst

```eval_rst
.. _settings-aaps:
```
  
## Settings in AAPS (English) / ## Instellingen in AAPS (Dutch)

TODO check alternative MyST syntax, seems simpler (heading_id)=

Actions:

  • After migration to markdown
  • Add the manual anchor
  • Let crowdin propagate the added link into the translated files
  • The old anchors will stay available.
  • Clean up translated anchors (one at the time :( )
  • Consider removing the auto generated headings....

Please share your thoughts on links, quality, md vs rst and translations…

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.