Open mgeisler opened 1 year ago
Is there already an easy way to distinguish pages without speaker details from ones that already have them? The only way to find them currently is to actively click through "random" pages and try to see if speaker notes are available.
If there is no good mechanism yet that I just missed, what do you think about some automation and/or dashboard to easily get an overview on missing metadata?
Is there already an easy way to distinguish pages without speaker details from ones that already have them? The only way to find them currently is to actively click through "random" pages and try to see if speaker notes are available.
I think grep
or rg
is the only structured way. A command like this could be a start:
rg -g '*.md' -g '!{SUMMARY,README,exercise,solution*,welcome*}.md' --files-without-match '<details>' src | sort
This gives me this list right now:
src/android/aidl/birthday-service.md
src/android/aidl/example-service/deploy.md
src/android/aidl/example-service/implementation.md
src/android/aidl.md
src/android/aidl/types.md
src/android/aidl/types/parcelables.md
src/android/aidl/types/primitives.md
src/android/build-rules/binary.md
src/android/build-rules/library.md
src/android/interoperability/cpp/android-build-rust.md
src/android/interoperability/cpp/generated-cpp.md
src/android/interoperability/cpp.md
src/android/interoperability/java.md
src/android/interoperability.md
src/android/interoperability/with-c/bindgen/c-library.md
src/android/interoperability/with-c/bindgen.md
src/android/interoperability/with-c/calling-rust.md
src/android/interoperability/with-c/hand-written.md
src/android/interoperability/with-c.md
src/android/logging.md
src/android/testing.md
src/bare-metal/android.md
src/bare-metal.md
src/bare-metal/setup.md
src/bare-metal/useful-crates.md
src/borrowing.md
src/chromium/adding-third-party-crates/checking-in.md
src/chromium/adding-third-party-crates/configuring-cargo-toml.md
src/chromium/adding-third-party-crates/configuring-gnrt-config-toml.md
src/chromium/adding-third-party-crates/depending-on-a-crate.md
src/chromium/adding-third-party-crates/downloading-crates.md
src/chromium/adding-third-party-crates/keeping-up-to-date.md
src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-generate-code.md
src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-take-arbitrary-actions.md
src/chromium/adding-third-party-crates/resolving-problems.md
src/chromium/adding-third-party-crates/reviews-and-audits.md
src/chromium/build-rules/unsafe.md
src/chromium/interoperability-with-cpp/error-handling.md
src/chromium.md
src/chromium/policy.md
src/chromium/setup.md
src/chromium/testing/build-gn.md
src/chromium/testing/rust-gtest-interop.md
src/concurrency/about-the-speaker.md
src/concurrency/async-control-flow.md
src/concurrency/async-exercises/afternoon.md
src/concurrency/async-exercises/chat-app.md
src/concurrency/async-exercises.md
src/concurrency/async.md
src/concurrency/async-pitfalls.md
src/concurrency/channels.md
src/concurrency/send-sync/examples.md
src/concurrency/send-sync.md
src/concurrency/shared-state.md
src/concurrency/sync-exercises/dining-philosophers.md
src/concurrency/sync-exercises/link-checker.md
src/concurrency/sync-exercises.md
src/concurrency/threads.md
src/control-flow-basics/break-continue.md
src/control-flow-basics/loops/loop.md
src/control-flow-basics/loops.md
src/control-flow-basics.md
src/credits.md
src/error-handling.md
src/exercises/bare-metal/compass.md
src/exercises/bare-metal/rtc.md
src/exercises/chromium/testing.md
src/generics.md
src/glossary.md
src/hello-world.md
src/iterators.md
src/lifetimes.md
src/memory-management.md
src/methods-and-traits.md
src/modules.md
src/other-resources.md
src/pattern-matching.md
src/references.md
src/running-the-course/course-structure.md
src/running-the-course/keyboard-shortcuts.md
src/running-the-course.md
src/running-the-course/translations.md
src/smart-pointers.md
src/std-traits/read-and-write.md
src/std-types/std.md
src/testing.md
src/testing/other.md
src/thanks.md
src/tuples-and-arrays.md
src/types-and-values.md
src/unsafe-rust.md
src/user-defined-types.md
If there is no good mechanism yet that I just missed, what do you think about some automation and/or dashboard to easily get an overview on missing metadata?
Sure, that's a nice idea. This could be as simple as running the above command when we publish the course on the main
branch. That will show the files somewhere in the CI log files, and we could refer to that output from this issue.
We currently have speaker notes on 165 out of 265 pages.
Notes are very helpful for both instructors and people who read the course on their own, so we want to be as complete as possible here.