diff --git a/state_of_html/html2023/sitemap.yml b/state_of_html/html2023/sitemap.yml new file mode 100644 index 00000000..54fe6ee7 --- /dev/null +++ b/state_of_html/html2023/sitemap.yml @@ -0,0 +1,653 @@ +- id: introduction + path: / + showTitle: false + blocks: + - id: survey_intro + blockType: SurveyIntroBlock + disableExport: true + wrapBlock: false + + - id: survey_sponsors + template: sponsors + + - id: survey_partners + template: sponsors + blockType: PartnersBlock + + - id: survey_credits + template: credits + + - id: survey_newsletter + blockType: NewsletterBlock + disableExport: true + wrapBlock: false + + - id: survey_translators + blockType: TranslatorsBlock + disableExport: true + wrapBlock: false + +- id: tshirt + path: /tshirt + showTitle: false + blocks: + - id: tshirt_intro + template: page_introduction + - id: tshirt_block + blockType: TshirtBlock + wrapBlock: false + disableExport: true + +# - id: data_explorer +# titleId: sections.data_explorer.title +# path: /explorer +# blocks: +# - template: page_introduction + +# - id: data_explorer +# showTitle: false +# chartOnly: true +# wrapBlock: false +# template: data_explorer +# parameters: { showNoAnswer: true } +# variables: +# xAxis: user_info__yearly_salary +# yAxis: user_info__years_of_experience + +# - id: takeaways +# path: /takeaways +# blocks: +# - id: takeaways +# blockType: TakeawaysBlock +# disableExport: true +# wrapBlock: false +# items: +# - id: median_salary_2023 +# - id: previous_compensation_2023 +# - id: negotiated_compensation_2023 +# - id: unemployed_respondents_2023 +# - id: job_search_status_2023 +# - id: international_subsidiary_2023 +# - id: remote_work_2023 +# - id: women_vs_men_experience_2023 +# - id: women_vs_men_professional_qualifications_2023 +# - id: overtime_2023 +# - id: programming_languages_2023 + +- id: user_info + titleId: sections.demographics.title + descriptionId: sections.user_info.description.css2023 + path: /demographics + blocks: + - template: page_introduction + + - id: country + template: multiple_options2 + parameters: { limit: 20 } + description: > + While many respondents (**19%**) came from the U.S., we also had strong representation from Germany, France, the U.K., and the Netherlands (**24% combined**), reflecting the liveliness of the front end community in these countries. + variants: + - template: vs_salary + parameters: + { limit: 20, sort: { property: medianByFacet, order: desc } } + + - id: locale + template: multiple_options2 + parameters: { cutoff: 20 } + description: > + The language respondents selected to fill out the survey. + + - id: hint_hint + template: hint + + - id: completion_stats + template: multiple_options2 + description: > + The proportion of the survey filled out by respondents. + + - id: age + template: multiple_options2 + description: > + Survey respondents were on average **33.6** years old, slightly higher than the [State of JS](https://2022.stateofjs.com) (**32.2**) and [State of CSS](https://2023.stateofcss.com) (**33.5**) surveys. + variants: + - template: vs_salary + + - id: years_of_experience + template: multiple_options2 + description: > + Respondents had on average **10.7** years of web development experience. + variants: + - template: vs_salary + + - id: company_size + template: multiple_options2 + description: > + Respondents tended to work for mostly mid-sized organizations, with a median company size of **75** employees. + variants: + - template: vs_salary + + # - id: company_size_vs_gender + # fieldId: company_size + # template: multiple_options2 + # parameters: + # showNoAnswer: true + # filtersState: + # options: + # mode: facet + # facet: + # sectionId: user_info + # id: gender + + # - id: company_size_by_gender + # fieldId: company_size + # template: multiple_options2 + # parameters: + # showNoAnswer: true + # filtersState: + # options: + # showDefaultSeries: false + # mode: grid + # filters: + # - conditions: + # - fieldId: gender + # sectionId: user_info + # operator: eq + # value: male + # - conditions: + # - fieldId: gender + # sectionId: user_info + # operator: eq + # value: female + # - conditions: + # - fieldId: gender + # sectionId: user_info + # operator: eq + # value: non_binary + + - id: variants_hint + template: hint + + - id: yearly_salary + template: multiple_options2 + description: > + Respondents had a median income of USD $75,000, noticeably higher than the **$59,970** figure reported by the [Stack Overflow Developer Survey](https://survey.stackoverflow.co/2023/#section-salary-salary-by-developer-type). + + - id: higher_education_degree + template: multiple_options2 + description: > + Having a higher-education degree did not translate in meaningful differences in yearly income. + variants: + - template: vs_salary + + - id: gender + template: multiple_options2 + description: > + Gender did not correlate with income gaps, but there were notable differences between countries. Canada and the U.S. led the rankings in terms of diversity, while European countries tended to fare worse. + variants: + - template: vs_salary + - id: country_vs_gender + fieldId: country + template: multiple_options2 + parameters: + showNoAnswer: true + limit: 15 + filtersState: + options: + mode: facet + sort: female + order: desc + facet: + sectionId: user_info + id: gender + + - id: race_ethnicity + template: multiple_options2_combined + description: > + The survey's non-white population tended to be younger and have less experience, confirming a trend first observed in other surveys. This might indicate that the next generation of front end developers will be more diverse than the current one. + variants: + - template: vs_years_of_experience + - template: vs_age + + - id: disability_status + template: multiple_options2_combined + + - id: other_surveys + template: multiple_options2_combined + parameters: + cutoff: 20 + + - id: source + template: multiple_options2_freeform + parameters: + limit: 20 + + # - id: how_can_we_improve + # template: multiple_options2_freeform + + # - id: data_explorer + # titleId: sections.data_explorer.title + # descriptionId: sections.data_explorer.description + # showTitle: true + # chartOnly: true + # wrapBlock: true + # template: data_explorer + # parameters: { showNoAnswer: true } + # variables: + # xAxis: user_info__yearly_salary + # yAxis: user_info__years_of_experience + + - items: [renderatl] + template: recommended_resources + titleId: blocks.recommended_events + variables: + isEvent: true + +- id: features + path: /features + descriptionId: sections.features.description.html2023 + blocks: + - template: page_introduction + + - id: all_features + template: multi_items_experience + chartOptions: + limit: 10 + + # - id: features_overview + # template: features_overview + + # - id: knowledge_score + # template: single_option + + - id: reading_list + # template: reading_list + template: multiple_options2 + parameters: { limit: 10 } + queryOptions: + sectionId: reading_list + + - id: features_resources + items: [fm-intermediate-html-css] + template: recommended_resources + + children: + - id: forms + path: /forms + blocks: + - id: forms + template: page_introduction + + - id: forms_features + template: multi_items_experience + i18nNamespace: features + + - id: form_input_types + template: multiple_options2 + i18nNamespace: features + + - id: form_validation_features + template: multiple_options2 + i18nNamespace: features + + - id: forms_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + # - id: adam_argyle + # template: picks + # variables: + # url: https://zagjs.com/ + + - id: forms_resources + items: [fm-web-development-v3] + template: recommended_resources + + - id: interactivity + path: /interactivity + blocks: + - id: interactivity + template: page_introduction + + - id: interactivity_features + template: multi_items_experience + i18nNamespace: features + + - id: dom_attribute_features + template: multiple_options2 + i18nNamespace: features + + - id: dom_html_features + template: multiple_options2 + i18nNamespace: features + + - id: dom_moving_element_features + template: multiple_options2 + i18nNamespace: features + + - id: interactivity_techniques + template: multiple_options2 + i18nNamespace: features + + - id: interactivity_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: interactivity_resources + items: [fm-vanilla-js-apps] + template: recommended_resources + + - id: content + path: /content + blocks: + - id: content + template: page_introduction + + - id: content_features + template: multi_items_experience + i18nNamespace: features + + - id: external_content_elements + template: multiple_options2 + i18nNamespace: features + + - id: privacy_security_features + template: multiple_options2 + i18nNamespace: features + + - id: machine_readable_features + template: multiple_options2 + i18nNamespace: features + + - id: i18n_features + template: multiple_options2 + i18nNamespace: features + + - id: content_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: interactivity_resources + items: [fm-svg-essentials-animation] + template: recommended_resources + + - id: web_components + path: /web_components + blocks: + - id: web_components + template: page_introduction + + - id: web_components_main_features + template: multi_items_experience + i18nNamespace: features + + - id: web_components_features + template: multiple_options2 + i18nNamespace: features + + - id: web_components_libraries + template: multiple_options2 + i18nNamespace: features + + - id: using_web_components_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: making_web_components_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: web_components_resources + items: [fm-web-components] + template: recommended_resources + + - id: accessibility + path: /accessibility + blocks: + - id: accessibility + template: page_introduction + + - id: accessibility_features + template: multi_items_experience + i18nNamespace: features + + - id: accessibility_disabilities + template: multiple_options2 + i18nNamespace: features + + - id: accessibility_techniques + template: multiple_options2 + i18nNamespace: features + + - id: accessibility_screenreaders + template: multiple_options2 + i18nNamespace: features + + - id: accessibility_tools + template: multiple_options2 + i18nNamespace: features + + - id: accessibility_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: accessibility_resources + items: [fm-react-accessibility] + template: recommended_resources + + - id: mobile_web_apps + path: /mobile-web-apps + blocks: + - id: mobile_web_apps + template: page_introduction + + - id: mobile_web_apps_features + template: multi_items_experience + i18nNamespace: features + + - id: native_apps_tools + template: multiple_options2 + i18nNamespace: features + + - id: local_storage_features + template: multiple_options2 + i18nNamespace: features + + - id: pwa_features + template: multiple_options2 + i18nNamespace: features + + - id: mobile_web_apps_pain_points + template: multiple_options2_freeform + i18nNamespace: features + parameters: { limit: 10 } + + - id: mobile_web_apps_resources + items: [fm-pwas] + template: recommended_resources + +- id: other_tools + path: /other_tools + blocks: + - template: page_introduction + + - id: site_generators + template: multiple_options2_combined + + - id: ai_tools + template: multiple_options2_combined + + - id: blast_from_the_past + template: multiple_options2 + + - id: other_tools_resources + items: [fm-next-js-v3] + template: recommended_resources + +- id: usage + path: /usage + blocks: + - template: page_introduction + + - id: html_interoperability_features + template: multiple_options2_freeform + parameters: { limit: 20 } + + - id: html_functionality_features + template: multiple_options2_freeform + parameters: { limit: 20 } + + - id: html_missing_elements + template: multiple_options2_combined + + - id: tools_for_other_developers + template: multiple_options2 + + - id: html_css_js_balance + template: multiple_options2 + + - id: what_do_you_use_html_for + template: multiple_options2_combined + + - id: industry_sector + template: multiple_options2_combined + chartOptions: + limit: 10 + + - id: sharing_hint + template: hint + + - id: usage_resources + items: [fm-homepage] + template: recommended_resources + +# - id: awards +# path: /awards +# blocks: +# - template: page_introduction + +# - id: awards +# template: awards +# variables: +# entities: '"has_selector","at_container","viewport_percentage_length_units","subgrid","at_container","css_nesting","open_props","css_modules","uno_css","panda_css","material_ui","yandex"' +# awards: +# - id: feature_adoption_delta_award +# template: award +# awards: +# - id: has_selector +# value: '+16.4%' +# - id: at_container +# value: '+14.1%' +# - id: viewport_percentage_length_units +# value: '+13%' + +# - id: most_commented_feature_award +# template: award +# awards: +# - id: subgrid +# value: 531 +# - id: at_container +# value: 78 +# - id: css_nesting +# value: 65 + +# # - id: tool_usage_delta_award +# # template: award +# # awards: +# # - id: tailwind_css +# # value: "+17.8%" +# # - id: atomic_css +# # value: "+10.8%" +# # - id: css_modules +# # value: "+10.1%" + +# - id: tool_satisfaction_award +# template: award +# awards: +# - id: open_props +# value: '91%' +# - id: css_modules +# value: '84.5%' +# - id: uno_css +# value: '82%' + +# # - id: tool_interest_award +# # template: award +# # awards: +# # - id: css_modules +# # value: "74%" +# # - id: vanilla_extract +# # value: "68%" +# # - id: stitches +# # value: "55%" + +# - id: most_write_ins_award +# template: award +# awards: +# - id: panda_css +# value: 52 +# - id: material_ui +# value: 38 +# - id: yandex +# value: 24 + +- id: conclusion + path: /conclusion + blocks: + - id: conclusion + template: conclusion + variables: + author: sacha_greif + + - id: conclusion_newsletter + blockType: NewsletterBlock + wrapBlock: false + disableExport: true + +# note: other pages need to be included in the sitemap too so they can get the proper +# locale passed to them + +- id: about + path: /about + blocks: + - id: about_contents + blockType: AboutBlock + wrapBlock: false + disableExport: true + +# - id: how_to_help +# path: /how_to_help +# blocks: + +# - id: how_to_help_contents +# blockType: HowToHelpBlock +# wrapBlock: false +# disableExport: true + +- id: support + path: /support + is_hidden: true + blocks: + - id: support + template: page_introduction + +- id: sponsor_finish + path: /sponsor-chart-finish + is_hidden: true + blocks: + - id: sponsor_finish + blockType: SponsorFinishBlock + wrapBlock: false + +- id: notfound + titleId: notfound.title + path: /404 + is_hidden: true + blocks: + - id: notfound + blockType: NotFoundBlock