<

Creating Challenges

by
elnudev, last updated June 17, 2026
Contents

In addition to the weekly official Tegaki Tuesday challenges, you can also create your own community challenges to submit to!

To create a challenge, use the Wizard to automatically format for you, then do a quick pass to make sure that it has inferred the correct furigana and dictionary link choices. While the Wizard is smart, it still has to guess readings from context (for instance, is 空 read そら or から ?) and it will completely miss more complex literary devices such as gikun ()(くん) .

  • Note that in order to use the Wizard, you must be both a member of a participating Discord server and have submitted at least once.
  • Admins may edit your challenges to correct mistakes.
  • Before publishing your challenge, be sure to edit the slug (the name at the top of the page) so it is something identifiable rather than the default three random words. Once someone submits to your challenge, this is no longer editable.

The Wizard

Click on the New challenge link in the navbar to the left of your profile picture, paste in your Japanese lyrics, fill in a few details about the song (its title with furigana1 and a link to the music), and let it run.

Behind the scenes, the Wizard reads through your lyrics and does the tedious parts for you: it splits the passage into individual words, figures out the reading (furigana) for each one, tags what kind of word it is, and links each word to its dictionary entry on Jisho.org . When it finishes, you get a draft challenge you can look over, fix up if needed, and publish.

Finding an English translation

Do not use machine translation. If you don't want to translate the challenge yourself, one of the following sites is probably your best bet:

Be sure to add a translation credit. If you didn't fill out the translation section of the Wizard, you can still add one later by manually adding the translation: key (see Translation below).

Writing a challenge by hand

When you create a challenge, what you're really editing is a block of text in a format called YAML according to the challenge schema. Once you see a couple examples, you'll see it's really quite simple.

Beyond the example in this tutorial, you can view the raw formatting for any challenge on the site by clicking on the icon next to the challenge content if you're wondering how to do something specific.

To demonstrate, we will be looking at the formatting of the first two lines of Tegaki Tuesday #85 — (さい)()ての(はな):

()(かがみ)(うつ)した (いま)(むか)(おも)(かげ)
(きみ)(おも)いながら 「(はな)」を(さが)(たび)()

A vestige of once upon a time, being reflected in the hand mirror
Journey to find the "flowers" while thinking of you

The overall structure

The structured part of the challenge sits between two lines of three dashes (---) that delimit the boundary of the YAML frontmatter, and is made of a handful of labelled sections:

---
japanese:
  # the formatted lyrics
english:
  # English translation
song:
  # the song's title
media:
  # a link to the music
translation:
  # translation credit
---

Only japanese: is really required; the rest just describe where the passage came from. Indentation (the spaces at the start of a line) is meaningful in YAML: it's how the format knows a word belongs to a line, or a reading belongs to a word. Keep things lined up exactly as the examples show.

Below the closing --- you can optionally add body text that appears beneath the lyrics on the challenge page. It's ordinary Markdown (the same way you format messages in Discord!) that also supports a custom furigana syntax.1

We'll build the japanese: block first, then fill in the shorter sections after.

Lines

Inside japanese:, every line of lyrics begins with - - - (three dashes, with spaces between). So our two lines start out as:

japanese:
- - - # …the words of "手鏡に映した 今は昔の面影" go here…
- - - # …the words of "君を想いながら 「花」を探す旅路" go here…

Most lines have just one subline, so the triple dash is almost always what is written at the beginning of a challenge line.2 For a blank line between verses, use a line that reads - - - dictionary: ~ (or - - - dictionary: null). Occasionally you'll want to split one line in the original lyrics into several visual rows, that's what sublines are for; see Sublines below.

Words

After the - - -, a line is just a list of its words, each starting with a dash (-). Every word has up to three parts:

  • pos: (part of speech): noun, verb, adverb, adjective, particle, or phrase (use phrase for "Expression", "Conjunction", or multi-word entries in Jisho).
  • text: the word itself, with its reading.
  • dictionary: optional; which word on Jisho.org to point the word's dictionary link to. e.g. dictionary: will point to https://jisho.org/word/私 . If you put a full URL to another website here instead, that works too.

In the snippets below, one word is shown at a time. In the real file each word is indented under its line's - - -.


()(かがみ) is a noun, and each kanji goes on its own line under text, formatted as kanji: reading. Every kanji must carry a reading:

- pos: noun
  text:
  - : 
  - : かがみ

A run of plain hiragana with no kanji is simpler: the text is written inline on one line. The particle に right after 手鏡 is just:

- pos: particle
  text: 

(うつ)した is a conjugated verb, which is where dictionary: comes in. If we omit dictionary: 映す, then the parsed dictionary field will implicitly fall back to the text content, making the link go to https://jisho.org/word/映した . This page doesn't exist, only the dictionary form https://jisho.org/word/映す does, so we have to specify it manually:

- pos: verb
  text:
  - : うつ
  - した
  dictionary: 映す

Between 映した and (いま) sits a full-width space. Spaces and punctuation aren't words: give them dictionary: ~ (or dictionary: null) and put the mark itself in quotes:

- dictionary: ~
  text: " "

This prevents the punctuation from linking to anything.3


The dictionary entry isn't always exactly the dictionary form of the word as written, but you rarely have to untangle this by hand. The Wizard picks the entry for you, and the Validate button checks each word's reading against Jisho and flags (and in some cases auto-fills) the right link, so these oddities usually get caught for you.4

(おも)い is linked to its more common spelling, (おも)う, rather than 想う:

- pos: verb
  text:
  - : おも
  - 
  dictionary: 思う

This is because only https://jisho.org/word/思う exists and covers 想うunder the "Other forms" section at the bottom.


The rest of the line uses only patterns you've now seen.

The rest of the file

With japanese: done, the remaining sections are short. Each is optional except where you want it.

English translation

english:
- A vestige of once upon a time, being reflected in the hand mirror
- Journey to find the "flowers" while thinking of you

Song title

song:
  japanese: "[祭]{さい}[果]{は}ての[花]{はな}"
  english: # there is no official English title for this challenge, skip
  override: # only if you want to override the default formatting, skip

Use japanese: for a Japanese title, with inline furigana,1 wrapped in quotes. Add an english line only if there's an official English title (don't translate one yourself), or if the "Japanese title" is actually just Latin text.

override: is for cases like in Tegaki Tuesday #36 — the first One Piece opening where you want to have custom formatted text instead of japanese:/english::

song:
  override: the first *One Piece* opening
media: YoeP9w5UIlg

Gets formatted as:

This week's challenge is from the lyrics of the first One Piece opening (YouTube )

Media

media:
  type: youtube
  id: 2zXMxTFAOYE

type: is one of youtube, spotify, or niconico, and id: is the video or track ID. There's a shorthand for YouTube if you prefer: a bare media: 2zXMxTFAOYE means the same thing.

In regards to how to find the ID:

  • YouTube:
    https://www.youtube.com/watch?v=dQw4w9WgXcQ,
    https://youtu.be/dQw4w9WgXcQ?si=IpwVnBqfg7GgZnK8
    dQw4w9WgXcQ
  • Spotify:
    https://open.spotify.com/track/4PTG3Z6ehGkBFwjybzWkR8
    4PTG3Z6ehGkBFwjybzWkR8
  • Niconico:
    https://www.nicovideo.jp/watch/sm3823705
    sm3823705

If you would like to embed some media content that's from an unsupported site, please contact me.

Translation

translation:
  author: Sionnach MacSionnaigh
  site:
    name: Lyrics Translate
    link: https://lyricstranslate.com/en/saihate-no-hana-flowers-sai-hate-end-festival.html

Misc.

suggester: mochamoko
title: "[古]{ふる}[池]{いけ}や[蛙]{かわず}[飛]{と}び[込]{こ}む[水]{みず}の[音]{おと} by Bashō"

There are two other optional top-level fields.

  • suggester: the username of whoever suggested the challenge. This is mostly used for official challenges that were suggested.
  • title: a custom challenge name. It overrides the song-derived title everywhere the challenge is named (cards, nav, page title) and lets a song-less challenge have a name other than its slug. Supports furigana1 and Markdown syntax. (Distinct from song.override: above, which only replaces the text inside the "This week's challenge is from the lyrics of …" line.)

Sublines

A line can be split into multiple sublines: separate visual rows that belong to the same logical line. (There's no difference in the output between a subline and a new line; it's purely for laying lyrics out the way you want.)

To make a row a subline of the line above it, start its first word with two dashes (- -) instead of three:

japanese:
- - - dictionary: ~
      text: "line 1, subline 1, word 1"
    - dictionary: ~
      text: "line 1, subline 1, word 2"
  - - dictionary: ~
      text: "line 1, subline 2, word 1"
- - - dictionary: ~
      text: "line 2, subline 1, word 1"

Putting it all together

Here's the whole thing, with the two lines we built and every section filled in:

---
japanese:
- - - pos: noun
      text:
      - : 
      - : かがみ
    - pos: particle
      text: 
    - pos: verb
      text:
      - : うつ
      - した
      dictionary: 映す
    - dictionary: ~
      text: " "
    - pos: noun
      text:
      - : いま
    - pos: particle
      text: 
    - pos: noun
      text:
      - : むかし
    - pos: particle
      text: 
    - pos: noun
      text:
      - : おも
      - : かげ
- - - pos: noun
      text:
      - : きみ
    - pos: particle
      text: 
    - pos: verb
      text:
      - : おも
      - 
      dictionary: 思う
    - pos: particle
      text: ながら
      dictionary: 乍ら
    - dictionary: ~
      text: " 「"
    - pos: noun
      text:
      - : はな
    - dictionary: ~
      text: ""
    - pos: particle
      text: 
    - pos: verb
      text:
      - : さが
      - 
    - pos: noun
      text:
      - : たび
      - : 
english:
- A vestige of once upon a time, being reflected in the hand mirror
- Journey to find the "flowers" while thinking of you
song:
  japanese: '[祭]{さい}[果]{は}ての[花]{はな}'
media:
  type: youtube
  id: 2zXMxTFAOYE
translation:
  author: Sionnach MacSionnaigh
  site:
    name: Lyrics Translate
    link: https://lyricstranslate.com/en/saihate-no-hana-flowers-sai-hate-end-festival.html
---

That's everything you need. If you get stuck, the Wizard is always there to give you a working starting point you can tweak by hand.

  1. The Markdown challenge body, song.japanese field, and title field all support furigana syntax. [漢]{かん}[字]{じ}(かん)(), [振]{ふ}り[仮]{が}[名]{な}()()(). Always do per-kanji furigana besides cases like [今日]{きょう}今日(きょう) where it's a compound reading that genuinely can't be subdivided. 2 3 4

  2. Why three dashes? japanese: is really a three-layered list (a list of lines, each line a list of sublines, and each subline a list of words), so - - - opens all three levels at once.

  3. The same dictionary: ~ pattern works for runs of English text inside a challenge; see Tegaki Tuesday #248 — きおくの()(いく)、なみだの(ばい)(よう).

  4. Jisho's slug almost always uses kanji, even for words usually written in kana (その → 其の ). And when a kanji has several entries Jisho numbers them, not always in the order you'd expect. For example, is しもべ ("manservant") while the everyday ぼく ("I/me") is 僕-1 , so the common reading is the suffixed one. Write the suffix straight into the field: dictionary: 僕-1.