Files
open-design/.github/ISSUE_TEMPLATE/tutorial-submission.yml
T
4ee0cf8efd feat(landing): human-in-the-loop tutorial sync + contribute CTA (#4038)
* feat(landing): human-in-the-loop tutorial sync + contribute CTA

Two tutorials-page improvements:

1. Move the daily YouTube sync to a human review step in Feishu. The cron no
   longer generates entries or opens PRs on its own; notify-candidates.ts posts
   a numbered candidate digest (after dedupe + the LLM relevance gate) to a
   Feishu webhook, a maintainer replies which to publish, and
   generate-selected.ts turns the approved ids into entries for a PR. Splits the
   old fetch script into youtube.ts (API client) + notify/generate entries.

2. Add a 'Contribute a tutorial' CTA to the tutorials index that opens GitHub's
   create-file UI prefilled with a frontmatter template, so anyone can propose a
   tutorial via pull request. New i18n keys (en + zh + zh-tw; others fall back
   to en).

* feat(landing): friendlier tutorial contribution via issue form, surfaced higher

Review feedback on the contribute entry point:
- Submitting via a prefilled markdown file was intimidating. Add a GitHub issue
  form (tutorial-submission.yml) — paste a video link, pick a category, done —
  as the primary path; keep the prefilled-PR link as a secondary option for
  contributors who prefer a pull request.
- Move the CTA from the very bottom to directly under the masthead and restyle
  it as a compact, coral-accented bar so it is seen without scrolling past the
  whole list.

Also address PR review:
- notify-candidates: treat Feishu's legacy non-zero StatusCode (returned on an
  HTTP 200) as a failure, not just the newer code field.
- generate-selected: report selected ids that were not generated (unparseable
  args, videos not found on YouTube, write failures) and exit non-zero, so an
  approved selection can't be silently dropped.

---------

Co-authored-by: Joey <276262049+xne998808-ai@users.noreply.github.com>
2026-06-10 06:13:21 +00:00

60 lines
1.8 KiB
YAML

name: 📺 Submit a tutorial
description: Share an Open Design tutorial video to be featured on open-design.ai/tutorials.
title: "[Tutorial]: "
labels: ["tutorials"]
body:
- type: markdown
attributes:
value: |
Thanks for sharing! Made or found a great Open Design tutorial on YouTube? Fill in the video link below — that's the only required field. A maintainer will review it and add it to the tutorials page. No pull request or markdown needed.
- type: input
id: video_url
attributes:
label: YouTube video URL
description: Paste the full link, e.g. https://www.youtube.com/watch?v=XXXXXXXXXXX
placeholder: https://www.youtube.com/watch?v=...
validations:
required: true
- type: input
id: author
attributes:
label: Creator / channel name
description: Who made the video? Leave blank to use the YouTube channel name.
placeholder: e.g. Your channel name
validations:
required: false
- type: dropdown
id: category
attributes:
label: Category
description: Pick the closest fit (optional — a maintainer will confirm).
options:
- Getting started
- Tutorial
- Demo
- Review
- Community
default: 1
validations:
required: false
- type: textarea
id: summary
attributes:
label: What does it cover?
description: One or two sentences on what the video shows (optional).
placeholder: A quick walkthrough of installing Open Design and shipping a first design.
validations:
required: false
- type: checkboxes
id: confirm
attributes:
label: Before you submit
options:
- label: This video is actually about Open Design (nexu-io/open-design), not a different product.
required: true