diff --git a/.w4c/fields.json b/.w4c/fields.json new file mode 100644 index 0000000..53ba644 --- /dev/null +++ b/.w4c/fields.json @@ -0,0 +1,231 @@ +{ + "$comment": "Field schema for this template (read by w4c-webapi TemplateCatalogService from `.w4c/fields.json`, or the path named by the manifest's `fieldsSchema`). `fields` are extra template-level survey questions merged with the manifest's inline `fields`; `pages.` adds the questions one module/page asks for, asked in the dialog only while that page is selected. Field shape matches the manifest: { key, label, type: text|textarea|number|select|boolean, required?, options?, default?, placeholder? }. Existing inline definitions win, a key is only asked once.", + "schema": 1, + "name": "Interactive Resume survey", + "fields": [ + { + "key": "fullName", + "label": "Full name", + "type": "text", + "required": true, + "placeholder": "Ada Lovelace" + }, + { + "key": "headline", + "label": "Headline", + "type": "text", + "required": true, + "placeholder": "Senior Product Engineer" + }, + { + "key": "targetRole", + "label": "Target role", + "type": "text", + "placeholder": "Staff engineer / tech lead" + }, + { + "key": "location", + "label": "Location", + "type": "text", + "placeholder": "Berlin, Germany · remote" + }, + { + "key": "email", + "label": "Contact email", + "type": "text", + "required": true, + "placeholder": "ada@example.com" + }, + { + "key": "phone", + "label": "Phone (optional)", + "type": "text" + }, + { + "key": "stack", + "label": "Tech stack", + "type": "select", + "required": true, + "default": "Astro", + "options": [ + "Astro", + "Vue 3 + Quasar", + "Nuxt 3", + "Next.js", + "React + Vite", + "SvelteKit", + "SolidStart" + ] + }, + { + "key": "theme", + "label": "Theme", + "type": "select", + "default": "Midnight", + "options": ["Midnight", "Paper", "Sunset", "Mono"] + }, + { + "key": "accentColor", + "label": "Accent colour (hex)", + "type": "text", + "default": "#6366f1", + "placeholder": "#6366f1" + }, + { + "key": "languages", + "label": "Languages", + "type": "text", + "placeholder": "English (fluent), German (B2)" + }, + { + "key": "links", + "label": "Links to display on the site (one per line)", + "type": "textarea", + "placeholder": "github.com/ada\nlinkedin.com/in/ada\nada.dev", + "default": "github.com/ada\nlinkedin.com/in/ada" + }, + { + "key": "profileLinks", + "label": "Profile links to import automatically (one URL per line)", + "type": "textarea", + "placeholder": "https://www.linkedin.com/in/ada\nhttps://github.com/ada\nhttps://ada.dev/about" + }, + { + "key": "notes", + "label": "Additional notes", + "type": "textarea" + } + ], + "pages": { + "hero-intro": [ + { + "key": "tagline", + "label": "Tagline", + "type": "text", + "placeholder": "Product engineer who ships" + }, + { + "key": "animationStyle", + "label": "Intro animation", + "type": "select", + "default": "subtle", + "options": ["subtle", "bold", "none"] + } + ], + "timeline-experience": [ + { + "key": "timelineStyle", + "label": "Timeline layout", + "type": "select", + "default": "vertical", + "options": ["vertical", "horizontal", "minimal"] + }, + { + "key": "showEducation", + "label": "Include education", + "type": "boolean", + "default": "true" + }, + { + "key": "experienceSource", + "label": "Experience entries (one per line)", + "type": "textarea", + "placeholder": "2022–now · Acme · Staff Engineer · led payments\n2019–2022 · Globex · Senior Engineer", + "default": "2022–now · Acme · Staff Engineer · led the payments platform\n2019–2022 · Globex · Senior Engineer · shipping the core product\n2017–2019 · Initech · Software Engineer" + } + ], + "skills-matrix": [ + { + "key": "skillDisplay", + "label": "Skills view", + "type": "select", + "default": "bars", + "options": ["bars", "radar", "cloud"] + }, + { + "key": "showProficiency", + "label": "Show proficiency", + "type": "boolean", + "default": "true" + }, + { + "key": "skillCategories", + "label": "Skill categories (one per line)", + "type": "textarea", + "placeholder": "Languages\nFrontend\nBackend\nCloud & DevOps", + "default": "Languages\nFrontend\nBackend\nData\nCloud & DevOps" + } + ], + "project-showcase": [ + { + "key": "caseStudyStyle", + "label": "Case-study layout", + "type": "select", + "default": "cards", + "options": ["cards", "list", "alternating"] + }, + { + "key": "showTechTags", + "label": "Show tech tags", + "type": "boolean", + "default": "true" + }, + { + "key": "projectCount", + "label": "Case studies", + "type": "number", + "default": "4" + } + ], + "recommendations": [ + { + "key": "recommendationCount", + "label": "Recommendations", + "type": "number", + "default": "3" + }, + { + "key": "showAvatars", + "label": "Show author avatars", + "type": "boolean", + "default": "true" + } + ], + "resume-download": [ + { + "key": "paperFormat", + "label": "Paper format", + "type": "select", + "default": "A4", + "options": ["A4", "Letter"] + }, + { + "key": "includePhoto", + "label": "Include photo on the CV", + "type": "boolean", + "default": "false" + }, + { + "key": "downloadFormats", + "label": "Download formats", + "type": "select", + "default": "PDF", + "options": ["PDF", "DOCX", "PDF + DOCX"] + } + ], + "contact-cta": [ + { + "key": "showAvailability", + "label": "Show availability badge", + "type": "boolean", + "default": "true" + }, + { + "key": "calendarLink", + "label": "Scheduling link (optional)", + "type": "text", + "placeholder": "cal.com/ada/30min" + } + ] + } +}