feat(citation): sources are books and articles, websites or YouTube videos

A source was a book's or an article's parts, however a website or a
video had to be squeezed into them. Adding one to a bibliography or a
step now asks what it is, and its form asks for what cites it: a book
or an article its parts as before; a website the page's link, title,
the site's name, authors and year; a YouTube video its link (checked to
be one), title, channel and year. Websites and videos need their link,
marked as required. A video is cited as APA cites one ("[Video]", a
part of YouTube) and plays in the app where it can, else on YouTube.

The kind is kept in the source's JSON, left out for a book or an
article; a kind this app doesn't know reads as a work. The studyset's
payload goes to schema 6 and a step's to schema 4 for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-12 23:55:39 +02:00
commit 61bf7b2fa0
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -780,6 +780,45 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get sourceDiscardConfirm => 'Discard';
@override
String get sourceKind => 'Kind of source';
@override
String get sourceKindWork => 'Book or article';
@override
String get sourceKindWebsite => 'Website';
@override
String get sourceKindVideo => 'YouTube video';
@override
String get sourceWebsiteName => 'Website';
@override
String get sourceWebsiteNameHint => 'Its name, e.g. Wikipedia';
@override
String get sourcePageTitleHint => 'Title of the page';
@override
String get sourceChannel => 'Channel';
@override
String get sourceChannelHint => 'Who published it on YouTube';
@override
String get sourceVideoTitleHint => 'Title of the video';
@override
String get sourceVideoLink => 'Link to the video';
@override
String get sourceVideoLinkInvalid => 'Not a link to a YouTube video';
@override
String get sourcePlay => 'Play video';
@override
String get stepConflict =>
'This step was changed differently on another device. Keep one version to go on writing.';