codelenny / bike-workout-dsl Goto Github PK
View Code? Open in Web Editor NEWA DSL for generating bike workout plans
A DSL for generating bike workout plans
Simplify the compiler by using a lexer instead of using grammar roles for everything.
Variables should be defined in:
$i
)And variables should be usable as raw values or as math (${i - 1}
) in:
Produce step-by-step guides for writing a new workout plan.
5m at 50% FTP
)Allow the user to specify the values of variables as CLI arguments
Allow looping sections, such as intervals
"Intervals" 5 times {
"Activity 1" ...
}
"Intervals" $i 0 to 5 {
"Activity 1" ...
}
"Intervals" $i 1 to 10 by 2 {
"Activity 1" ...
}
Define the following words, and link to them throughout the documentation:
It would be good for workout files to be (optionally) named with a date template such as $YYYY-$MM-$DD_Workout_1
.
--start-date
to specify the first workout date--date-prefix
to prefix output filesWorkout#getFileName
to optionally prefix datesThe FIT specification allows multiple FIT files to be concatted into a single file.
Plan
class does (bundling workouts)?If so, add a compilation config/flag/variable, and concat workouts after compiling fit files (potentially tweaking the compilation for each workout to support the concat)
(See section 3.3.4 Chained FIT files
in D00001275 Flexible & Interoperable Data Transfer (FIT) Protocol Rev 2.3
, included in ANT's FIT SDK)
Write the text section of the output files to supply commentary with timestamps.
Like codecov, put a URL to the latest documentation preview (e.g. https://codelenny.gitlab.io/-/bike-workout-dsl/-/jobs/195760938/artifacts/docs/out/index.html) in pull requests, as a GitLab CI post-script command.
powergful
)See Workout#getFileName
for example.
Let activities be defined as a constant or function, and then instantiated inside a workout
Allow target strength to be specified as a gradient, e.g. 5..10w
(or ->
? 5 to 10w
?)
Will allow using BPM/FTHR modes
Allow users to leave dialog entries, either for between activities or at specific times, as raw entries, instead of inside activities.
Instead of creating lots of compiled grammars, just compile the grammar once, and change the grammar's "start":
const ActivityName = nearley.Grammar.fromCompiled(Activity);
ActivityName.start = "ActivityName";
(Syntax has been tested)
This will:
Jakefile
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.