All checks were successful
release-tag / release-image (push) Successful in 1m52s
173 lines
14 KiB
HTML
173 lines
14 KiB
HTML
{{define "index.html"}}
|
|
<!doctype html>
|
|
<html lang="{{.Lang}}">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>{{.Name}}</title>
|
|
<meta name="description" content="{{index .Text "meta_description"}}">
|
|
{{if not .WhiteLabel}}
|
|
<meta name="theme-color" content="#F8FAFC">
|
|
<link rel="icon" href="/static/brand/favicon.ico" sizes="any">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/static/brand/ucng-icon-32.png">
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/static/brand/ucng-icon-192.png">
|
|
<link rel="icon" type="image/png" sizes="512x512" href="/static/brand/ucng-icon-512.png">
|
|
<link rel="apple-touch-icon" sizes="192x192" href="/static/brand/ucng-icon-192.png">
|
|
<meta property="og:image" content="{{.BaseURL}}/static/brand/ucng-open-graph.png">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
{{end}}
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
</head>
|
|
<body>
|
|
<header class="site-header">
|
|
<a class="brand" href="/?lang={{.Lang}}">{{if .WhiteLabel}}<span class="brand-text">{{.Name}}</span>{{else}}<img src="/static/brand/ucng-logo.png" width="800" height="233" alt="UCNG — Universal Content Notation Guidelines">{{end}}</a>
|
|
<nav><a href="/product?lang={{.Lang}}">{{index .Text "nav_product"}}</a><a href="#generator">{{index .Text "nav_generator"}}</a><a href="#api">{{index .Text "nav_api"}}</a><a href="/background?lang={{.Lang}}">{{index .Text "nav_background"}}</a></nav>
|
|
<label class="language-switch"><span class="sr-only">{{index .Text "field_language"}}</span><select id="page-language">
|
|
{{range .Languages}}<option value="{{.Code}}" {{if eq $.Lang .Code}}selected{{end}}>{{.Name}}</option>{{end}}
|
|
</select></label>
|
|
</header>
|
|
<main>
|
|
<section class="hero">
|
|
<p class="eyebrow">{{index .Text "standard_eyebrow"}}</p>
|
|
<h1>{{index .Text "hero_title"}}</h1>
|
|
<p class="lead">{{index .Text "hero_lead"}}</p>
|
|
<div class="badge-row">
|
|
{{range .Presets}}<a href="/declaration?preset={{.Value}}&lang={{$.Lang}}"><img src="/badge/{{.Value}}.svg?theme=mono&link=auto&lang={{$.Lang}}" alt="{{.Label}}"></a>{{end}}
|
|
</div>
|
|
</section>
|
|
|
|
<section id="generator" class="panel">
|
|
<div>
|
|
<p class="eyebrow">{{index .Text "generator_eyebrow"}}</p>
|
|
<h2>{{index .Text "generator_title"}}</h2>
|
|
<p>{{index .Text "generator_intro"}}</p>
|
|
</div>
|
|
<form id="generator-form" class="generator-grid">
|
|
<label class="wide">{{index .Text "field_mode"}}
|
|
<select id="declaration-mode" name="mode"><option value="single">{{index .Text "mode_single"}}</option><option value="article">{{index .Text "mode_article"}}</option></select>
|
|
</label>
|
|
<div id="single-fields" class="form-subgrid wide">
|
|
<label>{{index .Text "field_preset"}}
|
|
<select id="preset" name="preset">
|
|
{{range .Presets}}<option value="{{.Value}}">{{.Label}}</option>{{end}}
|
|
<option value="">{{index .Text "option_custom"}}</option>
|
|
</select>
|
|
</label>
|
|
<label>{{index .Text "field_component"}}
|
|
<select id="component" name="component">{{range .Components}}<option value="{{.Value}}">{{.Label}}</option>{{end}}</select>
|
|
</label>
|
|
<label>{{index .Text "field_extent"}}
|
|
<select id="extent" name="extent">{{range .Extents}}<option value="{{.Value}}">{{.Label}}</option>{{end}}</select>
|
|
</label>
|
|
<label>{{index .Text "field_review"}}
|
|
<select id="review" name="review">{{range .Reviews}}<option value="{{.Value}}">{{.Label}}</option>{{end}}</select>
|
|
</label>
|
|
<label class="wide">{{index .Text "field_activities"}}
|
|
<input id="activities" name="activities" value="research" placeholder="research,summarisation">
|
|
<small>{{index .Text "activities_help"}}</small>
|
|
</label>
|
|
</div>
|
|
<fieldset id="article-fields" class="article-builder wide" hidden>
|
|
<legend>{{index .Text "article_fields"}}</legend>
|
|
<p>{{index .Text "article_help"}}</p>
|
|
<div class="article-component-grid">
|
|
<div class="article-component"><label>{{index .Text "component_text"}}<select id="article-text" data-review="article-text-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-text-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_research"}}<select id="article-research" data-review="article-research-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "assisted"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-research-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "editorial"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_cover_image"}}<select id="article-cover-image" data-review="article-cover-image-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-cover-image-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_images"}}<select id="article-image" data-review="article-image-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "full"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-image-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "editorial"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_translation"}}<select id="article-translation" data-review="article-translation-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-translation-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_audio"}}<select id="article-audio" data-review="article-audio-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-audio-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_video"}}<select id="article-video" data-review="article-video-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-video-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
<div class="article-component"><label>{{index .Text "component_code"}}<select id="article-code" data-review="article-code-review">{{range .Extents}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label><label>{{index .Text "field_review"}}<select id="article-code-review">{{range .Reviews}}<option value="{{.Value}}" {{if eq .Value "none"}}selected{{end}}>{{.Label}}</option>{{end}}</select></label></div>
|
|
</div>
|
|
</fieldset>
|
|
<label>{{index .Text "field_language"}}
|
|
<select id="lang" name="lang">{{range .Languages}}<option value="{{.Code}}" {{if eq $.Lang .Code}}selected{{end}}>{{.Name}}</option>{{end}}</select>
|
|
</label>
|
|
<label>{{index .Text "field_theme"}}
|
|
<select id="theme" name="theme"><option value="mono">{{index .Text "theme_mono"}}</option><option value="color">{{index .Text "theme_color"}}</option></select>
|
|
</label>
|
|
<label class="wide">{{index .Text "field_assurance"}}
|
|
<select id="assurance" name="assurance">{{range .Assurances}}<option value="{{.Value}}">{{.Label}}</option>{{end}}</select>
|
|
<small id="assurance-description">{{index .Text "assurance_selfDeclared_description"}}</small>
|
|
</label>
|
|
<label class="wide">{{index .Text "field_subject"}}
|
|
<input id="subject" name="subject" type="url" placeholder="https://example.org/article">
|
|
</label>
|
|
|
|
<fieldset class="legal-context-builder wide">
|
|
<legend>{{index .Text "article50_section_title"}}</legend>
|
|
<p class="fieldset-intro">{{index .Text "article50_section_intro"}}</p>
|
|
<div class="legal-check-grid">
|
|
<label class="check-card"><input id="public-interest-text" type="checkbox"><span><strong>{{index .Text "field_public_interest_text"}}</strong><small>{{index .Text "help_public_interest_text"}}</small></span></label>
|
|
<label class="check-card"><input id="deepfake" type="checkbox"><span><strong>{{index .Text "field_deepfake"}}</strong><small>{{index .Text "help_deepfake"}}</small></span></label>
|
|
<label class="check-card"><input id="artistic-context" type="checkbox"><span><strong>{{index .Text "field_artistic_context"}}</strong><small>{{index .Text "help_artistic_context"}}</small></span></label>
|
|
<label class="check-card"><input id="substantial-review" type="checkbox"><span><strong>{{index .Text "field_substantial_review"}}</strong><small>{{index .Text "help_substantial_review"}}</small></span></label>
|
|
<label class="check-card"><input id="editorial-responsibility-confirmed" type="checkbox"><span><strong>{{index .Text "field_editorial_responsibility_confirmed"}}</strong><small>{{index .Text "help_editorial_responsibility_confirmed"}}</small></span></label>
|
|
<label class="check-card"><input id="first-exposure-disclosure" type="checkbox"><span><strong>{{index .Text "field_first_exposure"}}</strong></span></label>
|
|
<label class="check-card"><input id="accessibility-considered" type="checkbox"><span><strong>{{index .Text "field_accessibility"}}</strong></span></label>
|
|
</div>
|
|
<div class="form-subgrid legal-responsibility-fields">
|
|
<label>{{index .Text "field_responsible_name"}}<input id="responsible" maxlength="200"></label>
|
|
<label>{{index .Text "field_responsible_url"}}<input id="responsible-url" type="url" placeholder="https://example.org/imprint"></label>
|
|
</div>
|
|
</fieldset>
|
|
</form>
|
|
|
|
{{if or .CustomText .CustomBadge}}
|
|
<section class="pro-panel enabled" aria-labelledby="pro-title">
|
|
<div class="pro-heading">
|
|
<div><p class="eyebrow">{{index .Text "pro_eyebrow"}}</p><h2 id="pro-title">{{index .Text "pro_title"}}</h2></div>
|
|
<span class="edition-pill">{{.License.Edition}}</span>
|
|
</div>
|
|
<p>{{index .Text "pro_enabled"}}</p>
|
|
<div class="generator-grid compact">
|
|
<label>{{index .Text "custom_title"}}
|
|
<input id="custom-title" maxlength="120" {{if not .CustomText}}disabled placeholder="{{index .Text "pro_required"}}"{{end}}>
|
|
</label>
|
|
<label>{{index .Text "custom_description"}}
|
|
<input id="custom-description" maxlength="500" {{if not .CustomText}}disabled placeholder="{{index .Text "pro_required"}}"{{end}}>
|
|
</label>
|
|
<label>{{index .Text "custom_badge_label"}}
|
|
<input id="badge-label" maxlength="40" {{if not .CustomBadge}}disabled placeholder="{{index .Text "pro_required"}}"{{end}}>
|
|
</label>
|
|
<label>{{index .Text "custom_badge_message"}}
|
|
<input id="badge-message" maxlength="80" {{if not .CustomBadge}}disabled placeholder="{{index .Text "pro_required"}}"{{end}}>
|
|
</label>
|
|
<label>{{index .Text "custom_left_color"}}
|
|
<input id="left-color" maxlength="7" pattern="#[0-9A-Fa-f]{6}" placeholder="#262626" {{if not .CustomBadge}}disabled{{end}}>
|
|
</label>
|
|
<label>{{index .Text "custom_right_color"}}
|
|
<input id="right-color" maxlength="7" pattern="#[0-9A-Fa-f]{6}" placeholder="#2b6cb0" {{if not .CustomBadge}}disabled{{end}}>
|
|
</label>
|
|
</div>
|
|
</section>
|
|
{{end}}
|
|
|
|
<div class="preview-card">
|
|
<p class="eyebrow">{{index .Text "preview"}}</p>
|
|
<a id="preview-link" href="#"><img id="preview-badge" alt="{{index .Text "preview"}}"></a>
|
|
<div class="code-tabs">
|
|
<label>HTML<textarea id="html-code" readonly></textarea></label>
|
|
<label>Markdown<textarea id="markdown-code" readonly></textarea></label>
|
|
<label>JSON-LD URL<textarea id="json-code" readonly></textarea></label>
|
|
<label>{{index .Text "regulatory_api_label"}}<textarea id="assessment-code" readonly></textarea></label>
|
|
</div>
|
|
<button id="copy-html" type="button">{{index .Text "copy_html"}}</button>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="api" class="docs-grid">
|
|
<article><p class="eyebrow">SVG</p><h2>{{index .Text "api_badge_title"}}</h2><code>{{.BaseURL}}/badge/research.svg?lang={{.Lang}}</code><p>{{index .Text "api_badge_desc"}}</p></article>
|
|
<article><p class="eyebrow">JSON-LD</p><h2>{{index .Text "api_manifest_title"}}</h2><code>{{.BaseURL}}/v1/declaration.json?preset=research&lang={{.Lang}}</code><p>{{index .Text "api_manifest_desc"}}</p></article>
|
|
<article><p class="eyebrow">HA</p><h2>{{index .Text "api_stateless_title"}}</h2><p>{{index .Text "api_stateless_desc"}}</p></article>
|
|
</section>
|
|
</main>
|
|
<footer><span>{{if not .WhiteLabel}}UCNG · {{end}}App 2.0.2 · Schema 1.2 · {{.License.Edition}}</span><span><a href="/legal?lang={{.Lang}}">{{legalLabel .Lang "legal"}}</a> · <a href="/privacy?lang={{.Lang}}">{{legalLabel .Lang "privacy"}}</a> · <a href="/accessibility?lang={{.Lang}}">{{legalLabel .Lang "accessibility"}}</a></span></footer>
|
|
<script>window.APP_CONFIG={{.AppConfig}};</script>
|
|
<script src="/static/app.js" defer></script>
|
|
</body>
|
|
</html>
|
|
{{end}}
|