From 8e1bb8745bafe36f273ce4a095c3576c38ceb8b4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 24 May 2022 15:08:28 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab-ci.yml | 1 + .gitlab/CODEOWNERS | 2 + .gitlab/ci/review.gitlab-ci.yml | 1 + .gitlab/ci/rules.gitlab-ci.yml | 6 + .gitlab/ci/setup.gitlab-ci.yml | 1 - GITALY_SERVER_VERSION | 2 +- .../design_management/pages/index.vue | 2 +- .../ide/components/ide_status_bar.vue | 7 +- .../edit/components/jira_upgrade_cta.vue | 51 - .../javascripts/integrations/edit/index.js | 2 - .../components/invite_members_trigger.vue | 13 +- .../javascripts/invite_members/constants.js | 1 + .../issues/create_merge_request_dropdown.js | 42 +- .../stylesheets/startup/startup-dark.scss | 17 - .../stylesheets/startup/startup-general.scss | 17 - app/helpers/merge_requests_helper.rb | 2 +- app/models/commit.rb | 3 +- ...merge_request_poll_cached_widget_entity.rb | 3 +- .../issuable/common_system_notes_service.rb | 2 +- .../merge_requests/refresh_service.rb | 10 +- app/services/merge_requests/update_service.rb | 12 +- .../system_notes/merge_requests_service.rb | 2 +- .../_invite_members_side_nav_link.html.haml | 3 +- app/views/layouts/header/_default.html.haml | 2 +- .../_invite_members_side_nav_link.html.haml | 3 +- ...close_reopen_draft_report_toggle.html.haml | 2 +- app/views/shared/issuable/_form.html.haml | 2 +- .../shared/issuable/form/_title.html.haml | 2 +- app/workers/all_queues.yml | 9 - .../project_daily_statistics_worker.rb | 20 - config/sidekiq_queues.yml | 2 - ...520030504_drop_index_namespaces_on_name.rb | 15 + db/schema_migrations/20220520030504 | 1 + doc/ci/secure_files/index.md | 51 +- .../specification_guide/index.md | 114 +- .../licensed_feature_availability.md | 10 +- doc/development/migration_style_guide.md | 4 +- doc/user/gitlab_com/index.md | 27 +- .../glfm_example_status.yml | 27 +- lib/api/helpers/projects_helpers.rb | 1 - lib/gitlab/hook_data/merge_request_builder.rb | 2 +- .../quick_actions/merge_request_actions.rb | 11 +- locale/gitlab.pot | 15 +- qa/qa/page/component/invite_members_modal.rb | 2 +- qa/qa/page/project/members.rb | 2 +- scripts/lib/glfm/update_example_snapshots.rb | 115 +- spec/controllers/groups_controller_spec.rb | 1 - .../projects/issues_controller_spec.rb | 4 - .../repositories/git_http_controller_spec.rb | 13 - spec/features/groups/empty_states_spec.rb | 2 - spec/features/groups/issues_spec.rb | 49 +- ..._users_dropdowns_in_issuables_list_spec.rb | 47 +- spec/features/issuables/issuable_list_spec.rb | 2 - spec/features/issue_rebalancing_spec.rb | 4 - .../filtered_search/dropdown_assignee_spec.rb | 4 - .../filtered_search/dropdown_author_spec.rb | 2 - .../filtered_search/dropdown_base_spec.rb | 2 - .../filtered_search/dropdown_emoji_spec.rb | 2 - .../filtered_search/dropdown_hint_spec.rb | 2 - .../filtered_search/dropdown_label_spec.rb | 2 - .../dropdown_milestone_spec.rb | 2 - .../filtered_search/dropdown_release_spec.rb | 2 - .../filtered_search/filter_issues_spec.rb | 1 - .../filtered_search/recent_searches_spec.rb | 2 - .../issues/filtered_search/search_bar_spec.rb | 1 - .../filtered_search/visual_tokens_spec.rb | 1 - spec/features/issues/rss_spec.rb | 4 - .../user_bulk_edits_issues_labels_spec.rb | 4 - .../issues/user_bulk_edits_issues_spec.rb | 4 - .../issues/user_creates_issue_spec.rb | 4 - .../issues/user_filters_issues_spec.rb | 2 - .../issues/user_sees_breadcrumb_links_spec.rb | 2 - .../features/issues/user_sorts_issues_spec.rb | 2 - spec/features/labels_hierarchy_spec.rb | 2 - .../user_sorts_merge_requests_spec.rb | 2 - spec/features/user_sorts_things_spec.rb | 2 - .../glfm/example_snapshots/examples_index.yml | 1282 ++++++++-------- spec/fixtures/glfm/example_snapshots/html.yml | 1282 ++++++++-------- .../glfm/example_snapshots/markdown.yml | 1284 ++++++++--------- .../example_snapshots/prosemirror_json.yml | 1282 ++++++++-------- .../ide/components/ide_status_bar_spec.js | 2 + .../components/jira_issues_fields_spec.js | 1 - .../edit/components/jira_upgrade_cta_spec.js | 31 - .../components/invite_members_trigger_spec.js | 20 +- spec/models/commit_spec.rb | 10 +- spec/models/merge_request_spec.rb | 4 +- .../merge_request_presenter_spec.rb | 2 +- .../lib/glfm/update_example_snapshots_spec.rb | 345 ++++- .../merge_requests/create_service_spec.rb | 6 +- .../merge_requests/refresh_service_spec.rb | 19 +- spec/services/notes/create_service_spec.rb | 4 +- spec/spec_helper.rb | 4 - ...user_dropdown_behaviors_shared_examples.rb | 23 - spec/workers/every_sidekiq_worker_spec.rb | 1 - .../project_daily_statistics_worker_spec.rb | 35 - 95 files changed, 3267 insertions(+), 3184 deletions(-) delete mode 100644 app/assets/javascripts/integrations/edit/components/jira_upgrade_cta.vue delete mode 100644 app/workers/project_daily_statistics_worker.rb create mode 100644 db/migrate/20220520030504_drop_index_namespaces_on_name.rb create mode 100644 db/schema_migrations/20220520030504 delete mode 100644 spec/frontend/integrations/edit/components/jira_upgrade_cta_spec.js delete mode 100644 spec/support/shared_examples/features/issuables_user_dropdown_behaviors_shared_examples.rb delete mode 100644 spec/workers/project_daily_statistics_worker_spec.rb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bf49f5800d2..db0888bbd97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,6 +64,7 @@ variables: NODE_ENV: "test" BUNDLE_WITHOUT: "production:development" BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet" + BUNDLE_FROZEN: "true" # we override the max_old_space_size to prevent OOM errors NODE_OPTIONS: --max_old_space_size=3584 GIT_DEPTH: "20" diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 6572eeced83..cdb357323e0 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -177,6 +177,8 @@ Dangerfile @gl-quality/eng-prod [Application Security] /app/assets/javascripts/lib/dompurify.js @gitlab-com/gl-security/appsec +/app/assets/javascripts/gfm_auto_complete.js @gitlab-com/gl-security/appsec +/ee/app/assets/javascripts/gfm_auto_complete.js @gitlab-com/gl-security/appsec /app/validators/addressable_url_validator.rb @gitlab-com/gl-security/appsec /app/validators/public_url_validator.rb @gitlab-com/gl-security/appsec /config/initializers/content_security_policy.rb @gitlab-com/gl-security/appsec diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index 03223e64b23..a13af93f925 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -72,5 +72,6 @@ danger-review-local: reviewers-recommender: extends: - .default-retry + - .review:rules:reviewers-recommender stage: test needs: [] diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 181a61894d6..83f42982dab 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -1663,6 +1663,12 @@ - <<: *if-merge-request changes: *danger-patterns +.review:rules:reviewers-recommender: + rules: + - <<: *if-not-canonical-namespace + when: never + - <<: *if-merge-request + ############### # Setup rules # ############### diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 4339251897c..eeaa9ddb41a 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -171,7 +171,6 @@ add-jh-folder: - curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-org/gitlab-jh-mirrors/gitlab/-/archive/${JH_BRANCH}/gitlab-${JH_BRANCH}.tar.gz?path=jh" - tar -xf "jh-folder.tar.gz" - mv "gitlab-${JH_BRANCH}-jh/jh/" ./ - - cp Gemfile.lock jh/ - ls -l jh/ artifacts: expire_in: 2d diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 92f91a90aaa..92794927e8c 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -803b179a6834fbebcc7886083731bb0f4a67c796 +b2c8eaa672c9f2dc4b55477a3876f957e2c9a768 diff --git a/app/assets/javascripts/design_management/pages/index.vue b/app/assets/javascripts/design_management/pages/index.vue index d3f3f9dad67..915eb2aaee8 100644 --- a/app/assets/javascripts/design_management/pages/index.vue +++ b/app/assets/javascripts/design_management/pages/index.vue @@ -354,7 +354,7 @@ export default { >
-import { GlButton, GlCard } from '@gitlab/ui'; -import { s__, __ } from '~/locale'; - -export default { - components: { - GlButton, - GlCard, - }, - props: { - upgradePlanPath: { - type: String, - required: false, - default: '', - }, - showPremiumMessage: { - type: Boolean, - required: false, - default: false, - }, - showUltimateMessage: { - type: Boolean, - required: false, - default: false, - }, - }, - computed: { - title() { - return this.showUltimateMessage - ? this.$options.i18n.titleUltimate - : this.$options.i18n.titlePremium; - }, - }, - i18n: { - titleUltimate: s__('JiraService|This is an Ultimate feature'), - titlePremium: s__('JiraService|This is a Premium feature'), - content: s__('JiraService|Upgrade your plan to enable this feature of the Jira Integration.'), - upgrade: __('Upgrade your plan'), - }, -}; - - - diff --git a/app/assets/javascripts/integrations/edit/index.js b/app/assets/javascripts/integrations/edit/index.js index 92e6ca509c3..69097ecb8ab 100644 --- a/app/assets/javascripts/integrations/edit/index.js +++ b/app/assets/javascripts/integrations/edit/index.js @@ -21,7 +21,6 @@ function parseDatasetToProps(data) { type, commentDetail, projectKey, - upgradePlanPath, learnMorePath, aboutPricingUrl, triggerEvents, @@ -80,7 +79,6 @@ function parseDatasetToProps(data) { initialEnableJiraVulnerabilities: enableJiraVulnerabilities, initialVulnerabilitiesIssuetype: vulnerabilitiesIssuetype, initialProjectKey: projectKey, - upgradePlanPath, }, learnMorePath, aboutPricingUrl, diff --git a/app/assets/javascripts/invite_members/components/invite_members_trigger.vue b/app/assets/javascripts/invite_members/components/invite_members_trigger.vue index 79b192e2495..42645110e48 100644 --- a/app/assets/javascripts/invite_members/components/invite_members_trigger.vue +++ b/app/assets/javascripts/invite_members/components/invite_members_trigger.vue @@ -2,7 +2,11 @@ import { GlButton, GlLink, GlIcon } from '@gitlab/ui'; import { s__ } from '~/locale'; import eventHub from '../event_hub'; -import { TRIGGER_ELEMENT_BUTTON, TRIGGER_ELEMENT_SIDE_NAV } from '../constants'; +import { + TRIGGER_ELEMENT_BUTTON, + TRIGGER_ELEMENT_SIDE_NAV, + TRIGGER_DEFAULT_QA_SELECTOR, +} from '../constants'; export default { components: { GlButton, GlLink, GlIcon }, @@ -46,12 +50,17 @@ export default { required: false, default: '', }, + qaSelector: { + type: String, + required: false, + default: TRIGGER_DEFAULT_QA_SELECTOR, + }, }, computed: { componentAttributes() { const baseAttributes = { class: this.classes, - 'data-qa-selector': 'invite_members_button', + 'data-qa-selector': this.qaSelector, 'data-test-id': 'invite-members-button', }; diff --git a/app/assets/javascripts/invite_members/constants.js b/app/assets/javascripts/invite_members/constants.js index 928f79f1c8d..552359f2463 100644 --- a/app/assets/javascripts/invite_members/constants.js +++ b/app/assets/javascripts/invite_members/constants.js @@ -18,6 +18,7 @@ export const USERS_FILTER_ALL = 'all'; export const USERS_FILTER_SAML_PROVIDER_ID = 'saml_provider_id'; export const TRIGGER_ELEMENT_BUTTON = 'button'; export const TRIGGER_ELEMENT_SIDE_NAV = 'side-nav'; +export const TRIGGER_DEFAULT_QA_SELECTOR = 'invite_members_button'; export const MEMBERS_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite members'); export const MEMBERS_MODAL_CELEBRATE_TITLE = s__( 'InviteMembersModal|GitLab is better with colleagues!', diff --git a/app/assets/javascripts/issues/create_merge_request_dropdown.js b/app/assets/javascripts/issues/create_merge_request_dropdown.js index 8294c018117..c5f31081625 100644 --- a/app/assets/javascripts/issues/create_merge_request_dropdown.js +++ b/app/assets/javascripts/issues/create_merge_request_dropdown.js @@ -11,6 +11,7 @@ import createFlash from '~/flash'; import axios from '~/lib/utils/axios_utils'; import { __, sprintf } from '~/locale'; import { mergeUrlParams } from '~/lib/utils/url_utility'; +import api from '~/api'; // Todo: Remove this when fixing issue in input_setter plugin const InputSetter = { ...ISetter }; @@ -149,7 +150,7 @@ export default class CreateMergeRequestDropdown { }); } - createBranch() { + createBranch(navigateToBranch = true) { this.isCreatingBranch = true; return axios @@ -158,7 +159,10 @@ export default class CreateMergeRequestDropdown { }) .then(({ data }) => { this.branchCreated = true; - window.location.href = data.url; + + if (navigateToBranch) { + window.location.href = data.url; + } }) .catch(() => createFlash({ @@ -170,23 +174,25 @@ export default class CreateMergeRequestDropdown { createMergeRequest() { return new Promise(() => { this.isCreatingMergeRequest = true; - return this.createBranch().then(() => { - let path = canCreateConfidentialMergeRequest() - ? this.createMrPath.replace( - this.projectPath, - confidentialMergeRequestState.selectedProject.pathWithNamespace, - ) - : this.createMrPath; - path = mergeUrlParams( - { - 'merge_request[target_branch]': this.refInput.value, - 'merge_request[source_branch]': this.branchInput.value, - }, - path, - ); + return this.createBranch(false) + .then(() => api.trackRedisHllUserEvent('i_code_review_user_create_mr_from_issue')) + .then(() => { + let path = canCreateConfidentialMergeRequest() + ? this.createMrPath.replace( + this.projectPath, + confidentialMergeRequestState.selectedProject.pathWithNamespace, + ) + : this.createMrPath; + path = mergeUrlParams( + { + 'merge_request[target_branch]': this.refInput.value, + 'merge_request[source_branch]': this.branchInput.value, + }, + path, + ); - window.location.href = path; - }); + window.location.href = path; + }); }); } diff --git a/app/assets/stylesheets/startup/startup-dark.scss b/app/assets/stylesheets/startup/startup-dark.scss index 50cc7bd3d4c..54c6c43366f 100644 --- a/app/assets/stylesheets/startup/startup-dark.scss +++ b/app/assets/stylesheets/startup/startup-dark.scss @@ -42,10 +42,6 @@ body { text-align: left; background-color: #1f1f1f; } -h1 { - margin-top: 0; - margin-bottom: 0.25rem; -} ul { margin-top: 0; margin-bottom: 1rem; @@ -105,15 +101,6 @@ button::-moz-focus-inner, [type="search"] { outline-offset: -2px; } -h1 { - margin-bottom: 0.25rem; - font-weight: 600; - line-height: 1.2; - color: #fafafa; -} -h1 { - font-size: 2.1875rem; -} .list-unstyled { padding-left: 0; list-style: none; @@ -547,10 +534,6 @@ html [type="button"], [role="button"] { cursor: pointer; } -h1 { - margin-top: 20px; - margin-bottom: 10px; -} strong { font-weight: bold; } diff --git a/app/assets/stylesheets/startup/startup-general.scss b/app/assets/stylesheets/startup/startup-general.scss index b2260770371..7af31d0f743 100644 --- a/app/assets/stylesheets/startup/startup-general.scss +++ b/app/assets/stylesheets/startup/startup-general.scss @@ -27,10 +27,6 @@ body { text-align: left; background-color: #fff; } -h1 { - margin-top: 0; - margin-bottom: 0.25rem; -} ul { margin-top: 0; margin-bottom: 1rem; @@ -90,15 +86,6 @@ button::-moz-focus-inner, [type="search"] { outline-offset: -2px; } -h1 { - margin-bottom: 0.25rem; - font-weight: 600; - line-height: 1.2; - color: #303030; -} -h1 { - font-size: 2.1875rem; -} .list-unstyled { padding-left: 0; list-style: none; @@ -532,10 +519,6 @@ html [type="button"], [role="button"] { cursor: pointer; } -h1 { - margin-top: 20px; - margin-bottom: 10px; -} strong { font-weight: bold; } diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb index e1c9e7d3896..230f5e4921c 100644 --- a/app/helpers/merge_requests_helper.rb +++ b/app/helpers/merge_requests_helper.rb @@ -139,7 +139,7 @@ module MergeRequestsHelper end def toggle_draft_merge_request_path(issuable) - wip_event = issuable.work_in_progress? ? 'unwip' : 'wip' + wip_event = issuable.draft? ? 'unwip' : 'wip' issuable_path(issuable, { merge_request: { wip_event: wip_event } }) end diff --git a/app/models/commit.rb b/app/models/commit.rb index f405f5bc663..ca18cb50e02 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -519,9 +519,10 @@ class Commit # DRAFT_REGEX = /\A\s*#{Gitlab::Regex.merge_request_draft}|(fixup!|squash!)\s/.freeze - def work_in_progress? + def draft? !!(title =~ DRAFT_REGEX) end + alias_method :work_in_progress?, :draft? def merged_merge_request?(user) !!merged_merge_request(user) diff --git a/app/serializers/merge_request_poll_cached_widget_entity.rb b/app/serializers/merge_request_poll_cached_widget_entity.rb index 9d001d18aa6..0c5af67bcda 100644 --- a/app/serializers/merge_request_poll_cached_widget_entity.rb +++ b/app/serializers/merge_request_poll_cached_widget_entity.rb @@ -18,7 +18,8 @@ class MergeRequestPollCachedWidgetEntity < IssuableEntity expose :rebase_in_progress?, as: :rebase_in_progress expose :commits_count expose :merge_ongoing?, as: :merge_ongoing - expose :work_in_progress?, as: :work_in_progress + expose :draft?, as: :draft + expose :draft?, as: :work_in_progress expose :cannot_be_merged?, as: :has_conflicts expose :can_be_merged?, as: :can_be_merged expose :remove_source_branch?, as: :remove_source_branch diff --git a/app/services/issuable/common_system_notes_service.rb b/app/services/issuable/common_system_notes_service.rb index 9ee54c7ba0f..5cf32ee3e40 100644 --- a/app/services/issuable/common_system_notes_service.rb +++ b/app/services/issuable/common_system_notes_service.rb @@ -54,7 +54,7 @@ module Issuable def create_draft_note(old_title) return unless issuable.is_a?(MergeRequest) - if MergeRequest.work_in_progress?(old_title) != issuable.work_in_progress? + if MergeRequest.draft?(old_title) != issuable.draft? SystemNoteService.handle_merge_request_draft(issuable, issuable.project, current_user) end end diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb index f7a0f90b95f..5205d34baae 100644 --- a/app/services/merge_requests/refresh_service.rb +++ b/app/services/merge_requests/refresh_service.rb @@ -255,17 +255,17 @@ module MergeRequests commit_shas = merge_request.commit_shas - wip_commit = @commits.detect do |commit| - commit.work_in_progress? && commit_shas.include?(commit.sha) + draft_commit = @commits.detect do |commit| + commit.draft? && commit_shas.include?(commit.sha) end - if wip_commit && !merge_request.work_in_progress? - merge_request.update(title: merge_request.wip_title) + if draft_commit && !merge_request.draft? + merge_request.update(title: merge_request.draft_title) SystemNoteService.add_merge_request_draft_from_commit( merge_request, merge_request.project, @current_user, - wip_commit + draft_commit ) end end diff --git a/app/services/merge_requests/update_service.rb b/app/services/merge_requests/update_service.rb index 6e8afaecbba..603da4ef535 100644 --- a/app/services/merge_requests/update_service.rb +++ b/app/services/merge_requests/update_service.rb @@ -180,16 +180,16 @@ module MergeRequests return unless changed_fields.include?("title") old_title, new_title = merge_request.previous_changes["title"] - old_title_wip = MergeRequest.work_in_progress?(old_title) - new_title_wip = MergeRequest.work_in_progress?(new_title) + old_title_draft = MergeRequest.draft?(old_title) + new_title_draft = MergeRequest.draft?(new_title) - if !old_title_wip && new_title_wip - # Marked as Draft/WIP + if !old_title_draft && new_title_draft + # Marked as Draft # merge_request_activity_counter .track_marked_as_draft_action(user: current_user) - elsif old_title_wip && !new_title_wip - # Unmarked as Draft/WIP + elsif old_title_draft && !new_title_draft + # Unmarked as Draft # notify_draft_status_changed(merge_request) diff --git a/app/services/system_notes/merge_requests_service.rb b/app/services/system_notes/merge_requests_service.rb index 546a23c95c2..7758c1e8597 100644 --- a/app/services/system_notes/merge_requests_service.rb +++ b/app/services/system_notes/merge_requests_service.rb @@ -27,7 +27,7 @@ module SystemNotes end def handle_merge_request_draft - action = noteable.work_in_progress? ? "draft" : "ready" + action = noteable.draft? ? "draft" : "ready" body = "marked this merge request as **#{action}**" diff --git a/app/views/groups/_invite_members_side_nav_link.html.haml b/app/views/groups/_invite_members_side_nav_link.html.haml index 3046669b53b..978ef01984c 100644 --- a/app/views/groups/_invite_members_side_nav_link.html.haml +++ b/app/views/groups/_invite_members_side_nav_link.html.haml @@ -1,7 +1,8 @@ .js-invite-members-trigger{ data: { trigger_source: 'group-side-nav', icon: 'users', display_text: title, - trigger_element: 'side-nav'} } + trigger_element: 'side-nav', + qa_selector: 'invite_members_sidebar_button' } } = render partial: 'shared/nav/sidebar_submenu', locals: { sidebar_menu: sidebar_menu } = render 'groups/invite_members_modal', group: group diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml index e268e3f2b46..be699c566ab 100644 --- a/app/views/layouts/header/_default.html.haml +++ b/app/views/layouts/header/_default.html.haml @@ -6,7 +6,7 @@ .container-fluid .header-content.js-header-content .title-container.hide-when-top-nav-responsive-open.gl-transition-medium.gl-display-flex.gl-align-items-stretch.gl-pt-0 - %h1.title + .title %span.gl-sr-only GitLab = link_to root_path, title: _('Dashboard'), id: 'logo', **tracking_attrs('main_navigation', 'click_gitlab_logo_link', 'navigation') do = brand_header_logo diff --git a/app/views/projects/_invite_members_side_nav_link.html.haml b/app/views/projects/_invite_members_side_nav_link.html.haml index fae681b1a71..b96a7608ce2 100644 --- a/app/views/projects/_invite_members_side_nav_link.html.haml +++ b/app/views/projects/_invite_members_side_nav_link.html.haml @@ -1,7 +1,8 @@ .js-invite-members-trigger{ data: { trigger_source: 'project-side-nav', icon: 'users', display_text: title, - trigger_element: 'side-nav'} } + trigger_element: 'side-nav', + qa_selector: 'invite_members_sidebar_button' } } = render partial: 'shared/nav/sidebar_submenu', locals: { sidebar_menu: sidebar_menu } = render 'projects/invite_members_modal', project: project diff --git a/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml b/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml index 282faf7714e..78a72fca96b 100644 --- a/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml +++ b/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml @@ -20,7 +20,7 @@ %li.gl-new-dropdown-item = link_to toggle_draft_merge_request_path(@merge_request), method: :put, class: 'dropdown-item js-draft-toggle-button' do .gl-new-dropdown-item-text-wrapper - = @merge_request.work_in_progress? ? _('Mark as ready') : _('Mark as draft') + = @merge_request.draft? ? _('Mark as ready') : _('Mark as draft') %li.gl-new-dropdown-item.js-close-item = link_to close_issuable_path(@merge_request), method: :put, class: 'dropdown-item' do .gl-new-dropdown-item-text-wrapper diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 62e1a930ee6..fc4d6e1f4bb 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -22,7 +22,7 @@ = _('Title') %i{ aria: { hidden: true } }= '*' - = render 'shared/issuable/form/title', issuable: issuable, form: form, has_wip_commits: commits && commits.detect(&:work_in_progress?) + = render 'shared/issuable/form/title', issuable: issuable, form: form, has_wip_commits: commits && commits.detect(&:draft?) #js-suggestions{ data: { project_path: @project.full_path } } = render 'shared/issuable/form/type_selector', issuable: issuable, form: form diff --git a/app/views/shared/issuable/form/_title.html.haml b/app/views/shared/issuable/form/_title.html.haml index 6b00cdc5e24..fd346207ffd 100644 --- a/app/views/shared/issuable/form/_title.html.haml +++ b/app/views/shared/issuable/form/_title.html.haml @@ -12,7 +12,7 @@ = form.text_field :title, required: true, aria: { required: true }, maxlength: 255, autofocus: true, autocomplete: 'off', class: 'form-control pad qa-issuable-form-title', placeholder: _('Title'), dir: 'auto' - - if issuable.respond_to?(:work_in_progress?) + - if issuable.respond_to?(:draft?) .form-text.text-muted .js-wip-explanation{ style: "display: none;" } = remove_wip_text diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index 76d4e438099..96b604e08b3 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -2749,15 +2749,6 @@ :weight: 1 :idempotent: true :tags: [] -- :name: project_daily_statistics - :worker_name: ProjectDailyStatisticsWorker - :feature_category: :source_code_management - :has_external_dependencies: - :urgency: :low - :resource_boundary: :unknown - :weight: 1 - :idempotent: - :tags: [] - :name: project_destroy :worker_name: ProjectDestroyWorker :feature_category: :source_code_management diff --git a/app/workers/project_daily_statistics_worker.rb b/app/workers/project_daily_statistics_worker.rb deleted file mode 100644 index 02f8958f82a..00000000000 --- a/app/workers/project_daily_statistics_worker.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -# Deprecated: https://gitlab.com/gitlab-org/gitlab/-/issues/214585 -class ProjectDailyStatisticsWorker # rubocop:disable Scalability/IdempotentWorker - include ApplicationWorker - - data_consistency :always - - sidekiq_options retry: 3 - - feature_category :source_code_management - - def perform(project_id) - project = Project.find_by_id(project_id) - - return unless project&.repository&.exists? - - Projects::FetchStatisticsIncrementService.new(project).execute - end -end diff --git a/config/sidekiq_queues.yml b/config/sidekiq_queues.yml index 897bd4de88c..832058ab28e 100644 --- a/config/sidekiq_queues.yml +++ b/config/sidekiq_queues.yml @@ -345,8 +345,6 @@ - 3 - - project_cache - 1 -- - project_daily_statistics - - 1 - - project_destroy - 1 - - project_export diff --git a/db/migrate/20220520030504_drop_index_namespaces_on_name.rb b/db/migrate/20220520030504_drop_index_namespaces_on_name.rb new file mode 100644 index 00000000000..74019f726aa --- /dev/null +++ b/db/migrate/20220520030504_drop_index_namespaces_on_name.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class DropIndexNamespacesOnName < Gitlab::Database::Migration[2.0] + disable_ddl_transaction! + + INDEX_NAME = 'index_namespaces_on_name' + + def up + remove_concurrent_index_by_name :namespaces, INDEX_NAME, if_exists: true + end + + def down + # no-op + end +end diff --git a/db/schema_migrations/20220520030504 b/db/schema_migrations/20220520030504 new file mode 100644 index 00000000000..284d859b42d --- /dev/null +++ b/db/schema_migrations/20220520030504 @@ -0,0 +1 @@ +4d44b5cd1bcd731e841849c65f64a19960fa13cd90d1bda023e797db20b8b8c6 \ No newline at end of file diff --git a/doc/ci/secure_files/index.md b/doc/ci/secure_files/index.md index 2bf360e69f1..673dca65335 100644 --- a/doc/ci/secure_files/index.md +++ b/doc/ci/secure_files/index.md @@ -20,6 +20,8 @@ are stored securely outside of your project's repository, and are not version co It is safe to store sensitive information in these files. Secure files support both plain text and binary file types. +You can manage secure files in the project settings, or with the [secure files API](../../api/secure_files.md). + Secure files can be [downloaded and used by CI/CD jobs](#use-secure-files-in-cicd-jobs) by using the [load-secure-files](https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/load-secure-files) tool. @@ -30,49 +32,14 @@ Additional features and capabilities are planned. ## Add a secure file to a project -To add a secure file to a project, use the [Secure Files API](../../api/secure_files.md#create-secure-file). +To add a secure file to a project: -Send a POST request to the secure files endpoint for your project: - -```shell -curl --request POST --header "PRIVATE-TOKEN: " \ - "https://gitlab.example.com/api/v4/projects/:project_id/secure_files" --form "name=myfile.jks" --form "file=@/path/to/file/myfile.jks" -``` - -The response returns all of the metadata for the file you just uploaded. For example: - -```json -{ - "id": 1, - "name": "myfile.jks", - "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac", - "checksum_algorithm": "sha256", - "created_at": "2022-02-22T22:22:22.222Z" -} -``` - -## List all secure files in a project - -To list all secure files in a project, use the [Secure Files API](../../api/secure_files.md#list-project-secure-files). - -Send a GET request to the secure files endpoint for your project: - -```shell -curl --request GET --header "PRIVATE-TOKEN: " \ - "https://gitlab.example.com/api/v4/projects/:project_id/secure_files" -``` - -The response returns an array of all of the secure files in the project. For example: - -```json -[{ - "id": 1, - "name": "myfile.jks", - "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac", - "checksum_algorithm": "sha256", - "created_at": "2022-02-22T22:22:22.222Z" -}] -``` +1. On the top bar, select **Menu > Projects** and find your project. +1. On the left sidebar, select **Settings > CI/CD**. +1. In the **Secure Files** section, select **Manage**. +1. Select **Upload File**. +1. Find the file to upload, select **Open**, and the file upload begins immediately. + The file shows up in the list when the upload is complete. ## Use secure files in CI/CD jobs diff --git a/doc/development/gitlab_flavored_markdown/specification_guide/index.md b/doc/development/gitlab_flavored_markdown/specification_guide/index.md index 0e1f8e8d377..acd346a3a85 100644 --- a/doc/development/gitlab_flavored_markdown/specification_guide/index.md +++ b/doc/development/gitlab_flavored_markdown/specification_guide/index.md @@ -213,32 +213,42 @@ HTML which differs from the canonical HTML examples from the specification. For every Markdown example in the GLFM specification, three versions of HTML can potentially be rendered from the example: -1. **Static HTML**: HTML produced by the backend (Ruby) renderer, which - contains extra styling and behavioral HTML. For example, **Create task** buttons - added for dynamically creating an issue from a task list item. - The GitLab [Markdown API](../../../api/markdown.md) generates HTML - for a given Markdown string using this method. -1. **WYSIWYG HTML**: HTML produced by the frontend (JavaScript) Content Editor, - which includes parsing and rendering logic. Used to present an editable document - in the ProseMirror WYSIWYG editor. -1. **Canonical HTML**: The clean, basic version of HTML rendered from Markdown. - 1. For the examples which come from the CommonMark specification and - GFM extensions specification, - the canonical HTML is the exact identical HTML found in the - GFM - `spec.txt` example blocks. - 1. For GLFM extensions to the GFM / CommonMark - specification, a `glfm_canonical_examples.txt` - [input specification file](#input-specification-files) contains the - Markdown examples and corresponding canonical HTML examples. +- Static HTML. +- WYSIWYG HTML. +- Canonical HTML. -As the rendered static and WYSIWYG HTML from the backend (Ruby) and frontend (JavaScript) -renderers contain extra HTML, their rendered HTML can be converted to canonical HTML -by a [canonicalization](#canonicalization-of-html) process. +#### Static HTML -#### Canonicalization of HTML +**Static HTML** is HTML produced by the backend (Ruby) renderer, which +contains extra styling and behavioral HTML. For example, **Create task** buttons +added for dynamically creating an issue from a task list item. +The GitLab [Markdown API](../../../api/markdown.md) generates HTML +for a given Markdown string using this method. -Neither the backend (Ruby) nor the frontend (JavaScript) rendered can directly render canonical HTML. +#### WYSIWYG HTML + +**WYSIWYG HTML** is HTML produced by the frontend (JavaScript) Content Editor, +which includes parsing and rendering logic. It is used to present an editable document +in the ProseMirror WYSIWYG editor. + +#### Canonical HTML + +**Canonical HTML** is the clean, basic version of HTML rendered from Markdown. + +1. For the examples which come from the CommonMark specification and + GFM extensions specification, the canonical HTML is the exact identical HTML found in the + GFM `spec.txt` example blocks. +1. For GLFM extensions to the GFM / CommonMark + specification, a `glfm_canonical_examples.txt` [input specification file](#input-specification-files) + contains the Markdown examples and corresponding canonical HTML examples. + +### Canonicalization of HTML + +The rendered [static HTML](#static-html) and [WYSIWYG HTML](#wysiwyg-html) +from the backend (Ruby) and frontend (JavaScript) renderers usually contains extra styling +or HTML elements, to support specific appearance and behavioral requirements. + +Neither the backend nor the frontend rendering logic can directly render the clean, basic canonical HTML. Nor should they be able to, because: - It's not a direct requirement to support any GitLab application feature. @@ -578,23 +588,57 @@ The actual file should not have these prefixed `|` characters. controls the behavior of the [scripts](#scripts) and [tests](#types-of-markdown-tests-driven-by-the-glfm-specification). - It is manually updated. -- It controls the status of automatic generation of files based on Markdown examples. -- It allows example snapshot generation, Markdown conformance tests, or - Markdown snapshot tests to be skipped for individual examples. For example, if - they are unimplemented, broken, or cannot be tested for some reason. +- The `skip_update_example_snapshot*` fields control the status of automatic generation of + snapshot example entries based on Markdown examples. +- The `skip_running_*` control allow Markdown conformance tests or + Markdown snapshot tests to be skipped for individual examples. +- This allows control over skipping this processing or testing of various examples when they + are unimplemented, partially implemented, broken, or cannot be generated or tested for some reason. +- All entries default to false. They can be set to true by specifying a Ruby + value which evaluates as truthy. This could be the boolean `true` value, but ideally should + be a string describing why the example's updating or testing is being skipped. +- When a `skip_update_example_snapshot*` entry is true, the existing value is preserved. + However, since the YAML is re-written, the style of the string value and its + [Block Chomping Indicator (`|`)](https://yaml.org/spec/1.2.2/#8112-block-chomping-indicator) + may be modified, because the Ruby `psych` YAML library automatically determines this. + +The following optional entries are supported for each example. They all default to `false`: + +- `skip_update_example_snapshots`: When true, skips any addition or update of any this example's entries + in the [`spec/fixtures/glfm/example_snapshots/html.yml`](#specfixturesglfmexample_snapshotshtmlyml) file + or the [`spec/fixtures/glfm/example_snapshots/prosemirror_json.yml`](#specfixturesglfmexample_snapshotsprosemirror_jsonyml) file. + If this value is truthy, then no other `skip_update_example_snapshot_*` entries can be truthy, + and an error is raised if any of them are. +- `skip_update_example_snapshot_html_static`: When true, skips addition or update of this example's [static HTML](#static-html) + entry in the [`spec/fixtures/glfm/example_snapshots/html.yml`](#specfixturesglfmexample_snapshotshtmlyml) file. +- `skip_update_example_snapshot_html_wysiwyg`: When true, skips addition or update of this example's [WYSIWYG HTML](#wysiwyg-html) + entry in the [`spec/fixtures/glfm/example_snapshots/html.yml`](#specfixturesglfmexample_snapshotshtmlyml) file. +- `skip_update_example_snapshot_prosemirror_json`: When true, skips addition or update of this example's + entry in the [`spec/fixtures/glfm/example_snapshots/prosemirror_json.yml`](#specfixturesglfmexample_snapshotsprosemirror_jsonyml) file. +- `skip_running_conformance_static_tests`: When true, skips running the [Markdown conformance tests](#markdown-conformance-testing) + of the [static HTML](#static-html) for this example. +- `skip_running_conformance_wysiwyg_tests`: When true, skips running the [Markdown conformance tests](#markdown-conformance-testing) + of the [WYSIWYG HTML](#wysiwyg-html) for this example. +- `skip_running_snapshot_static_html_tests`: When true, skips running the [Markdown snapshot tests](#markdown-snapshot-testing) + of the [static HTML](#multiple-versions-of-rendered-html) for this example. +- `skip_running_snapshot_wysiwyg_html_tests`: When true, skips running the [Markdown snapshot tests](#markdown-snapshot-testing) + of the [WYSIWYG HTML](#wysiwyg-html) for this example. +- `skip_running_snapshot_prosemirror_json_tests`: When true, skips running the [Markdown snapshot tests](#markdown-snapshot-testing) + of the [ProseMirror JSON](#specfixturesglfmexample_snapshotsprosemirror_jsonyml) for this example. `glfm_specification/input/gitlab_flavored_markdown/glfm_example_status.yml` sample entry: ```yaml 07_99_an_example_with_incomplete_wysiwyg_implementation_1: - skip_update_example_snapshots: false - skip_update_example_snapshot_html_static: false - skip_update_example_snapshot_html_wysiwyg: false - skip_running_conformance_static_tests: false - skip_running_conformance_wysiwyg_tests: false - skip_running_snapshot_static_html_tests: false - skip_running_snapshot_wysiwyg_html_tests: false - skip_running_snapshot_prosemirror_json_tests: false + skip_update_example_snapshots: 'An explanation of the reason for skipping.' + skip_update_example_snapshot_html_static: 'An explanation of the reason for skipping.' + skip_update_example_snapshot_html_wysiwyg: 'An explanation of the reason for skipping.' + skip_update_example_snapshot_prosemirror_json: 'An explanation of the reason for skipping.' + skip_running_conformance_static_tests: 'An explanation of the reason for skipping.' + skip_running_conformance_wysiwyg_tests: 'An explanation of the reason for skipping.' + skip_running_snapshot_static_html_tests: 'An explanation of the reason for skipping.' + skip_running_snapshot_wysiwyg_html_tests: 'An explanation of the reason for skipping.' + skip_running_snapshot_prosemirror_json_tests: 'An explanation of the reason for skipping.' ``` #### Output specification files diff --git a/doc/development/licensed_feature_availability.md b/doc/development/licensed_feature_availability.md index 6df5c2164e8..09c32fc4244 100644 --- a/doc/development/licensed_feature_availability.md +++ b/doc/development/licensed_feature_availability.md @@ -22,9 +22,17 @@ it should be restricted on namespace scope. 1. Check using: ```ruby -project.feature_available?(:feature_symbol) +project.licensed_feature_available?(:feature_symbol) ``` +or + +```ruby +group.licensed_feature_available?(:feature_symbol) +``` + +For projects, `licensed_feature_available` delegates to its associated `namespace`. + ## Restricting global features (instance) However, for features such as [Geo](../administration/geo/index.md) and diff --git a/doc/development/migration_style_guide.md b/doc/development/migration_style_guide.md index 8221dc2239f..2359f0fc2d1 100644 --- a/doc/development/migration_style_guide.md +++ b/doc/development/migration_style_guide.md @@ -52,9 +52,9 @@ work it needs to perform and how long it takes to complete: - Clean-ups, like removing unused columns. - Adding non-critical indices on high-traffic tables. - Adding non-critical indices that take a long time to create. -1. [**Background migrations.**](database/background_migrations.md) These aren't regular Rails migrations, but application code that is +1. [**Batched background migrations.**](database/batched_background_migrations.md) These aren't regular Rails migrations, but application code that is executed via Sidekiq jobs, although a post-deployment migration is used to schedule them. Use them only for data migrations that - exceed the timing guidelines for post-deploy migrations. Background migrations should _not_ change the schema. + exceed the timing guidelines for post-deploy migrations. Batched background migrations should _not_ change the schema. Use the following diagram to guide your decision, but keep in mind that it is just a tool, and the final outcome will always be dependent on the specific changes being made: diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index b11fe084b82..cf963287a9f 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -328,19 +328,20 @@ limiting responses](#rate-limiting-responses). The following table describes the rate limits for GitLab.com, both before and after the limits change in January, 2021: -| Rate limit | From 2021-02-12 | From 2022-02-03 | -|:--------------------------------------------------------------------------|:------------------------------|:----------------------------------------| -| **Protected paths** (for a given **IP address**) | **10** requests per minute | **10** requests per minute | -| **Raw endpoint** traffic (for a given **project, commit, and file path**) | **300** requests per minute | **300** requests per minute | -| **Unauthenticated** traffic (from a given **IP address**) | **500** requests per minute | **500** requests per minute | -| **Authenticated** API traffic (for a given **user**) | **2,000** requests per minute | **2,000** requests per minute | -| **Authenticated** non-API HTTP traffic (for a given **user**) | **1,000** requests per minute | **1,000** requests per minute | -| **All** traffic (from a given **IP address**) | **2,000** requests per minute | **2,000** requests per minute | -| **Issue creation** | **300** requests per minute | **200** requests per minute | -| **Note creation** (on issues and merge requests) | **60** requests per minute | **60** requests per minute | -| **Advanced, project, and group search** API (for a given **IP address**) | **10** requests per minute | **10** requests per minute | -| **GitLab Pages** requests (for a given **IP address**) | | **1000** requests per **50 seconds** | -| **GitLab Pages** requests (for a given **GitLab Pages domain**) | | **5000** requests per **10 seconds** | +| Rate limit | From 2021-02-12 | From 2022-02-03 | +|:---------------------------------------------------------------------------|:------------------------------|:----------------------------------------| +| **Protected paths** (for a given **IP address**) | **10** requests per minute | **10** requests per minute | +| **Raw endpoint** traffic (for a given **project, commit, and file path**) | **300** requests per minute | **300** requests per minute | +| **Unauthenticated** traffic (from a given **IP address**) | **500** requests per minute | **500** requests per minute | +| **Authenticated** API traffic (for a given **user**) | **2,000** requests per minute | **2,000** requests per minute | +| **Authenticated** non-API HTTP traffic (for a given **user**) | **1,000** requests per minute | **1,000** requests per minute | +| **All** traffic (from a given **IP address**) | **2,000** requests per minute | **2,000** requests per minute | +| **Issue creation** | **300** requests per minute | **200** requests per minute | +| **Note creation** (on issues and merge requests) | **60** requests per minute | **60** requests per minute | +| **Advanced, project, and group search** API (for a given **IP address**) | **10** requests per minute | **10** requests per minute | +| **GitLab Pages** requests (for a given **IP address**) | | **1000** requests per **50 seconds** | +| **GitLab Pages** requests (for a given **GitLab Pages domain**) | | **5000** requests per **10 seconds** | +| **Pipeline creation** requests (for a given **project, user, and commit**) | | **25** requests per minute | More details are available on the rate limits for [protected paths](#protected-paths-throttle) and [raw diff --git a/glfm_specification/input/gitlab_flavored_markdown/glfm_example_status.yml b/glfm_specification/input/gitlab_flavored_markdown/glfm_example_status.yml index 3124da068c3..591148b41dd 100644 --- a/glfm_specification/input/gitlab_flavored_markdown/glfm_example_status.yml +++ b/glfm_specification/input/gitlab_flavored_markdown/glfm_example_status.yml @@ -1,17 +1,14 @@ --- -- 06_05__inlines__emphasis_and_strong_emphasis__37: - skip_update_example_snapshots: 'Psych YAML library has a problem with dumping "5__6__78", it thinks its an invalid integer' -- 07_01_first_gitlab_specific_section_with_examples_strong_but_with_two_asterisks: +02_01__preliminaries__tabs__001: + # NOTE: False values are optional, they are only included here for reference. See + # https://docs.gitlab.com/ee/development/gitlab_flavored_markdown/specification_guide/#glfm_example_statusyml + # for more details. skip_update_example_snapshots: false - skip_running_snapshot_static_html_tests: false - skip_running_snapshot_wysiwyg_html_tests: false - skip_running_snapshot_prosemirror_json_tests: false - skip_running_conformance_static_tests: false - skip_running_conformance_wysiwyg_tests: false -- 07_02_first_gitlab_specific_section_with_examples_strong_but_with_html: - skip_update_example_snapshots: false - skip_running_snapshot_static_html_tests: false - skip_running_snapshot_wysiwyg_html_tests: false - skip_running_snapshot_prosemirror_json_tests: false - skip_running_conformance_static_tests: false - skip_running_conformance_wysiwyg_tests: false + skip_update_example_snapshot_html_static: false + skip_update_example_snapshot_html_wysiwyg: false + skip_update_example_snapshot_prosemirror_json: false + skip_running_conformance_static_tests: false # NOT YET SUPPORTED + skip_running_conformance_wysiwyg_tests: false # NOT YET SUPPORTED + skip_running_snapshot_static_html_tests: false # NOT YET SUPPORTED + skip_running_snapshot_wysiwyg_html_tests: false # NOT YET SUPPORTED + skip_running_snapshot_prosemirror_json_tests: false # NOT YET SUPPORTED diff --git a/lib/api/helpers/projects_helpers.rb b/lib/api/helpers/projects_helpers.rb index 7a9dd78e4ed..52cb398d6bf 100644 --- a/lib/api/helpers/projects_helpers.rb +++ b/lib/api/helpers/projects_helpers.rb @@ -169,7 +169,6 @@ module API :merge_commit_template, :squash_commit_template, :repository_storage, - :compliance_framework_setting, :packages_enabled, :service_desk_enabled, :keep_latest_artifact, diff --git a/lib/gitlab/hook_data/merge_request_builder.rb b/lib/gitlab/hook_data/merge_request_builder.rb index 06ddd65d075..2b4bdbd48bd 100644 --- a/lib/gitlab/hook_data/merge_request_builder.rb +++ b/lib/gitlab/hook_data/merge_request_builder.rb @@ -52,7 +52,7 @@ module Gitlab source: merge_request.source_project.try(:hook_attrs), target: merge_request.target_project.hook_attrs, last_commit: merge_request.diff_head_commit&.hook_attrs, - work_in_progress: merge_request.work_in_progress?, + work_in_progress: merge_request.draft?, total_time_spent: merge_request.total_time_spent, time_change: merge_request.time_change, human_total_time_spent: merge_request.human_total_time_spent, diff --git a/lib/gitlab/quick_actions/merge_request_actions.rb b/lib/gitlab/quick_actions/merge_request_actions.rb index abf55f56c73..7bc4400fa5c 100644 --- a/lib/gitlab/quick_actions/merge_request_actions.rb +++ b/lib/gitlab/quick_actions/merge_request_actions.rb @@ -91,7 +91,7 @@ module Gitlab desc 'Toggle the Draft status' explanation do noun = quick_action_target.to_ability_name.humanize(capitalize: false) - if quick_action_target.work_in_progress? + if quick_action_target.draft? _("Unmarks this %{noun} as a draft.") else _("Marks this %{noun} as a draft.") @@ -99,7 +99,7 @@ module Gitlab end execution_message do noun = quick_action_target.to_ability_name.humanize(capitalize: false) - if quick_action_target.work_in_progress? + if quick_action_target.draft? _("Unmarked this %{noun} as a draft.") else _("Marked this %{noun} as a draft.") @@ -108,12 +108,13 @@ module Gitlab types MergeRequest condition do - quick_action_target.respond_to?(:work_in_progress?) && - # Allow it to mark as WIP on MR creation page _or_ through MR notes. + quick_action_target.respond_to?(:draft?) && + # Allow it to mark as draft on MR creation page or through MR notes + # (quick_action_target.new_record? || current_user.can?(:"update_#{quick_action_target.to_ability_name}", quick_action_target)) end command :draft do - @updates[:wip_event] = quick_action_target.work_in_progress? ? 'unwip' : 'wip' + @updates[:wip_event] = quick_action_target.draft? ? 'unwip' : 'wip' end desc _('Set target branch') diff --git a/locale/gitlab.pot b/locale/gitlab.pot index f3c24b16f1e..94e8c4ff946 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -7684,6 +7684,9 @@ msgstr "" msgid "Checkout|Name of company or organization using GitLab" msgstr "" +msgid "Checkout|Name: %{errors}" +msgstr "" + msgid "Checkout|Need more users? Purchase GitLab for your %{company}." msgstr "" @@ -21828,18 +21831,9 @@ msgstr "" msgid "JiraService|This feature requires a Premium plan." msgstr "" -msgid "JiraService|This is a Premium feature" -msgstr "" - -msgid "JiraService|This is an Ultimate feature" -msgstr "" - msgid "JiraService|Transition Jira issues to their final state:" msgstr "" -msgid "JiraService|Upgrade your plan to enable this feature of the Jira Integration." -msgstr "" - msgid "JiraService|Use Jira as this project's issue tracker." msgstr "" @@ -40735,9 +40729,6 @@ msgstr "" msgid "Upgrade offers available!" msgstr "" -msgid "Upgrade your plan" -msgstr "" - msgid "Upload" msgstr "" diff --git a/qa/qa/page/component/invite_members_modal.rb b/qa/qa/page/component/invite_members_modal.rb index 7c536ff651b..18747c19aee 100644 --- a/qa/qa/page/component/invite_members_modal.rb +++ b/qa/qa/page/component/invite_members_modal.rb @@ -27,7 +27,7 @@ module QA element :invite_a_group_button end - base.view 'app/assets/javascripts/invite_members/components/invite_members_trigger.vue' do + base.view 'app/assets/javascripts/invite_members/constants.js' do element :invite_members_button end end diff --git a/qa/qa/page/project/members.rb b/qa/qa/page/project/members.rb index 30748ed920b..4692f3621b8 100644 --- a/qa/qa/page/project/members.rb +++ b/qa/qa/page/project/members.rb @@ -15,7 +15,7 @@ module QA element :invite_a_group_button end - view 'app/assets/javascripts/invite_members/components/invite_members_trigger.vue' do + view 'app/assets/javascripts/invite_members/constants.js' do element :invite_members_button end diff --git a/scripts/lib/glfm/update_example_snapshots.rb b/scripts/lib/glfm/update_example_snapshots.rb index 42ba305565d..9ffa54cd5d4 100644 --- a/scripts/lib/glfm/update_example_snapshots.rb +++ b/scripts/lib/glfm/update_example_snapshots.rb @@ -13,6 +13,10 @@ require_relative 'parse_examples' # for details on the implementation and usage of this script. This developers guide # contains diagrams and documentation of this script, # including explanations and examples of all files it reads and writes. +# +# Also note that this script is intentionally written in a pure-functional (not OO) style, +# with no dependencies on Rails or the GitLab libraries. These choices are intended to make +# it faster and easier to test and debug. module Glfm class UpdateExampleSnapshots include Constants @@ -27,28 +31,20 @@ module Glfm output('(Skipping static HTML generation)') if skip_static_and_wysiwyg - glfm_spec_txt_lines, _glfm_examples_status_lines = read_input_files + output("Reading #{GLFM_SPEC_TXT_PATH}...") + glfm_spec_txt_lines = File.open(GLFM_SPEC_TXT_PATH).readlines # Parse all the examples from `spec.txt`, using a Ruby port of the Python `get_tests` # function the from original CommonMark/GFM `spec_test.py` script. all_examples = parse_examples(glfm_spec_txt_lines) add_example_names(all_examples) + write_snapshot_example_files(all_examples, skip_static_and_wysiwyg: skip_static_and_wysiwyg) end private - def read_input_files - [ - GLFM_SPEC_TXT_PATH, - GLFM_EXAMPLE_STATUS_YML_PATH - ].map do |path| - output("Reading #{path}...") - File.open(path).readlines - end - end - def add_example_names(all_examples) # NOTE: This method assumes: # 1. Section 2 is the first section which contains examples @@ -83,7 +79,7 @@ module Glfm formatted_headers_text = headers.join('__').tr('-', '_').tr(' ', '_').downcase hierarchy_level = "#{h1_count.to_s.rjust(2, '0')}_#{h2_count.to_s.rjust(2, '0')}" - position_within_section = index_within_h2.to_s.rjust(2, '0') + position_within_section = index_within_h2.to_s.rjust(3, '0') name = "#{hierarchy_level}__#{formatted_headers_text}__#{position_within_section}" converted_name = name.tr('(', '').tr(')', '') # remove any parens from the name example[:name] = converted_name @@ -91,6 +87,10 @@ module Glfm end def write_snapshot_example_files(all_examples, skip_static_and_wysiwyg:) + output("Reading #{GLFM_EXAMPLE_STATUS_YML_PATH}...") + glfm_examples_statuses = YAML.safe_load(File.open(GLFM_EXAMPLE_STATUS_YML_PATH)) + validate_glfm_example_status_yml(glfm_examples_statuses) + write_examples_index_yml(all_examples) write_markdown_yml(all_examples) @@ -104,9 +104,20 @@ module Glfm static_html_hash = generate_static_html(markdown_yml_tempfile_path) wysiwyg_html_and_json_hash = generate_wysiwyg_html_and_json(markdown_yml_tempfile_path) - write_html_yml(all_examples, static_html_hash, wysiwyg_html_and_json_hash) + write_html_yml(all_examples, static_html_hash, wysiwyg_html_and_json_hash, glfm_examples_statuses) - write_prosemirror_json_yml(all_examples, wysiwyg_html_and_json_hash) + write_prosemirror_json_yml(all_examples, wysiwyg_html_and_json_hash, glfm_examples_statuses) + end + + def validate_glfm_example_status_yml(glfm_examples_statuses) + glfm_examples_statuses.each do |example_name, statuses| + next unless statuses && + statuses['skip_update_example_snapshots'] && + statuses.any? { |key, value| key.include?('skip_update_example_snapshot_') && !!value } + + raise "Error: '#{example_name}' must not have any 'skip_update_example_snapshot_*' values specified " \ + "if 'skip_update_example_snapshots' is truthy" + end end def write_examples_index_yml(all_examples) @@ -186,27 +197,77 @@ module Glfm YAML.load_file(wysiwyg_html_and_json_tempfile_path) end - def write_html_yml(all_examples, static_html_hash, wysiwyg_html_and_json_hash) - generate_and_write_for_all_examples(all_examples, ES_HTML_YML_PATH) do |example, hash| - hash[example.fetch(:name)] = { + def write_html_yml(all_examples, static_html_hash, wysiwyg_html_and_json_hash, glfm_examples_statuses) + generate_and_write_for_all_examples( + all_examples, ES_HTML_YML_PATH, glfm_examples_statuses + ) do |example, hash, existing_hash| + name = example.fetch(:name) + example_statuses = glfm_examples_statuses[name] || {} + + static = if example_statuses['skip_update_example_snapshot_html_static'] + existing_hash.dig(name, 'static') + else + static_html_hash[name] + end + + wysiwyg = if example_statuses['skip_update_example_snapshot_html_wysiwyg'] + existing_hash.dig(name, 'wysiwyg') + else + wysiwyg_html_and_json_hash.dig(name, 'html') + end + + hash[name] = { 'canonical' => example.fetch(:html), - 'static' => static_html_hash.fetch(example.fetch(:name)), - 'wysiwyg' => wysiwyg_html_and_json_hash.fetch(example.fetch(:name)).fetch('html') - } + 'static' => static, + 'wysiwyg' => wysiwyg + }.compact # Do not assign nil values end end - def write_prosemirror_json_yml(all_examples, wysiwyg_html_and_json_hash) - generate_and_write_for_all_examples(all_examples, ES_PROSEMIRROR_JSON_YML_PATH) do |example, hash| - hash[example.fetch(:name)] = wysiwyg_html_and_json_hash.fetch(example.fetch(:name)).fetch('json') + def write_prosemirror_json_yml(all_examples, wysiwyg_html_and_json_hash, glfm_examples_statuses) + generate_and_write_for_all_examples( + all_examples, ES_PROSEMIRROR_JSON_YML_PATH, glfm_examples_statuses + ) do |example, hash, existing_hash| + name = example.fetch(:name) + + json = if glfm_examples_statuses.dig(name, 'skip_update_example_snapshot_prosemirror_json') + existing_hash.dig(name) + else + wysiwyg_html_and_json_hash.dig(name, 'json') + end + + # Do not assign nil values + hash[name] = json if json end end - def generate_and_write_for_all_examples(all_examples, output_file_path, literal_scalars: true, &generator_block) - output("Writing #{output_file_path}...") - generated_examples_hash = all_examples.each_with_object({}, &generator_block) + def generate_and_write_for_all_examples( + all_examples, output_file_path, glfm_examples_statuses = {}, literal_scalars: true + ) + preserve_existing = !glfm_examples_statuses.empty? + output("#{preserve_existing ? 'Creating/Updating' : 'Creating/Overwriting'} #{output_file_path}...") + existing_hash = preserve_existing ? YAML.safe_load(File.open(output_file_path)) : {} - yaml_string = dump_yaml_with_formatting(generated_examples_hash, literal_scalars: literal_scalars) + output_hash = all_examples.each_with_object({}) do |example, hash| + name = example.fetch(:name) + if (reason = glfm_examples_statuses.dig(name, 'skip_update_example_snapshots')) + # Output the reason for skipping the example, but only once, not multiple times for each file + output("Skipping '#{name}'. Reason: #{reason}") unless glfm_examples_statuses.dig(name, :already_printed) + # We just store the `:already_printed` flag in the hash entry itself. Then we + # don't need an instance variable to keep the state, and this can remain a pure function ;) + glfm_examples_statuses[name][:already_printed] = true + + # Copy over the existing example only if it exists and preserve_existing is true, otherwise omit this example + # noinspection RubyScope + hash[name] = existing_hash[name] if existing_hash[name] + + next + end + + yield(example, hash, existing_hash) + end + + yaml_string = dump_yaml_with_formatting(output_hash, literal_scalars: literal_scalars) write_file(output_file_path, yaml_string) end diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb index 6ac00305adb..aabceda7187 100644 --- a/spec/controllers/groups_controller_spec.rb +++ b/spec/controllers/groups_controller_spec.rb @@ -18,7 +18,6 @@ RSpec.describe GroupsController, factory_default: :keep do let_it_be(:guest) { group.add_guest(create(:user)).user } before do - stub_feature_flags(vue_issues_list: true) enable_admin_mode!(admin_with_admin_mode) end diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index a85a4b9b3e6..58899622443 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -12,10 +12,6 @@ RSpec.describe Projects::IssuesController do let(:issue) { create(:issue, project: project) } let(:spam_action_response_fields) { { 'stub_spam_action_response_fields' => true } } - before do - stub_feature_flags(vue_issues_list: true) - end - describe "GET #index" do context 'external issue tracker' do before do diff --git a/spec/controllers/repositories/git_http_controller_spec.rb b/spec/controllers/repositories/git_http_controller_spec.rb index fb2637238ec..448587c937a 100644 --- a/spec/controllers/repositories/git_http_controller_spec.rb +++ b/spec/controllers/repositories/git_http_controller_spec.rb @@ -43,18 +43,6 @@ RSpec.describe Repositories::GitHttpController do post :git_upload_pack, params: params end - context 'on a read-only instance' do - before do - allow(Gitlab::Database).to receive(:read_only?).and_return(true) - end - - it 'does not update project statistics' do - expect(ProjectDailyStatisticsWorker).not_to receive(:perform_async) - - send_request - end - end - it 'updates project statistics sync for projects' do stub_feature_flags(disable_git_http_fetch_writes: false) @@ -83,7 +71,6 @@ RSpec.describe Repositories::GitHttpController do it 'does not increment statistics' do expect(Projects::FetchStatisticsIncrementService).not_to receive(:new) - expect(ProjectDailyStatisticsWorker).not_to receive(:perform_async) send_request end diff --git a/spec/features/groups/empty_states_spec.rb b/spec/features/groups/empty_states_spec.rb index 71f38401fa1..f11e5c56545 100644 --- a/spec/features/groups/empty_states_spec.rb +++ b/spec/features/groups/empty_states_spec.rb @@ -7,8 +7,6 @@ RSpec.describe 'Group empty states' do let(:user) { create(:group_member, :developer, user: create(:user), group: group ).user } before do - stub_feature_flags(vue_issues_list: true) - sign_in(user) end diff --git a/spec/features/groups/issues_spec.rb b/spec/features/groups/issues_spec.rb index ef3346b9763..c86705832b1 100644 --- a/spec/features/groups/issues_spec.rb +++ b/spec/features/groups/issues_spec.rb @@ -11,10 +11,6 @@ RSpec.describe 'Group issues page' do let(:project_with_issues_disabled) { create(:project, :issues_disabled, group: group) } let(:path) { issues_group_path(group) } - before do - stub_feature_flags(vue_issues_list: true) - end - context 'with shared examples', :js do let(:issuable) { create(:issue, project: project, title: "this is my created issuable")} @@ -140,8 +136,6 @@ RSpec.describe 'Group issues page' do let!(:issue3) { create(:issue, project: project, title: 'Issue #3', relative_position: 3) } before do - stub_feature_flags(vue_issues_list: false) - sign_in(user_in_group) end @@ -164,45 +158,36 @@ RSpec.describe 'Group issues page' do end it 'issues should be draggable and persist order' do - visit issues_group_path(group, sort: 'relative_position') + visit issues_group_path(group) + select_manual_sort - wait_for_requests + drag_to(selector: '.manual-ordering', from_index: 0, to_index: 2) - drag_to(selector: '.manual-ordering', - from_index: 0, - to_index: 2) + expect_issue_order - wait_for_requests + visit issues_group_path(group) - check_issue_order - - visit issues_group_path(group, sort: 'relative_position') - - check_issue_order + expect_issue_order end it 'issues should not be draggable when user is not logged in' do sign_out(user_in_group) - - visit issues_group_path(group, sort: 'relative_position') - wait_for_requests + visit issues_group_path(group) + select_manual_sort - drag_to(selector: '.manual-ordering', - from_index: 0, - to_index: 2) + drag_to(selector: '.manual-ordering', from_index: 0, to_index: 2) - wait_for_requests - - # Issue order should remain the same - page.within('.manual-ordering') do - expect(find('.issue:nth-child(1) .title')).to have_content('Issue #1') - expect(find('.issue:nth-child(2) .title')).to have_content('Issue #2') - expect(find('.issue:nth-child(3) .title')).to have_content('Issue #3') - end + expect(page).to have_text 'An error occurred while reordering issues.' end - def check_issue_order + def select_manual_sort + click_button 'Created date' + click_button 'Manual' + wait_for_requests + end + + def expect_issue_order expect(page).to have_css('.issue:nth-child(1) .title', text: 'Issue #2') expect(page).to have_css('.issue:nth-child(2) .title', text: 'Issue #3') expect(page).to have_css('.issue:nth-child(3) .title', text: 'Issue #1') diff --git a/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb b/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb index 9fe11070187..4e4c0e509b0 100644 --- a/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb +++ b/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb @@ -2,23 +2,50 @@ require 'spec_helper' -RSpec.describe 'Groups > User sees users dropdowns in issuables list' do - let(:entity) { create(:group) } +RSpec.describe 'Groups > User sees users dropdowns in issuables list', :js do + include FilteredSearchHelpers + + let(:group) { create(:group) } let(:user_in_dropdown) { create(:user) } let!(:user_not_in_dropdown) { create(:user) } - let!(:project) { create(:project, group: entity) } + let!(:project) { create(:project, group: group) } before do - entity.add_developer(user_in_dropdown) + group.add_developer(user_in_dropdown) + sign_in(user_in_dropdown) end - it_behaves_like 'issuable user dropdown behaviors' do - let(:issuable) { create(:issue, project: project) } - let(:issuables_path) { issues_group_path(entity) } + describe 'issues' do + let!(:issuable) { create(:issue, project: project) } + + %w[Author Assignee].each do |dropdown| + describe "#{dropdown} dropdown" do + it 'only includes members of the project/group' do + visit issues_group_path(group) + + select_tokens dropdown, '=', submit: false + + expect_suggestion(user_in_dropdown.name) + expect_no_suggestion(user_not_in_dropdown.name) + end + end + end end - it_behaves_like 'issuable user dropdown behaviors' do - let(:issuable) { create(:merge_request, source_project: project) } - let(:issuables_path) { merge_requests_group_path(entity) } + describe 'merge requests' do + let!(:issuable) { create(:merge_request, source_project: project) } + + %w[author assignee].each do |dropdown| + describe "#{dropdown} dropdown" do + it 'only includes members of the project/group' do + visit merge_requests_group_path(group) + + filtered_search.set("#{dropdown}:=") + + expect(find("#js-dropdown-#{dropdown} .filter-dropdown")).to have_content(user_in_dropdown.name) + expect(find("#js-dropdown-#{dropdown} .filter-dropdown")).not_to have_content(user_not_in_dropdown.name) + end + end + end end end diff --git a/spec/features/issuables/issuable_list_spec.rb b/spec/features/issuables/issuable_list_spec.rb index 7edf5fdc5ff..0fa2d238b0a 100644 --- a/spec/features/issuables/issuable_list_spec.rb +++ b/spec/features/issuables/issuable_list_spec.rb @@ -9,8 +9,6 @@ RSpec.describe 'issuable list', :js do issuable_types = [:issue, :merge_request] before do - stub_feature_flags(vue_issues_list: true) - project.add_user(user, :developer) sign_in(user) issuable_types.each { |type| create_issuables(type) } diff --git a/spec/features/issue_rebalancing_spec.rb b/spec/features/issue_rebalancing_spec.rb index 8a05aeec7ec..686aa5eb1b6 100644 --- a/spec/features/issue_rebalancing_spec.rb +++ b/spec/features/issue_rebalancing_spec.rb @@ -15,10 +15,6 @@ RSpec.describe 'Issue rebalancing' do group.add_developer(user) end - before do - stub_feature_flags(vue_issues_list: true) - end - context 'when issue rebalancing is in progress' do before do sign_in(user) diff --git a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb index 18b70c9622a..05eb656461e 100644 --- a/spec/features/issues/filtered_search/dropdown_assignee_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_assignee_spec.rb @@ -9,10 +9,6 @@ RSpec.describe 'Dropdown assignee', :js do let_it_be(:user) { create(:user) } let_it_be(:issue) { create(:issue, project: project) } - before do - stub_feature_flags(vue_issues_list: true) - end - describe 'behavior' do before do project.add_maintainer(user) diff --git a/spec/features/issues/filtered_search/dropdown_author_spec.rb b/spec/features/issues/filtered_search/dropdown_author_spec.rb index 07e2bd3b7e4..36a8f1f3902 100644 --- a/spec/features/issues/filtered_search/dropdown_author_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_author_spec.rb @@ -10,8 +10,6 @@ RSpec.describe 'Dropdown author', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/dropdown_base_spec.rb b/spec/features/issues/filtered_search/dropdown_base_spec.rb index 5fdab288b2d..9e3e3d394cd 100644 --- a/spec/features/issues/filtered_search/dropdown_base_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_base_spec.rb @@ -10,8 +10,6 @@ RSpec.describe 'Dropdown base', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb index d6d59b89a8c..78450a9c3f7 100644 --- a/spec/features/issues/filtered_search/dropdown_emoji_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_emoji_spec.rb @@ -11,8 +11,6 @@ RSpec.describe 'Dropdown emoji', :js do let_it_be(:award_emoji_star) { create(:award_emoji, name: 'star', user: user, awardable: issue) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) create_list(:award_emoji, 2, user: user, name: 'thumbsup') create_list(:award_emoji, 1, user: user, name: 'thumbsdown') diff --git a/spec/features/issues/filtered_search/dropdown_hint_spec.rb b/spec/features/issues/filtered_search/dropdown_hint_spec.rb index c64247b2b15..dcbab308efa 100644 --- a/spec/features/issues/filtered_search/dropdown_hint_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_hint_spec.rb @@ -10,8 +10,6 @@ RSpec.describe 'Dropdown hint', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) end diff --git a/spec/features/issues/filtered_search/dropdown_label_spec.rb b/spec/features/issues/filtered_search/dropdown_label_spec.rb index 67e3792a04c..0ff56909ad1 100644 --- a/spec/features/issues/filtered_search/dropdown_label_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_label_spec.rb @@ -11,8 +11,6 @@ RSpec.describe 'Dropdown label', :js do let_it_be(:label) { create(:label, project: project, title: 'bug-label') } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb index 19a4c8853f1..37d604106f1 100644 --- a/spec/features/issues/filtered_search/dropdown_milestone_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_milestone_spec.rb @@ -12,8 +12,6 @@ RSpec.describe 'Dropdown milestone', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/dropdown_release_spec.rb b/spec/features/issues/filtered_search/dropdown_release_spec.rb index 50ac9068b26..08e20563c8e 100644 --- a/spec/features/issues/filtered_search/dropdown_release_spec.rb +++ b/spec/features/issues/filtered_search/dropdown_release_spec.rb @@ -12,8 +12,6 @@ RSpec.describe 'Dropdown release', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) - project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb index 13bce49e6d1..8d96bbc38cb 100644 --- a/spec/features/issues/filtered_search/filter_issues_spec.rb +++ b/spec/features/issues/filtered_search/filter_issues_spec.rb @@ -19,7 +19,6 @@ RSpec.describe 'Filter issues', :js do end before do - stub_feature_flags(vue_issues_list: true) project.add_maintainer(user) create(:issue, project: project, author: user2, title: "Bug report 1") diff --git a/spec/features/issues/filtered_search/recent_searches_spec.rb b/spec/features/issues/filtered_search/recent_searches_spec.rb index bb5964258be..cb17349dd43 100644 --- a/spec/features/issues/filtered_search/recent_searches_spec.rb +++ b/spec/features/issues/filtered_search/recent_searches_spec.rb @@ -13,8 +13,6 @@ RSpec.describe 'Recent searches', :js do let(:project_1_local_storage_key) { "#{project_1.full_path}-issue-recent-searches" } before do - stub_feature_flags(vue_issues_list: true) - # Visit any fast-loading page so we can clear local storage without a DOM exception visit '/404' remove_recent_searches diff --git a/spec/features/issues/filtered_search/search_bar_spec.rb b/spec/features/issues/filtered_search/search_bar_spec.rb index 8639ec2a227..e075547e326 100644 --- a/spec/features/issues/filtered_search/search_bar_spec.rb +++ b/spec/features/issues/filtered_search/search_bar_spec.rb @@ -10,7 +10,6 @@ RSpec.describe 'Search bar', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) project.add_maintainer(user) sign_in(user) diff --git a/spec/features/issues/filtered_search/visual_tokens_spec.rb b/spec/features/issues/filtered_search/visual_tokens_spec.rb index 9fb6a4cc2af..7a367723609 100644 --- a/spec/features/issues/filtered_search/visual_tokens_spec.rb +++ b/spec/features/issues/filtered_search/visual_tokens_spec.rb @@ -15,7 +15,6 @@ RSpec.describe 'Visual tokens', :js do let_it_be(:issue) { create(:issue, project: project) } before do - stub_feature_flags(vue_issues_list: true) project.add_user(user, :maintainer) project.add_user(user_rock, :maintainer) sign_in(user) diff --git a/spec/features/issues/rss_spec.rb b/spec/features/issues/rss_spec.rb index bdc5f282875..e3faed81c73 100644 --- a/spec/features/issues/rss_spec.rb +++ b/spec/features/issues/rss_spec.rb @@ -13,10 +13,6 @@ RSpec.describe 'Project Issues RSS', :js do group.add_developer(user) end - before do - stub_feature_flags(vue_issues_list: true) - end - context 'when signed in' do let_it_be(:user) { create(:user) } diff --git a/spec/features/issues/user_bulk_edits_issues_labels_spec.rb b/spec/features/issues/user_bulk_edits_issues_labels_spec.rb index 27377f6e1fd..4837d13574c 100644 --- a/spec/features/issues/user_bulk_edits_issues_labels_spec.rb +++ b/spec/features/issues/user_bulk_edits_issues_labels_spec.rb @@ -15,10 +15,6 @@ RSpec.describe 'Issues > Labels bulk assignment' do let(:issue_1_selector) { "#issuable_#{issue1.id}" } let(:issue_2_selector) { "#issuable_#{issue2.id}" } - before do - stub_feature_flags(vue_issues_list: true) - end - context 'as an allowed user', :js do before do project.add_maintainer(user) diff --git a/spec/features/issues/user_bulk_edits_issues_spec.rb b/spec/features/issues/user_bulk_edits_issues_spec.rb index 625303f89e4..0533f1688e2 100644 --- a/spec/features/issues/user_bulk_edits_issues_spec.rb +++ b/spec/features/issues/user_bulk_edits_issues_spec.rb @@ -107,10 +107,6 @@ RSpec.describe 'Multiple issue updating from issues#index', :js do describe 'select all issues' do let!(:issue_2) { create(:issue, project: project) } - before do - stub_feature_flags(vue_issues_list: true) - end - it 'after selecting all issues, unchecking one issue only unselects that one issue' do visit project_issues_path(project) diff --git a/spec/features/issues/user_creates_issue_spec.rb b/spec/features/issues/user_creates_issue_spec.rb index 3bba041dab7..151d3c60fa2 100644 --- a/spec/features/issues/user_creates_issue_spec.rb +++ b/spec/features/issues/user_creates_issue_spec.rb @@ -8,10 +8,6 @@ RSpec.describe "User creates issue" do let_it_be(:project) { create(:project_empty_repo, :public) } let_it_be(:user) { create(:user) } - before do - stub_feature_flags(vue_issues_list: true) - end - context "when unauthenticated" do before do sign_out(:user) diff --git a/spec/features/issues/user_filters_issues_spec.rb b/spec/features/issues/user_filters_issues_spec.rb index 42c2b5d32c1..2941ea6ec36 100644 --- a/spec/features/issues/user_filters_issues_spec.rb +++ b/spec/features/issues/user_filters_issues_spec.rb @@ -7,8 +7,6 @@ RSpec.describe 'User filters issues', :js do let_it_be(:project) { create(:project_empty_repo, :public) } before do - stub_feature_flags(vue_issues_list: true) - %w[foobar barbaz].each do |title| create(:issue, author: user, diff --git a/spec/features/issues/user_sees_breadcrumb_links_spec.rb b/spec/features/issues/user_sees_breadcrumb_links_spec.rb index 1577d7d5ce8..4ec13533a8d 100644 --- a/spec/features/issues/user_sees_breadcrumb_links_spec.rb +++ b/spec/features/issues/user_sees_breadcrumb_links_spec.rb @@ -8,8 +8,6 @@ RSpec.describe 'New issue breadcrumb' do let(:user) { project.creator } before do - stub_feature_flags(vue_issues_list: true) - sign_in(user) visit(new_project_issue_path(project)) end diff --git a/spec/features/issues/user_sorts_issues_spec.rb b/spec/features/issues/user_sorts_issues_spec.rb index 4af313576ed..7add6c782f7 100644 --- a/spec/features/issues/user_sorts_issues_spec.rb +++ b/spec/features/issues/user_sorts_issues_spec.rb @@ -16,8 +16,6 @@ RSpec.describe "User sorts issues" do let_it_be(:later_due_milestone) { create(:milestone, project: project, due_date: '2013-12-12') } before do - stub_feature_flags(vue_issues_list: true) - create_list(:award_emoji, 2, :upvote, awardable: issue1) create_list(:award_emoji, 2, :downvote, awardable: issue2) create(:award_emoji, :downvote, awardable: issue1) diff --git a/spec/features/labels_hierarchy_spec.rb b/spec/features/labels_hierarchy_spec.rb index ea888d4b254..2f22ac8b395 100644 --- a/spec/features/labels_hierarchy_spec.rb +++ b/spec/features/labels_hierarchy_spec.rb @@ -17,8 +17,6 @@ RSpec.describe 'Labels Hierarchy', :js do let!(:project_label_1) { create(:label, project: project_1, title: 'Label_4') } before do - stub_feature_flags(vue_issues_list: true) - grandparent.add_owner(user) sign_in(user) diff --git a/spec/features/merge_requests/user_sorts_merge_requests_spec.rb b/spec/features/merge_requests/user_sorts_merge_requests_spec.rb index 459145d3ef0..4a124299c61 100644 --- a/spec/features/merge_requests/user_sorts_merge_requests_spec.rb +++ b/spec/features/merge_requests/user_sorts_merge_requests_spec.rb @@ -17,8 +17,6 @@ RSpec.describe 'User sorts merge requests', :js do let_it_be(:project) { create(:project, :public, group: group) } before do - stub_feature_flags(vue_issues_list: true) - sign_in(user) visit(project_merge_requests_path(project)) diff --git a/spec/features/user_sorts_things_spec.rb b/spec/features/user_sorts_things_spec.rb index bcf3defe9c6..c6a1cfdc146 100644 --- a/spec/features/user_sorts_things_spec.rb +++ b/spec/features/user_sorts_things_spec.rb @@ -16,8 +16,6 @@ RSpec.describe "User sorts things", :js do let_it_be(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: current_user) } before do - stub_feature_flags(vue_issues_list: true) - project.add_developer(current_user) sign_in(current_user) end diff --git a/spec/fixtures/glfm/example_snapshots/examples_index.yml b/spec/fixtures/glfm/example_snapshots/examples_index.yml index 98463a30cb6..8ca656cbc56 100644 --- a/spec/fixtures/glfm/example_snapshots/examples_index.yml +++ b/spec/fixtures/glfm/example_snapshots/examples_index.yml @@ -1,1370 +1,1370 @@ --- -02_01__preliminaries__tabs__01: +02_01__preliminaries__tabs__001: spec_txt_example_position: 1 source_specification: commonmark -02_01__preliminaries__tabs__02: +02_01__preliminaries__tabs__002: spec_txt_example_position: 2 source_specification: commonmark -02_01__preliminaries__tabs__03: +02_01__preliminaries__tabs__003: spec_txt_example_position: 3 source_specification: commonmark -02_01__preliminaries__tabs__04: +02_01__preliminaries__tabs__004: spec_txt_example_position: 4 source_specification: commonmark -02_01__preliminaries__tabs__05: +02_01__preliminaries__tabs__005: spec_txt_example_position: 5 source_specification: commonmark -02_01__preliminaries__tabs__06: +02_01__preliminaries__tabs__006: spec_txt_example_position: 6 source_specification: commonmark -02_01__preliminaries__tabs__07: +02_01__preliminaries__tabs__007: spec_txt_example_position: 7 source_specification: commonmark -02_01__preliminaries__tabs__08: +02_01__preliminaries__tabs__008: spec_txt_example_position: 8 source_specification: commonmark -02_01__preliminaries__tabs__09: +02_01__preliminaries__tabs__009: spec_txt_example_position: 9 source_specification: commonmark -02_01__preliminaries__tabs__10: +02_01__preliminaries__tabs__010: spec_txt_example_position: 10 source_specification: commonmark -02_01__preliminaries__tabs__11: +02_01__preliminaries__tabs__011: spec_txt_example_position: 11 source_specification: commonmark -03_01__blocks_and_inlines__precedence__01: +03_01__blocks_and_inlines__precedence__001: spec_txt_example_position: 12 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__01: +04_01__leaf_blocks__thematic_breaks__001: spec_txt_example_position: 13 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__02: +04_01__leaf_blocks__thematic_breaks__002: spec_txt_example_position: 14 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__03: +04_01__leaf_blocks__thematic_breaks__003: spec_txt_example_position: 15 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__04: +04_01__leaf_blocks__thematic_breaks__004: spec_txt_example_position: 16 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__05: +04_01__leaf_blocks__thematic_breaks__005: spec_txt_example_position: 17 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__06: +04_01__leaf_blocks__thematic_breaks__006: spec_txt_example_position: 18 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__07: +04_01__leaf_blocks__thematic_breaks__007: spec_txt_example_position: 19 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__08: +04_01__leaf_blocks__thematic_breaks__008: spec_txt_example_position: 20 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__09: +04_01__leaf_blocks__thematic_breaks__009: spec_txt_example_position: 21 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__10: +04_01__leaf_blocks__thematic_breaks__010: spec_txt_example_position: 22 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__11: +04_01__leaf_blocks__thematic_breaks__011: spec_txt_example_position: 23 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__12: +04_01__leaf_blocks__thematic_breaks__012: spec_txt_example_position: 24 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__13: +04_01__leaf_blocks__thematic_breaks__013: spec_txt_example_position: 25 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__14: +04_01__leaf_blocks__thematic_breaks__014: spec_txt_example_position: 26 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__15: +04_01__leaf_blocks__thematic_breaks__015: spec_txt_example_position: 27 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__16: +04_01__leaf_blocks__thematic_breaks__016: spec_txt_example_position: 28 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__17: +04_01__leaf_blocks__thematic_breaks__017: spec_txt_example_position: 29 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__18: +04_01__leaf_blocks__thematic_breaks__018: spec_txt_example_position: 30 source_specification: commonmark -04_01__leaf_blocks__thematic_breaks__19: +04_01__leaf_blocks__thematic_breaks__019: spec_txt_example_position: 31 source_specification: commonmark -04_02__leaf_blocks__atx_headings__01: +04_02__leaf_blocks__atx_headings__001: spec_txt_example_position: 32 source_specification: commonmark -04_02__leaf_blocks__atx_headings__02: +04_02__leaf_blocks__atx_headings__002: spec_txt_example_position: 33 source_specification: commonmark -04_02__leaf_blocks__atx_headings__03: +04_02__leaf_blocks__atx_headings__003: spec_txt_example_position: 34 source_specification: commonmark -04_02__leaf_blocks__atx_headings__04: +04_02__leaf_blocks__atx_headings__004: spec_txt_example_position: 35 source_specification: commonmark -04_02__leaf_blocks__atx_headings__05: +04_02__leaf_blocks__atx_headings__005: spec_txt_example_position: 36 source_specification: commonmark -04_02__leaf_blocks__atx_headings__06: +04_02__leaf_blocks__atx_headings__006: spec_txt_example_position: 37 source_specification: commonmark -04_02__leaf_blocks__atx_headings__07: +04_02__leaf_blocks__atx_headings__007: spec_txt_example_position: 38 source_specification: commonmark -04_02__leaf_blocks__atx_headings__08: +04_02__leaf_blocks__atx_headings__008: spec_txt_example_position: 39 source_specification: commonmark -04_02__leaf_blocks__atx_headings__09: +04_02__leaf_blocks__atx_headings__009: spec_txt_example_position: 40 source_specification: commonmark -04_02__leaf_blocks__atx_headings__10: +04_02__leaf_blocks__atx_headings__010: spec_txt_example_position: 41 source_specification: commonmark -04_02__leaf_blocks__atx_headings__11: +04_02__leaf_blocks__atx_headings__011: spec_txt_example_position: 42 source_specification: commonmark -04_02__leaf_blocks__atx_headings__12: +04_02__leaf_blocks__atx_headings__012: spec_txt_example_position: 43 source_specification: commonmark -04_02__leaf_blocks__atx_headings__13: +04_02__leaf_blocks__atx_headings__013: spec_txt_example_position: 44 source_specification: commonmark -04_02__leaf_blocks__atx_headings__14: +04_02__leaf_blocks__atx_headings__014: spec_txt_example_position: 45 source_specification: commonmark -04_02__leaf_blocks__atx_headings__15: +04_02__leaf_blocks__atx_headings__015: spec_txt_example_position: 46 source_specification: commonmark -04_02__leaf_blocks__atx_headings__16: +04_02__leaf_blocks__atx_headings__016: spec_txt_example_position: 47 source_specification: commonmark -04_02__leaf_blocks__atx_headings__17: +04_02__leaf_blocks__atx_headings__017: spec_txt_example_position: 48 source_specification: commonmark -04_02__leaf_blocks__atx_headings__18: +04_02__leaf_blocks__atx_headings__018: spec_txt_example_position: 49 source_specification: commonmark -04_03__leaf_blocks__setext_headings__01: +04_03__leaf_blocks__setext_headings__001: spec_txt_example_position: 50 source_specification: commonmark -04_03__leaf_blocks__setext_headings__02: +04_03__leaf_blocks__setext_headings__002: spec_txt_example_position: 51 source_specification: commonmark -04_03__leaf_blocks__setext_headings__03: +04_03__leaf_blocks__setext_headings__003: spec_txt_example_position: 52 source_specification: commonmark -04_03__leaf_blocks__setext_headings__04: +04_03__leaf_blocks__setext_headings__004: spec_txt_example_position: 53 source_specification: commonmark -04_03__leaf_blocks__setext_headings__05: +04_03__leaf_blocks__setext_headings__005: spec_txt_example_position: 54 source_specification: commonmark -04_03__leaf_blocks__setext_headings__06: +04_03__leaf_blocks__setext_headings__006: spec_txt_example_position: 55 source_specification: commonmark -04_03__leaf_blocks__setext_headings__07: +04_03__leaf_blocks__setext_headings__007: spec_txt_example_position: 56 source_specification: commonmark -04_03__leaf_blocks__setext_headings__08: +04_03__leaf_blocks__setext_headings__008: spec_txt_example_position: 57 source_specification: commonmark -04_03__leaf_blocks__setext_headings__09: +04_03__leaf_blocks__setext_headings__009: spec_txt_example_position: 58 source_specification: commonmark -04_03__leaf_blocks__setext_headings__10: +04_03__leaf_blocks__setext_headings__010: spec_txt_example_position: 59 source_specification: commonmark -04_03__leaf_blocks__setext_headings__11: +04_03__leaf_blocks__setext_headings__011: spec_txt_example_position: 60 source_specification: commonmark -04_03__leaf_blocks__setext_headings__12: +04_03__leaf_blocks__setext_headings__012: spec_txt_example_position: 61 source_specification: commonmark -04_03__leaf_blocks__setext_headings__13: +04_03__leaf_blocks__setext_headings__013: spec_txt_example_position: 62 source_specification: commonmark -04_03__leaf_blocks__setext_headings__14: +04_03__leaf_blocks__setext_headings__014: spec_txt_example_position: 63 source_specification: commonmark -04_03__leaf_blocks__setext_headings__15: +04_03__leaf_blocks__setext_headings__015: spec_txt_example_position: 64 source_specification: commonmark -04_03__leaf_blocks__setext_headings__16: +04_03__leaf_blocks__setext_headings__016: spec_txt_example_position: 65 source_specification: commonmark -04_03__leaf_blocks__setext_headings__17: +04_03__leaf_blocks__setext_headings__017: spec_txt_example_position: 66 source_specification: commonmark -04_03__leaf_blocks__setext_headings__18: +04_03__leaf_blocks__setext_headings__018: spec_txt_example_position: 67 source_specification: commonmark -04_03__leaf_blocks__setext_headings__19: +04_03__leaf_blocks__setext_headings__019: spec_txt_example_position: 68 source_specification: commonmark -04_03__leaf_blocks__setext_headings__20: +04_03__leaf_blocks__setext_headings__020: spec_txt_example_position: 69 source_specification: commonmark -04_03__leaf_blocks__setext_headings__21: +04_03__leaf_blocks__setext_headings__021: spec_txt_example_position: 70 source_specification: commonmark -04_03__leaf_blocks__setext_headings__22: +04_03__leaf_blocks__setext_headings__022: spec_txt_example_position: 71 source_specification: commonmark -04_03__leaf_blocks__setext_headings__23: +04_03__leaf_blocks__setext_headings__023: spec_txt_example_position: 72 source_specification: commonmark -04_03__leaf_blocks__setext_headings__24: +04_03__leaf_blocks__setext_headings__024: spec_txt_example_position: 73 source_specification: commonmark -04_03__leaf_blocks__setext_headings__25: +04_03__leaf_blocks__setext_headings__025: spec_txt_example_position: 74 source_specification: commonmark -04_03__leaf_blocks__setext_headings__26: +04_03__leaf_blocks__setext_headings__026: spec_txt_example_position: 75 source_specification: commonmark -04_03__leaf_blocks__setext_headings__27: +04_03__leaf_blocks__setext_headings__027: spec_txt_example_position: 76 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__01: +04_04__leaf_blocks__indented_code_blocks__001: spec_txt_example_position: 77 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__02: +04_04__leaf_blocks__indented_code_blocks__002: spec_txt_example_position: 78 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__03: +04_04__leaf_blocks__indented_code_blocks__003: spec_txt_example_position: 79 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__04: +04_04__leaf_blocks__indented_code_blocks__004: spec_txt_example_position: 80 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__05: +04_04__leaf_blocks__indented_code_blocks__005: spec_txt_example_position: 81 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__06: +04_04__leaf_blocks__indented_code_blocks__006: spec_txt_example_position: 82 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__07: +04_04__leaf_blocks__indented_code_blocks__007: spec_txt_example_position: 83 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__08: +04_04__leaf_blocks__indented_code_blocks__008: spec_txt_example_position: 84 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__09: +04_04__leaf_blocks__indented_code_blocks__009: spec_txt_example_position: 85 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__10: +04_04__leaf_blocks__indented_code_blocks__010: spec_txt_example_position: 86 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__11: +04_04__leaf_blocks__indented_code_blocks__011: spec_txt_example_position: 87 source_specification: commonmark -04_04__leaf_blocks__indented_code_blocks__12: +04_04__leaf_blocks__indented_code_blocks__012: spec_txt_example_position: 88 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__01: +04_05__leaf_blocks__fenced_code_blocks__001: spec_txt_example_position: 89 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__02: +04_05__leaf_blocks__fenced_code_blocks__002: spec_txt_example_position: 90 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__03: +04_05__leaf_blocks__fenced_code_blocks__003: spec_txt_example_position: 91 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__04: +04_05__leaf_blocks__fenced_code_blocks__004: spec_txt_example_position: 92 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__05: +04_05__leaf_blocks__fenced_code_blocks__005: spec_txt_example_position: 93 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__06: +04_05__leaf_blocks__fenced_code_blocks__006: spec_txt_example_position: 94 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__07: +04_05__leaf_blocks__fenced_code_blocks__007: spec_txt_example_position: 95 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__08: +04_05__leaf_blocks__fenced_code_blocks__008: spec_txt_example_position: 96 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__09: +04_05__leaf_blocks__fenced_code_blocks__009: spec_txt_example_position: 97 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__10: +04_05__leaf_blocks__fenced_code_blocks__010: spec_txt_example_position: 98 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__11: +04_05__leaf_blocks__fenced_code_blocks__011: spec_txt_example_position: 99 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__12: +04_05__leaf_blocks__fenced_code_blocks__012: spec_txt_example_position: 100 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__13: +04_05__leaf_blocks__fenced_code_blocks__013: spec_txt_example_position: 101 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__14: +04_05__leaf_blocks__fenced_code_blocks__014: spec_txt_example_position: 102 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__15: +04_05__leaf_blocks__fenced_code_blocks__015: spec_txt_example_position: 103 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__16: +04_05__leaf_blocks__fenced_code_blocks__016: spec_txt_example_position: 104 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__17: +04_05__leaf_blocks__fenced_code_blocks__017: spec_txt_example_position: 105 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__18: +04_05__leaf_blocks__fenced_code_blocks__018: spec_txt_example_position: 106 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__19: +04_05__leaf_blocks__fenced_code_blocks__019: spec_txt_example_position: 107 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__20: +04_05__leaf_blocks__fenced_code_blocks__020: spec_txt_example_position: 108 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__21: +04_05__leaf_blocks__fenced_code_blocks__021: spec_txt_example_position: 109 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__22: +04_05__leaf_blocks__fenced_code_blocks__022: spec_txt_example_position: 110 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__23: +04_05__leaf_blocks__fenced_code_blocks__023: spec_txt_example_position: 111 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__24: +04_05__leaf_blocks__fenced_code_blocks__024: spec_txt_example_position: 112 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__25: +04_05__leaf_blocks__fenced_code_blocks__025: spec_txt_example_position: 113 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__26: +04_05__leaf_blocks__fenced_code_blocks__026: spec_txt_example_position: 114 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__27: +04_05__leaf_blocks__fenced_code_blocks__027: spec_txt_example_position: 115 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__28: +04_05__leaf_blocks__fenced_code_blocks__028: spec_txt_example_position: 116 source_specification: commonmark -04_05__leaf_blocks__fenced_code_blocks__29: +04_05__leaf_blocks__fenced_code_blocks__029: spec_txt_example_position: 117 source_specification: commonmark -04_06__leaf_blocks__html_blocks__01: +04_06__leaf_blocks__html_blocks__001: spec_txt_example_position: 118 source_specification: commonmark -04_06__leaf_blocks__html_blocks__02: +04_06__leaf_blocks__html_blocks__002: spec_txt_example_position: 119 source_specification: commonmark -04_06__leaf_blocks__html_blocks__03: +04_06__leaf_blocks__html_blocks__003: spec_txt_example_position: 120 source_specification: commonmark -04_06__leaf_blocks__html_blocks__04: +04_06__leaf_blocks__html_blocks__004: spec_txt_example_position: 121 source_specification: commonmark -04_06__leaf_blocks__html_blocks__05: +04_06__leaf_blocks__html_blocks__005: spec_txt_example_position: 122 source_specification: commonmark -04_06__leaf_blocks__html_blocks__06: +04_06__leaf_blocks__html_blocks__006: spec_txt_example_position: 123 source_specification: commonmark -04_06__leaf_blocks__html_blocks__07: +04_06__leaf_blocks__html_blocks__007: spec_txt_example_position: 124 source_specification: commonmark -04_06__leaf_blocks__html_blocks__08: +04_06__leaf_blocks__html_blocks__008: spec_txt_example_position: 125 source_specification: commonmark -04_06__leaf_blocks__html_blocks__09: +04_06__leaf_blocks__html_blocks__009: spec_txt_example_position: 126 source_specification: commonmark -04_06__leaf_blocks__html_blocks__10: +04_06__leaf_blocks__html_blocks__010: spec_txt_example_position: 127 source_specification: commonmark -04_06__leaf_blocks__html_blocks__11: +04_06__leaf_blocks__html_blocks__011: spec_txt_example_position: 128 source_specification: commonmark -04_06__leaf_blocks__html_blocks__12: +04_06__leaf_blocks__html_blocks__012: spec_txt_example_position: 129 source_specification: commonmark -04_06__leaf_blocks__html_blocks__13: +04_06__leaf_blocks__html_blocks__013: spec_txt_example_position: 130 source_specification: commonmark -04_06__leaf_blocks__html_blocks__14: +04_06__leaf_blocks__html_blocks__014: spec_txt_example_position: 131 source_specification: commonmark -04_06__leaf_blocks__html_blocks__15: +04_06__leaf_blocks__html_blocks__015: spec_txt_example_position: 132 source_specification: commonmark -04_06__leaf_blocks__html_blocks__16: +04_06__leaf_blocks__html_blocks__016: spec_txt_example_position: 133 source_specification: commonmark -04_06__leaf_blocks__html_blocks__17: +04_06__leaf_blocks__html_blocks__017: spec_txt_example_position: 134 source_specification: commonmark -04_06__leaf_blocks__html_blocks__18: +04_06__leaf_blocks__html_blocks__018: spec_txt_example_position: 135 source_specification: commonmark -04_06__leaf_blocks__html_blocks__19: +04_06__leaf_blocks__html_blocks__019: spec_txt_example_position: 136 source_specification: commonmark -04_06__leaf_blocks__html_blocks__20: +04_06__leaf_blocks__html_blocks__020: spec_txt_example_position: 137 source_specification: commonmark -04_06__leaf_blocks__html_blocks__21: +04_06__leaf_blocks__html_blocks__021: spec_txt_example_position: 138 source_specification: commonmark -04_06__leaf_blocks__html_blocks__22: +04_06__leaf_blocks__html_blocks__022: spec_txt_example_position: 139 source_specification: commonmark -04_06__leaf_blocks__html_blocks__23: +04_06__leaf_blocks__html_blocks__023: spec_txt_example_position: 140 source_specification: commonmark -04_06__leaf_blocks__html_blocks__24: +04_06__leaf_blocks__html_blocks__024: spec_txt_example_position: 141 source_specification: commonmark -04_06__leaf_blocks__html_blocks__25: +04_06__leaf_blocks__html_blocks__025: spec_txt_example_position: 142 source_specification: commonmark -04_06__leaf_blocks__html_blocks__26: +04_06__leaf_blocks__html_blocks__026: spec_txt_example_position: 143 source_specification: commonmark -04_06__leaf_blocks__html_blocks__27: +04_06__leaf_blocks__html_blocks__027: spec_txt_example_position: 144 source_specification: commonmark -04_06__leaf_blocks__html_blocks__28: +04_06__leaf_blocks__html_blocks__028: spec_txt_example_position: 145 source_specification: commonmark -04_06__leaf_blocks__html_blocks__29: +04_06__leaf_blocks__html_blocks__029: spec_txt_example_position: 146 source_specification: commonmark -04_06__leaf_blocks__html_blocks__30: +04_06__leaf_blocks__html_blocks__030: spec_txt_example_position: 147 source_specification: commonmark -04_06__leaf_blocks__html_blocks__31: +04_06__leaf_blocks__html_blocks__031: spec_txt_example_position: 148 source_specification: commonmark -04_06__leaf_blocks__html_blocks__32: +04_06__leaf_blocks__html_blocks__032: spec_txt_example_position: 149 source_specification: commonmark -04_06__leaf_blocks__html_blocks__33: +04_06__leaf_blocks__html_blocks__033: spec_txt_example_position: 150 source_specification: commonmark -04_06__leaf_blocks__html_blocks__34: +04_06__leaf_blocks__html_blocks__034: spec_txt_example_position: 151 source_specification: commonmark -04_06__leaf_blocks__html_blocks__35: +04_06__leaf_blocks__html_blocks__035: spec_txt_example_position: 152 source_specification: commonmark -04_06__leaf_blocks__html_blocks__36: +04_06__leaf_blocks__html_blocks__036: spec_txt_example_position: 153 source_specification: commonmark -04_06__leaf_blocks__html_blocks__37: +04_06__leaf_blocks__html_blocks__037: spec_txt_example_position: 154 source_specification: commonmark -04_06__leaf_blocks__html_blocks__38: +04_06__leaf_blocks__html_blocks__038: spec_txt_example_position: 155 source_specification: commonmark -04_06__leaf_blocks__html_blocks__39: +04_06__leaf_blocks__html_blocks__039: spec_txt_example_position: 156 source_specification: commonmark -04_06__leaf_blocks__html_blocks__40: +04_06__leaf_blocks__html_blocks__040: spec_txt_example_position: 157 source_specification: commonmark -04_06__leaf_blocks__html_blocks__41: +04_06__leaf_blocks__html_blocks__041: spec_txt_example_position: 158 source_specification: commonmark -04_06__leaf_blocks__html_blocks__42: +04_06__leaf_blocks__html_blocks__042: spec_txt_example_position: 159 source_specification: commonmark -04_06__leaf_blocks__html_blocks__43: +04_06__leaf_blocks__html_blocks__043: spec_txt_example_position: 160 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__01: +04_07__leaf_blocks__link_reference_definitions__001: spec_txt_example_position: 161 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__02: +04_07__leaf_blocks__link_reference_definitions__002: spec_txt_example_position: 162 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__03: +04_07__leaf_blocks__link_reference_definitions__003: spec_txt_example_position: 163 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__04: +04_07__leaf_blocks__link_reference_definitions__004: spec_txt_example_position: 164 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__05: +04_07__leaf_blocks__link_reference_definitions__005: spec_txt_example_position: 165 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__06: +04_07__leaf_blocks__link_reference_definitions__006: spec_txt_example_position: 166 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__07: +04_07__leaf_blocks__link_reference_definitions__007: spec_txt_example_position: 167 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__08: +04_07__leaf_blocks__link_reference_definitions__008: spec_txt_example_position: 168 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__09: +04_07__leaf_blocks__link_reference_definitions__009: spec_txt_example_position: 169 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__10: +04_07__leaf_blocks__link_reference_definitions__010: spec_txt_example_position: 170 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__11: +04_07__leaf_blocks__link_reference_definitions__011: spec_txt_example_position: 171 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__12: +04_07__leaf_blocks__link_reference_definitions__012: spec_txt_example_position: 172 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__13: +04_07__leaf_blocks__link_reference_definitions__013: spec_txt_example_position: 173 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__14: +04_07__leaf_blocks__link_reference_definitions__014: spec_txt_example_position: 174 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__15: +04_07__leaf_blocks__link_reference_definitions__015: spec_txt_example_position: 175 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__16: +04_07__leaf_blocks__link_reference_definitions__016: spec_txt_example_position: 176 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__17: +04_07__leaf_blocks__link_reference_definitions__017: spec_txt_example_position: 177 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__18: +04_07__leaf_blocks__link_reference_definitions__018: spec_txt_example_position: 178 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__19: +04_07__leaf_blocks__link_reference_definitions__019: spec_txt_example_position: 179 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__20: +04_07__leaf_blocks__link_reference_definitions__020: spec_txt_example_position: 180 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__21: +04_07__leaf_blocks__link_reference_definitions__021: spec_txt_example_position: 181 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__22: +04_07__leaf_blocks__link_reference_definitions__022: spec_txt_example_position: 182 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__23: +04_07__leaf_blocks__link_reference_definitions__023: spec_txt_example_position: 183 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__24: +04_07__leaf_blocks__link_reference_definitions__024: spec_txt_example_position: 184 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__25: +04_07__leaf_blocks__link_reference_definitions__025: spec_txt_example_position: 185 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__26: +04_07__leaf_blocks__link_reference_definitions__026: spec_txt_example_position: 186 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__27: +04_07__leaf_blocks__link_reference_definitions__027: spec_txt_example_position: 187 source_specification: commonmark -04_07__leaf_blocks__link_reference_definitions__28: +04_07__leaf_blocks__link_reference_definitions__028: spec_txt_example_position: 188 source_specification: commonmark -04_08__leaf_blocks__paragraphs__01: +04_08__leaf_blocks__paragraphs__001: spec_txt_example_position: 189 source_specification: commonmark -04_08__leaf_blocks__paragraphs__02: +04_08__leaf_blocks__paragraphs__002: spec_txt_example_position: 190 source_specification: commonmark -04_08__leaf_blocks__paragraphs__03: +04_08__leaf_blocks__paragraphs__003: spec_txt_example_position: 191 source_specification: commonmark -04_08__leaf_blocks__paragraphs__04: +04_08__leaf_blocks__paragraphs__004: spec_txt_example_position: 192 source_specification: commonmark -04_08__leaf_blocks__paragraphs__05: +04_08__leaf_blocks__paragraphs__005: spec_txt_example_position: 193 source_specification: commonmark -04_08__leaf_blocks__paragraphs__06: +04_08__leaf_blocks__paragraphs__006: spec_txt_example_position: 194 source_specification: commonmark -04_08__leaf_blocks__paragraphs__07: +04_08__leaf_blocks__paragraphs__007: spec_txt_example_position: 195 source_specification: commonmark -04_08__leaf_blocks__paragraphs__08: +04_08__leaf_blocks__paragraphs__008: spec_txt_example_position: 196 source_specification: commonmark -04_09__leaf_blocks__blank_lines__01: +04_09__leaf_blocks__blank_lines__001: spec_txt_example_position: 197 source_specification: commonmark -04_10__leaf_blocks__tables_extension__01: +04_10__leaf_blocks__tables_extension__001: spec_txt_example_position: 198 source_specification: github -04_10__leaf_blocks__tables_extension__02: +04_10__leaf_blocks__tables_extension__002: spec_txt_example_position: 199 source_specification: github -04_10__leaf_blocks__tables_extension__03: +04_10__leaf_blocks__tables_extension__003: spec_txt_example_position: 200 source_specification: github -04_10__leaf_blocks__tables_extension__04: +04_10__leaf_blocks__tables_extension__004: spec_txt_example_position: 201 source_specification: github -04_10__leaf_blocks__tables_extension__05: +04_10__leaf_blocks__tables_extension__005: spec_txt_example_position: 202 source_specification: github -04_10__leaf_blocks__tables_extension__06: +04_10__leaf_blocks__tables_extension__006: spec_txt_example_position: 203 source_specification: github -04_10__leaf_blocks__tables_extension__07: +04_10__leaf_blocks__tables_extension__007: spec_txt_example_position: 204 source_specification: github -04_10__leaf_blocks__tables_extension__08: +04_10__leaf_blocks__tables_extension__008: spec_txt_example_position: 205 source_specification: github -05_01__container_blocks__block_quotes__01: +05_01__container_blocks__block_quotes__001: spec_txt_example_position: 206 source_specification: commonmark -05_01__container_blocks__block_quotes__02: +05_01__container_blocks__block_quotes__002: spec_txt_example_position: 207 source_specification: commonmark -05_01__container_blocks__block_quotes__03: +05_01__container_blocks__block_quotes__003: spec_txt_example_position: 208 source_specification: commonmark -05_01__container_blocks__block_quotes__04: +05_01__container_blocks__block_quotes__004: spec_txt_example_position: 209 source_specification: commonmark -05_01__container_blocks__block_quotes__05: +05_01__container_blocks__block_quotes__005: spec_txt_example_position: 210 source_specification: commonmark -05_01__container_blocks__block_quotes__06: +05_01__container_blocks__block_quotes__006: spec_txt_example_position: 211 source_specification: commonmark -05_01__container_blocks__block_quotes__07: +05_01__container_blocks__block_quotes__007: spec_txt_example_position: 212 source_specification: commonmark -05_01__container_blocks__block_quotes__08: +05_01__container_blocks__block_quotes__008: spec_txt_example_position: 213 source_specification: commonmark -05_01__container_blocks__block_quotes__09: +05_01__container_blocks__block_quotes__009: spec_txt_example_position: 214 source_specification: commonmark -05_01__container_blocks__block_quotes__10: +05_01__container_blocks__block_quotes__010: spec_txt_example_position: 215 source_specification: commonmark -05_01__container_blocks__block_quotes__11: +05_01__container_blocks__block_quotes__011: spec_txt_example_position: 216 source_specification: commonmark -05_01__container_blocks__block_quotes__12: +05_01__container_blocks__block_quotes__012: spec_txt_example_position: 217 source_specification: commonmark -05_01__container_blocks__block_quotes__13: +05_01__container_blocks__block_quotes__013: spec_txt_example_position: 218 source_specification: commonmark -05_01__container_blocks__block_quotes__14: +05_01__container_blocks__block_quotes__014: spec_txt_example_position: 219 source_specification: commonmark -05_01__container_blocks__block_quotes__15: +05_01__container_blocks__block_quotes__015: spec_txt_example_position: 220 source_specification: commonmark -05_01__container_blocks__block_quotes__16: +05_01__container_blocks__block_quotes__016: spec_txt_example_position: 221 source_specification: commonmark -05_01__container_blocks__block_quotes__17: +05_01__container_blocks__block_quotes__017: spec_txt_example_position: 222 source_specification: commonmark -05_01__container_blocks__block_quotes__18: +05_01__container_blocks__block_quotes__018: spec_txt_example_position: 223 source_specification: commonmark -05_01__container_blocks__block_quotes__19: +05_01__container_blocks__block_quotes__019: spec_txt_example_position: 224 source_specification: commonmark -05_01__container_blocks__block_quotes__20: +05_01__container_blocks__block_quotes__020: spec_txt_example_position: 225 source_specification: commonmark -05_01__container_blocks__block_quotes__21: +05_01__container_blocks__block_quotes__021: spec_txt_example_position: 226 source_specification: commonmark -05_01__container_blocks__block_quotes__22: +05_01__container_blocks__block_quotes__022: spec_txt_example_position: 227 source_specification: commonmark -05_01__container_blocks__block_quotes__23: +05_01__container_blocks__block_quotes__023: spec_txt_example_position: 228 source_specification: commonmark -05_01__container_blocks__block_quotes__24: +05_01__container_blocks__block_quotes__024: spec_txt_example_position: 229 source_specification: commonmark -05_01__container_blocks__block_quotes__25: +05_01__container_blocks__block_quotes__025: spec_txt_example_position: 230 source_specification: commonmark -05_02__container_blocks__list_items__01: +05_02__container_blocks__list_items__001: spec_txt_example_position: 231 source_specification: commonmark -05_02__container_blocks__list_items__02: +05_02__container_blocks__list_items__002: spec_txt_example_position: 232 source_specification: commonmark -05_02__container_blocks__list_items__03: +05_02__container_blocks__list_items__003: spec_txt_example_position: 233 source_specification: commonmark -05_02__container_blocks__list_items__04: +05_02__container_blocks__list_items__004: spec_txt_example_position: 234 source_specification: commonmark -05_02__container_blocks__list_items__05: +05_02__container_blocks__list_items__005: spec_txt_example_position: 235 source_specification: commonmark -05_02__container_blocks__list_items__06: +05_02__container_blocks__list_items__006: spec_txt_example_position: 236 source_specification: commonmark -05_02__container_blocks__list_items__07: +05_02__container_blocks__list_items__007: spec_txt_example_position: 237 source_specification: commonmark -05_02__container_blocks__list_items__08: +05_02__container_blocks__list_items__008: spec_txt_example_position: 238 source_specification: commonmark -05_02__container_blocks__list_items__09: +05_02__container_blocks__list_items__009: spec_txt_example_position: 239 source_specification: commonmark -05_02__container_blocks__list_items__10: +05_02__container_blocks__list_items__010: spec_txt_example_position: 240 source_specification: commonmark -05_02__container_blocks__list_items__11: +05_02__container_blocks__list_items__011: spec_txt_example_position: 241 source_specification: commonmark -05_02__container_blocks__list_items__12: +05_02__container_blocks__list_items__012: spec_txt_example_position: 242 source_specification: commonmark -05_02__container_blocks__list_items__13: +05_02__container_blocks__list_items__013: spec_txt_example_position: 243 source_specification: commonmark -05_02__container_blocks__list_items__14: +05_02__container_blocks__list_items__014: spec_txt_example_position: 244 source_specification: commonmark -05_02__container_blocks__list_items__15: +05_02__container_blocks__list_items__015: spec_txt_example_position: 245 source_specification: commonmark -05_02__container_blocks__list_items__16: +05_02__container_blocks__list_items__016: spec_txt_example_position: 246 source_specification: commonmark -05_02__container_blocks__list_items__17: +05_02__container_blocks__list_items__017: spec_txt_example_position: 247 source_specification: commonmark -05_02__container_blocks__list_items__18: +05_02__container_blocks__list_items__018: spec_txt_example_position: 248 source_specification: commonmark -05_02__container_blocks__list_items__19: +05_02__container_blocks__list_items__019: spec_txt_example_position: 249 source_specification: commonmark -05_02__container_blocks__list_items__20: +05_02__container_blocks__list_items__020: spec_txt_example_position: 250 source_specification: commonmark -05_02__container_blocks__list_items__21: +05_02__container_blocks__list_items__021: spec_txt_example_position: 251 source_specification: commonmark -05_02__container_blocks__list_items__22: +05_02__container_blocks__list_items__022: spec_txt_example_position: 252 source_specification: commonmark -05_02__container_blocks__list_items__23: +05_02__container_blocks__list_items__023: spec_txt_example_position: 253 source_specification: commonmark -05_02__container_blocks__list_items__24: +05_02__container_blocks__list_items__024: spec_txt_example_position: 254 source_specification: commonmark -05_02__container_blocks__list_items__25: +05_02__container_blocks__list_items__025: spec_txt_example_position: 255 source_specification: commonmark -05_02__container_blocks__list_items__26: +05_02__container_blocks__list_items__026: spec_txt_example_position: 256 source_specification: commonmark -05_02__container_blocks__list_items__27: +05_02__container_blocks__list_items__027: spec_txt_example_position: 257 source_specification: commonmark -05_02__container_blocks__list_items__28: +05_02__container_blocks__list_items__028: spec_txt_example_position: 258 source_specification: commonmark -05_02__container_blocks__list_items__29: +05_02__container_blocks__list_items__029: spec_txt_example_position: 259 source_specification: commonmark -05_02__container_blocks__list_items__30: +05_02__container_blocks__list_items__030: spec_txt_example_position: 260 source_specification: commonmark -05_02__container_blocks__list_items__31: +05_02__container_blocks__list_items__031: spec_txt_example_position: 261 source_specification: commonmark -05_02__container_blocks__list_items__32: +05_02__container_blocks__list_items__032: spec_txt_example_position: 262 source_specification: commonmark -05_02__container_blocks__list_items__33: +05_02__container_blocks__list_items__033: spec_txt_example_position: 263 source_specification: commonmark -05_02__container_blocks__list_items__34: +05_02__container_blocks__list_items__034: spec_txt_example_position: 264 source_specification: commonmark -05_02__container_blocks__list_items__35: +05_02__container_blocks__list_items__035: spec_txt_example_position: 265 source_specification: commonmark -05_02__container_blocks__list_items__36: +05_02__container_blocks__list_items__036: spec_txt_example_position: 266 source_specification: commonmark -05_02__container_blocks__list_items__37: +05_02__container_blocks__list_items__037: spec_txt_example_position: 267 source_specification: commonmark -05_02__container_blocks__list_items__38: +05_02__container_blocks__list_items__038: spec_txt_example_position: 268 source_specification: commonmark -05_02__container_blocks__list_items__39: +05_02__container_blocks__list_items__039: spec_txt_example_position: 269 source_specification: commonmark -05_02__container_blocks__list_items__40: +05_02__container_blocks__list_items__040: spec_txt_example_position: 270 source_specification: commonmark -05_02__container_blocks__list_items__41: +05_02__container_blocks__list_items__041: spec_txt_example_position: 271 source_specification: commonmark -05_02__container_blocks__list_items__42: +05_02__container_blocks__list_items__042: spec_txt_example_position: 272 source_specification: commonmark -05_02__container_blocks__list_items__43: +05_02__container_blocks__list_items__043: spec_txt_example_position: 273 source_specification: commonmark -05_02__container_blocks__list_items__44: +05_02__container_blocks__list_items__044: spec_txt_example_position: 274 source_specification: commonmark -05_02__container_blocks__list_items__45: +05_02__container_blocks__list_items__045: spec_txt_example_position: 275 source_specification: commonmark -05_02__container_blocks__list_items__46: +05_02__container_blocks__list_items__046: spec_txt_example_position: 276 source_specification: commonmark -05_02__container_blocks__list_items__47: +05_02__container_blocks__list_items__047: spec_txt_example_position: 277 source_specification: commonmark -05_02__container_blocks__list_items__48: +05_02__container_blocks__list_items__048: spec_txt_example_position: 278 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__49: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__049: spec_txt_example_position: 281 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__50: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__050: spec_txt_example_position: 282 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__51: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__051: spec_txt_example_position: 283 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__52: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__052: spec_txt_example_position: 284 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__53: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__053: spec_txt_example_position: 285 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__54: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__054: spec_txt_example_position: 286 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__55: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__055: spec_txt_example_position: 287 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__56: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__056: spec_txt_example_position: 288 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__57: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__057: spec_txt_example_position: 289 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__58: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__058: spec_txt_example_position: 290 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__59: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__059: spec_txt_example_position: 291 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__60: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__060: spec_txt_example_position: 292 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__61: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__061: spec_txt_example_position: 293 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__62: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__062: spec_txt_example_position: 294 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__63: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__063: spec_txt_example_position: 295 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__64: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__064: spec_txt_example_position: 296 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__65: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__065: spec_txt_example_position: 297 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__66: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__066: spec_txt_example_position: 298 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__67: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__067: spec_txt_example_position: 299 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__68: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__068: spec_txt_example_position: 300 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__69: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__069: spec_txt_example_position: 301 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__70: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__070: spec_txt_example_position: 302 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__71: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__071: spec_txt_example_position: 303 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__72: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__072: spec_txt_example_position: 304 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__73: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__073: spec_txt_example_position: 305 source_specification: commonmark -05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__74: +05_02__container_blocks__list_items__motivation__task_list_items_extension__lists__074: spec_txt_example_position: 306 source_specification: commonmark -06_01__inlines__01: +06_01__inlines__001: spec_txt_example_position: 307 source_specification: commonmark -06_02__inlines__backslash_escapes__01: +06_02__inlines__backslash_escapes__001: spec_txt_example_position: 308 source_specification: commonmark -06_02__inlines__backslash_escapes__02: +06_02__inlines__backslash_escapes__002: spec_txt_example_position: 309 source_specification: commonmark -06_02__inlines__backslash_escapes__03: +06_02__inlines__backslash_escapes__003: spec_txt_example_position: 310 source_specification: commonmark -06_02__inlines__backslash_escapes__04: +06_02__inlines__backslash_escapes__004: spec_txt_example_position: 311 source_specification: commonmark -06_02__inlines__backslash_escapes__05: +06_02__inlines__backslash_escapes__005: spec_txt_example_position: 312 source_specification: commonmark -06_02__inlines__backslash_escapes__06: +06_02__inlines__backslash_escapes__006: spec_txt_example_position: 313 source_specification: commonmark -06_02__inlines__backslash_escapes__07: +06_02__inlines__backslash_escapes__007: spec_txt_example_position: 314 source_specification: commonmark -06_02__inlines__backslash_escapes__08: +06_02__inlines__backslash_escapes__008: spec_txt_example_position: 315 source_specification: commonmark -06_02__inlines__backslash_escapes__09: +06_02__inlines__backslash_escapes__009: spec_txt_example_position: 316 source_specification: commonmark -06_02__inlines__backslash_escapes__10: +06_02__inlines__backslash_escapes__010: spec_txt_example_position: 317 source_specification: commonmark -06_02__inlines__backslash_escapes__11: +06_02__inlines__backslash_escapes__011: spec_txt_example_position: 318 source_specification: commonmark -06_02__inlines__backslash_escapes__12: +06_02__inlines__backslash_escapes__012: spec_txt_example_position: 319 source_specification: commonmark -06_02__inlines__backslash_escapes__13: +06_02__inlines__backslash_escapes__013: spec_txt_example_position: 320 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__01: +06_03__inlines__entity_and_numeric_character_references__001: spec_txt_example_position: 321 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__02: +06_03__inlines__entity_and_numeric_character_references__002: spec_txt_example_position: 322 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__03: +06_03__inlines__entity_and_numeric_character_references__003: spec_txt_example_position: 323 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__04: +06_03__inlines__entity_and_numeric_character_references__004: spec_txt_example_position: 324 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__05: +06_03__inlines__entity_and_numeric_character_references__005: spec_txt_example_position: 325 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__06: +06_03__inlines__entity_and_numeric_character_references__006: spec_txt_example_position: 326 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__07: +06_03__inlines__entity_and_numeric_character_references__007: spec_txt_example_position: 327 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__08: +06_03__inlines__entity_and_numeric_character_references__008: spec_txt_example_position: 328 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__09: +06_03__inlines__entity_and_numeric_character_references__009: spec_txt_example_position: 329 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__10: +06_03__inlines__entity_and_numeric_character_references__010: spec_txt_example_position: 330 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__11: +06_03__inlines__entity_and_numeric_character_references__011: spec_txt_example_position: 331 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__12: +06_03__inlines__entity_and_numeric_character_references__012: spec_txt_example_position: 332 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__13: +06_03__inlines__entity_and_numeric_character_references__013: spec_txt_example_position: 333 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__14: +06_03__inlines__entity_and_numeric_character_references__014: spec_txt_example_position: 334 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__15: +06_03__inlines__entity_and_numeric_character_references__015: spec_txt_example_position: 335 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__16: +06_03__inlines__entity_and_numeric_character_references__016: spec_txt_example_position: 336 source_specification: commonmark -06_03__inlines__entity_and_numeric_character_references__17: +06_03__inlines__entity_and_numeric_character_references__017: spec_txt_example_position: 337 source_specification: commonmark -06_04__inlines__code_spans__01: +06_04__inlines__code_spans__001: spec_txt_example_position: 338 source_specification: commonmark -06_04__inlines__code_spans__02: +06_04__inlines__code_spans__002: spec_txt_example_position: 339 source_specification: commonmark -06_04__inlines__code_spans__03: +06_04__inlines__code_spans__003: spec_txt_example_position: 340 source_specification: commonmark -06_04__inlines__code_spans__04: +06_04__inlines__code_spans__004: spec_txt_example_position: 341 source_specification: commonmark -06_04__inlines__code_spans__05: +06_04__inlines__code_spans__005: spec_txt_example_position: 342 source_specification: commonmark -06_04__inlines__code_spans__06: +06_04__inlines__code_spans__006: spec_txt_example_position: 343 source_specification: commonmark -06_04__inlines__code_spans__07: +06_04__inlines__code_spans__007: spec_txt_example_position: 344 source_specification: commonmark -06_04__inlines__code_spans__08: +06_04__inlines__code_spans__008: spec_txt_example_position: 345 source_specification: commonmark -06_04__inlines__code_spans__09: +06_04__inlines__code_spans__009: spec_txt_example_position: 346 source_specification: commonmark -06_04__inlines__code_spans__10: +06_04__inlines__code_spans__010: spec_txt_example_position: 347 source_specification: commonmark -06_04__inlines__code_spans__11: +06_04__inlines__code_spans__011: spec_txt_example_position: 348 source_specification: commonmark -06_04__inlines__code_spans__12: +06_04__inlines__code_spans__012: spec_txt_example_position: 349 source_specification: commonmark -06_04__inlines__code_spans__13: +06_04__inlines__code_spans__013: spec_txt_example_position: 350 source_specification: commonmark -06_04__inlines__code_spans__14: +06_04__inlines__code_spans__014: spec_txt_example_position: 351 source_specification: commonmark -06_04__inlines__code_spans__15: +06_04__inlines__code_spans__015: spec_txt_example_position: 352 source_specification: commonmark -06_04__inlines__code_spans__16: +06_04__inlines__code_spans__016: spec_txt_example_position: 353 source_specification: commonmark -06_04__inlines__code_spans__17: +06_04__inlines__code_spans__017: spec_txt_example_position: 354 source_specification: commonmark -06_04__inlines__code_spans__18: +06_04__inlines__code_spans__018: spec_txt_example_position: 355 source_specification: commonmark -06_04__inlines__code_spans__19: +06_04__inlines__code_spans__019: spec_txt_example_position: 356 source_specification: commonmark -06_04__inlines__code_spans__20: +06_04__inlines__code_spans__020: spec_txt_example_position: 357 source_specification: commonmark -06_04__inlines__code_spans__21: +06_04__inlines__code_spans__021: spec_txt_example_position: 358 source_specification: commonmark -06_04__inlines__code_spans__22: +06_04__inlines__code_spans__022: spec_txt_example_position: 359 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__01: +06_05__inlines__emphasis_and_strong_emphasis__001: spec_txt_example_position: 360 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__02: +06_05__inlines__emphasis_and_strong_emphasis__002: spec_txt_example_position: 361 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__03: +06_05__inlines__emphasis_and_strong_emphasis__003: spec_txt_example_position: 362 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__04: +06_05__inlines__emphasis_and_strong_emphasis__004: spec_txt_example_position: 363 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__05: +06_05__inlines__emphasis_and_strong_emphasis__005: spec_txt_example_position: 364 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__06: +06_05__inlines__emphasis_and_strong_emphasis__006: spec_txt_example_position: 365 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__07: +06_05__inlines__emphasis_and_strong_emphasis__007: spec_txt_example_position: 366 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__08: +06_05__inlines__emphasis_and_strong_emphasis__008: spec_txt_example_position: 367 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__09: +06_05__inlines__emphasis_and_strong_emphasis__009: spec_txt_example_position: 368 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__10: +06_05__inlines__emphasis_and_strong_emphasis__010: spec_txt_example_position: 369 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__11: +06_05__inlines__emphasis_and_strong_emphasis__011: spec_txt_example_position: 370 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__12: +06_05__inlines__emphasis_and_strong_emphasis__012: spec_txt_example_position: 371 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__13: +06_05__inlines__emphasis_and_strong_emphasis__013: spec_txt_example_position: 372 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__14: +06_05__inlines__emphasis_and_strong_emphasis__014: spec_txt_example_position: 373 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__15: +06_05__inlines__emphasis_and_strong_emphasis__015: spec_txt_example_position: 374 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__16: +06_05__inlines__emphasis_and_strong_emphasis__016: spec_txt_example_position: 375 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__17: +06_05__inlines__emphasis_and_strong_emphasis__017: spec_txt_example_position: 376 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__18: +06_05__inlines__emphasis_and_strong_emphasis__018: spec_txt_example_position: 377 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__19: +06_05__inlines__emphasis_and_strong_emphasis__019: spec_txt_example_position: 378 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__20: +06_05__inlines__emphasis_and_strong_emphasis__020: spec_txt_example_position: 379 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__21: +06_05__inlines__emphasis_and_strong_emphasis__021: spec_txt_example_position: 380 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__22: +06_05__inlines__emphasis_and_strong_emphasis__022: spec_txt_example_position: 381 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__23: +06_05__inlines__emphasis_and_strong_emphasis__023: spec_txt_example_position: 382 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__24: +06_05__inlines__emphasis_and_strong_emphasis__024: spec_txt_example_position: 383 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__25: +06_05__inlines__emphasis_and_strong_emphasis__025: spec_txt_example_position: 384 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__26: +06_05__inlines__emphasis_and_strong_emphasis__026: spec_txt_example_position: 385 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__27: +06_05__inlines__emphasis_and_strong_emphasis__027: spec_txt_example_position: 386 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__28: +06_05__inlines__emphasis_and_strong_emphasis__028: spec_txt_example_position: 387 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__29: +06_05__inlines__emphasis_and_strong_emphasis__029: spec_txt_example_position: 388 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__30: +06_05__inlines__emphasis_and_strong_emphasis__030: spec_txt_example_position: 389 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__31: +06_05__inlines__emphasis_and_strong_emphasis__031: spec_txt_example_position: 390 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__32: +06_05__inlines__emphasis_and_strong_emphasis__032: spec_txt_example_position: 391 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__33: +06_05__inlines__emphasis_and_strong_emphasis__033: spec_txt_example_position: 392 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__34: +06_05__inlines__emphasis_and_strong_emphasis__034: spec_txt_example_position: 393 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__35: +06_05__inlines__emphasis_and_strong_emphasis__035: spec_txt_example_position: 394 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__36: +06_05__inlines__emphasis_and_strong_emphasis__036: spec_txt_example_position: 395 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__37: +06_05__inlines__emphasis_and_strong_emphasis__037: spec_txt_example_position: 396 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__38: +06_05__inlines__emphasis_and_strong_emphasis__038: spec_txt_example_position: 397 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__39: +06_05__inlines__emphasis_and_strong_emphasis__039: spec_txt_example_position: 398 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__40: +06_05__inlines__emphasis_and_strong_emphasis__040: spec_txt_example_position: 399 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__41: +06_05__inlines__emphasis_and_strong_emphasis__041: spec_txt_example_position: 400 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__42: +06_05__inlines__emphasis_and_strong_emphasis__042: spec_txt_example_position: 401 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__43: +06_05__inlines__emphasis_and_strong_emphasis__043: spec_txt_example_position: 402 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__44: +06_05__inlines__emphasis_and_strong_emphasis__044: spec_txt_example_position: 403 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__45: +06_05__inlines__emphasis_and_strong_emphasis__045: spec_txt_example_position: 404 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__46: +06_05__inlines__emphasis_and_strong_emphasis__046: spec_txt_example_position: 405 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__47: +06_05__inlines__emphasis_and_strong_emphasis__047: spec_txt_example_position: 406 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__48: +06_05__inlines__emphasis_and_strong_emphasis__048: spec_txt_example_position: 407 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__49: +06_05__inlines__emphasis_and_strong_emphasis__049: spec_txt_example_position: 408 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__50: +06_05__inlines__emphasis_and_strong_emphasis__050: spec_txt_example_position: 409 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__51: +06_05__inlines__emphasis_and_strong_emphasis__051: spec_txt_example_position: 410 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__52: +06_05__inlines__emphasis_and_strong_emphasis__052: spec_txt_example_position: 411 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__53: +06_05__inlines__emphasis_and_strong_emphasis__053: spec_txt_example_position: 412 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__54: +06_05__inlines__emphasis_and_strong_emphasis__054: spec_txt_example_position: 413 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__55: +06_05__inlines__emphasis_and_strong_emphasis__055: spec_txt_example_position: 414 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__56: +06_05__inlines__emphasis_and_strong_emphasis__056: spec_txt_example_position: 415 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__57: +06_05__inlines__emphasis_and_strong_emphasis__057: spec_txt_example_position: 416 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__58: +06_05__inlines__emphasis_and_strong_emphasis__058: spec_txt_example_position: 417 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__59: +06_05__inlines__emphasis_and_strong_emphasis__059: spec_txt_example_position: 418 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__60: +06_05__inlines__emphasis_and_strong_emphasis__060: spec_txt_example_position: 419 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__61: +06_05__inlines__emphasis_and_strong_emphasis__061: spec_txt_example_position: 420 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__62: +06_05__inlines__emphasis_and_strong_emphasis__062: spec_txt_example_position: 421 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__63: +06_05__inlines__emphasis_and_strong_emphasis__063: spec_txt_example_position: 422 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__64: +06_05__inlines__emphasis_and_strong_emphasis__064: spec_txt_example_position: 423 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__65: +06_05__inlines__emphasis_and_strong_emphasis__065: spec_txt_example_position: 424 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__66: +06_05__inlines__emphasis_and_strong_emphasis__066: spec_txt_example_position: 425 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__67: +06_05__inlines__emphasis_and_strong_emphasis__067: spec_txt_example_position: 426 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__68: +06_05__inlines__emphasis_and_strong_emphasis__068: spec_txt_example_position: 427 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__69: +06_05__inlines__emphasis_and_strong_emphasis__069: spec_txt_example_position: 428 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__70: +06_05__inlines__emphasis_and_strong_emphasis__070: spec_txt_example_position: 429 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__71: +06_05__inlines__emphasis_and_strong_emphasis__071: spec_txt_example_position: 430 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__72: +06_05__inlines__emphasis_and_strong_emphasis__072: spec_txt_example_position: 431 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__73: +06_05__inlines__emphasis_and_strong_emphasis__073: spec_txt_example_position: 432 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__74: +06_05__inlines__emphasis_and_strong_emphasis__074: spec_txt_example_position: 433 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__75: +06_05__inlines__emphasis_and_strong_emphasis__075: spec_txt_example_position: 434 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__76: +06_05__inlines__emphasis_and_strong_emphasis__076: spec_txt_example_position: 435 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__77: +06_05__inlines__emphasis_and_strong_emphasis__077: spec_txt_example_position: 436 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__78: +06_05__inlines__emphasis_and_strong_emphasis__078: spec_txt_example_position: 437 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__79: +06_05__inlines__emphasis_and_strong_emphasis__079: spec_txt_example_position: 438 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__80: +06_05__inlines__emphasis_and_strong_emphasis__080: spec_txt_example_position: 439 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__81: +06_05__inlines__emphasis_and_strong_emphasis__081: spec_txt_example_position: 440 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__82: +06_05__inlines__emphasis_and_strong_emphasis__082: spec_txt_example_position: 441 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__83: +06_05__inlines__emphasis_and_strong_emphasis__083: spec_txt_example_position: 442 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__84: +06_05__inlines__emphasis_and_strong_emphasis__084: spec_txt_example_position: 443 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__85: +06_05__inlines__emphasis_and_strong_emphasis__085: spec_txt_example_position: 444 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__86: +06_05__inlines__emphasis_and_strong_emphasis__086: spec_txt_example_position: 445 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__87: +06_05__inlines__emphasis_and_strong_emphasis__087: spec_txt_example_position: 446 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__88: +06_05__inlines__emphasis_and_strong_emphasis__088: spec_txt_example_position: 447 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__89: +06_05__inlines__emphasis_and_strong_emphasis__089: spec_txt_example_position: 448 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__90: +06_05__inlines__emphasis_and_strong_emphasis__090: spec_txt_example_position: 449 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__91: +06_05__inlines__emphasis_and_strong_emphasis__091: spec_txt_example_position: 450 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__92: +06_05__inlines__emphasis_and_strong_emphasis__092: spec_txt_example_position: 451 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__93: +06_05__inlines__emphasis_and_strong_emphasis__093: spec_txt_example_position: 452 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__94: +06_05__inlines__emphasis_and_strong_emphasis__094: spec_txt_example_position: 453 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__95: +06_05__inlines__emphasis_and_strong_emphasis__095: spec_txt_example_position: 454 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__96: +06_05__inlines__emphasis_and_strong_emphasis__096: spec_txt_example_position: 455 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__97: +06_05__inlines__emphasis_and_strong_emphasis__097: spec_txt_example_position: 456 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__98: +06_05__inlines__emphasis_and_strong_emphasis__098: spec_txt_example_position: 457 source_specification: commonmark -06_05__inlines__emphasis_and_strong_emphasis__99: +06_05__inlines__emphasis_and_strong_emphasis__099: spec_txt_example_position: 458 source_specification: commonmark 06_05__inlines__emphasis_and_strong_emphasis__100: @@ -1463,558 +1463,558 @@ 06_05__inlines__emphasis_and_strong_emphasis__131: spec_txt_example_position: 490 source_specification: commonmark -06_06__inlines__strikethrough_extension__01: +06_06__inlines__strikethrough_extension__001: spec_txt_example_position: 491 source_specification: github -06_06__inlines__strikethrough_extension__02: +06_06__inlines__strikethrough_extension__002: spec_txt_example_position: 492 source_specification: github -06_07__inlines__links__01: +06_07__inlines__links__001: spec_txt_example_position: 493 source_specification: commonmark -06_07__inlines__links__02: +06_07__inlines__links__002: spec_txt_example_position: 494 source_specification: commonmark -06_07__inlines__links__03: +06_07__inlines__links__003: spec_txt_example_position: 495 source_specification: commonmark -06_07__inlines__links__04: +06_07__inlines__links__004: spec_txt_example_position: 496 source_specification: commonmark -06_07__inlines__links__05: +06_07__inlines__links__005: spec_txt_example_position: 497 source_specification: commonmark -06_07__inlines__links__06: +06_07__inlines__links__006: spec_txt_example_position: 498 source_specification: commonmark -06_07__inlines__links__07: +06_07__inlines__links__007: spec_txt_example_position: 499 source_specification: commonmark -06_07__inlines__links__08: +06_07__inlines__links__008: spec_txt_example_position: 500 source_specification: commonmark -06_07__inlines__links__09: +06_07__inlines__links__009: spec_txt_example_position: 501 source_specification: commonmark -06_07__inlines__links__10: +06_07__inlines__links__010: spec_txt_example_position: 502 source_specification: commonmark -06_07__inlines__links__11: +06_07__inlines__links__011: spec_txt_example_position: 503 source_specification: commonmark -06_07__inlines__links__12: +06_07__inlines__links__012: spec_txt_example_position: 504 source_specification: commonmark -06_07__inlines__links__13: +06_07__inlines__links__013: spec_txt_example_position: 505 source_specification: commonmark -06_07__inlines__links__14: +06_07__inlines__links__014: spec_txt_example_position: 506 source_specification: commonmark -06_07__inlines__links__15: +06_07__inlines__links__015: spec_txt_example_position: 507 source_specification: commonmark -06_07__inlines__links__16: +06_07__inlines__links__016: spec_txt_example_position: 508 source_specification: commonmark -06_07__inlines__links__17: +06_07__inlines__links__017: spec_txt_example_position: 509 source_specification: commonmark -06_07__inlines__links__18: +06_07__inlines__links__018: spec_txt_example_position: 510 source_specification: commonmark -06_07__inlines__links__19: +06_07__inlines__links__019: spec_txt_example_position: 511 source_specification: commonmark -06_07__inlines__links__20: +06_07__inlines__links__020: spec_txt_example_position: 512 source_specification: commonmark -06_07__inlines__links__21: +06_07__inlines__links__021: spec_txt_example_position: 513 source_specification: commonmark -06_07__inlines__links__22: +06_07__inlines__links__022: spec_txt_example_position: 514 source_specification: commonmark -06_07__inlines__links__23: +06_07__inlines__links__023: spec_txt_example_position: 515 source_specification: commonmark -06_07__inlines__links__24: +06_07__inlines__links__024: spec_txt_example_position: 516 source_specification: commonmark -06_07__inlines__links__25: +06_07__inlines__links__025: spec_txt_example_position: 517 source_specification: commonmark -06_07__inlines__links__26: +06_07__inlines__links__026: spec_txt_example_position: 518 source_specification: commonmark -06_07__inlines__links__27: +06_07__inlines__links__027: spec_txt_example_position: 519 source_specification: commonmark -06_07__inlines__links__28: +06_07__inlines__links__028: spec_txt_example_position: 520 source_specification: commonmark -06_07__inlines__links__29: +06_07__inlines__links__029: spec_txt_example_position: 521 source_specification: commonmark -06_07__inlines__links__30: +06_07__inlines__links__030: spec_txt_example_position: 522 source_specification: commonmark -06_07__inlines__links__31: +06_07__inlines__links__031: spec_txt_example_position: 523 source_specification: commonmark -06_07__inlines__links__32: +06_07__inlines__links__032: spec_txt_example_position: 524 source_specification: commonmark -06_07__inlines__links__33: +06_07__inlines__links__033: spec_txt_example_position: 525 source_specification: commonmark -06_07__inlines__links__34: +06_07__inlines__links__034: spec_txt_example_position: 526 source_specification: commonmark -06_07__inlines__links__35: +06_07__inlines__links__035: spec_txt_example_position: 527 source_specification: commonmark -06_07__inlines__links__36: +06_07__inlines__links__036: spec_txt_example_position: 528 source_specification: commonmark -06_07__inlines__links__37: +06_07__inlines__links__037: spec_txt_example_position: 529 source_specification: commonmark -06_07__inlines__links__38: +06_07__inlines__links__038: spec_txt_example_position: 530 source_specification: commonmark -06_07__inlines__links__39: +06_07__inlines__links__039: spec_txt_example_position: 531 source_specification: commonmark -06_07__inlines__links__40: +06_07__inlines__links__040: spec_txt_example_position: 532 source_specification: commonmark -06_07__inlines__links__41: +06_07__inlines__links__041: spec_txt_example_position: 533 source_specification: commonmark -06_07__inlines__links__42: +06_07__inlines__links__042: spec_txt_example_position: 534 source_specification: commonmark -06_07__inlines__links__43: +06_07__inlines__links__043: spec_txt_example_position: 535 source_specification: commonmark -06_07__inlines__links__44: +06_07__inlines__links__044: spec_txt_example_position: 536 source_specification: commonmark -06_07__inlines__links__45: +06_07__inlines__links__045: spec_txt_example_position: 537 source_specification: commonmark -06_07__inlines__links__46: +06_07__inlines__links__046: spec_txt_example_position: 538 source_specification: commonmark -06_07__inlines__links__47: +06_07__inlines__links__047: spec_txt_example_position: 539 source_specification: commonmark -06_07__inlines__links__48: +06_07__inlines__links__048: spec_txt_example_position: 540 source_specification: commonmark -06_07__inlines__links__49: +06_07__inlines__links__049: spec_txt_example_position: 541 source_specification: commonmark -06_07__inlines__links__50: +06_07__inlines__links__050: spec_txt_example_position: 542 source_specification: commonmark -06_07__inlines__links__51: +06_07__inlines__links__051: spec_txt_example_position: 543 source_specification: commonmark -06_07__inlines__links__52: +06_07__inlines__links__052: spec_txt_example_position: 544 source_specification: commonmark -06_07__inlines__links__53: +06_07__inlines__links__053: spec_txt_example_position: 545 source_specification: commonmark -06_07__inlines__links__54: +06_07__inlines__links__054: spec_txt_example_position: 546 source_specification: commonmark -06_07__inlines__links__55: +06_07__inlines__links__055: spec_txt_example_position: 547 source_specification: commonmark -06_07__inlines__links__56: +06_07__inlines__links__056: spec_txt_example_position: 548 source_specification: commonmark -06_07__inlines__links__57: +06_07__inlines__links__057: spec_txt_example_position: 549 source_specification: commonmark -06_07__inlines__links__58: +06_07__inlines__links__058: spec_txt_example_position: 550 source_specification: commonmark -06_07__inlines__links__59: +06_07__inlines__links__059: spec_txt_example_position: 551 source_specification: commonmark -06_07__inlines__links__60: +06_07__inlines__links__060: spec_txt_example_position: 552 source_specification: commonmark -06_07__inlines__links__61: +06_07__inlines__links__061: spec_txt_example_position: 553 source_specification: commonmark -06_07__inlines__links__62: +06_07__inlines__links__062: spec_txt_example_position: 554 source_specification: commonmark -06_07__inlines__links__63: +06_07__inlines__links__063: spec_txt_example_position: 555 source_specification: commonmark -06_07__inlines__links__64: +06_07__inlines__links__064: spec_txt_example_position: 556 source_specification: commonmark -06_07__inlines__links__65: +06_07__inlines__links__065: spec_txt_example_position: 557 source_specification: commonmark -06_07__inlines__links__66: +06_07__inlines__links__066: spec_txt_example_position: 558 source_specification: commonmark -06_07__inlines__links__67: +06_07__inlines__links__067: spec_txt_example_position: 559 source_specification: commonmark -06_07__inlines__links__68: +06_07__inlines__links__068: spec_txt_example_position: 560 source_specification: commonmark -06_07__inlines__links__69: +06_07__inlines__links__069: spec_txt_example_position: 561 source_specification: commonmark -06_07__inlines__links__70: +06_07__inlines__links__070: spec_txt_example_position: 562 source_specification: commonmark -06_07__inlines__links__71: +06_07__inlines__links__071: spec_txt_example_position: 563 source_specification: commonmark -06_07__inlines__links__72: +06_07__inlines__links__072: spec_txt_example_position: 564 source_specification: commonmark -06_07__inlines__links__73: +06_07__inlines__links__073: spec_txt_example_position: 565 source_specification: commonmark -06_07__inlines__links__74: +06_07__inlines__links__074: spec_txt_example_position: 566 source_specification: commonmark -06_07__inlines__links__75: +06_07__inlines__links__075: spec_txt_example_position: 567 source_specification: commonmark -06_07__inlines__links__76: +06_07__inlines__links__076: spec_txt_example_position: 568 source_specification: commonmark -06_07__inlines__links__77: +06_07__inlines__links__077: spec_txt_example_position: 569 source_specification: commonmark -06_07__inlines__links__78: +06_07__inlines__links__078: spec_txt_example_position: 570 source_specification: commonmark -06_07__inlines__links__79: +06_07__inlines__links__079: spec_txt_example_position: 571 source_specification: commonmark -06_07__inlines__links__80: +06_07__inlines__links__080: spec_txt_example_position: 572 source_specification: commonmark -06_07__inlines__links__81: +06_07__inlines__links__081: spec_txt_example_position: 573 source_specification: commonmark -06_07__inlines__links__82: +06_07__inlines__links__082: spec_txt_example_position: 574 source_specification: commonmark -06_07__inlines__links__83: +06_07__inlines__links__083: spec_txt_example_position: 575 source_specification: commonmark -06_07__inlines__links__84: +06_07__inlines__links__084: spec_txt_example_position: 576 source_specification: commonmark -06_07__inlines__links__85: +06_07__inlines__links__085: spec_txt_example_position: 577 source_specification: commonmark -06_07__inlines__links__86: +06_07__inlines__links__086: spec_txt_example_position: 578 source_specification: commonmark -06_07__inlines__links__87: +06_07__inlines__links__087: spec_txt_example_position: 579 source_specification: commonmark -06_08__inlines__images__01: +06_08__inlines__images__001: spec_txt_example_position: 580 source_specification: commonmark -06_08__inlines__images__02: +06_08__inlines__images__002: spec_txt_example_position: 581 source_specification: commonmark -06_08__inlines__images__03: +06_08__inlines__images__003: spec_txt_example_position: 582 source_specification: commonmark -06_08__inlines__images__04: +06_08__inlines__images__004: spec_txt_example_position: 583 source_specification: commonmark -06_08__inlines__images__05: +06_08__inlines__images__005: spec_txt_example_position: 584 source_specification: commonmark -06_08__inlines__images__06: +06_08__inlines__images__006: spec_txt_example_position: 585 source_specification: commonmark -06_08__inlines__images__07: +06_08__inlines__images__007: spec_txt_example_position: 586 source_specification: commonmark -06_08__inlines__images__08: +06_08__inlines__images__008: spec_txt_example_position: 587 source_specification: commonmark -06_08__inlines__images__09: +06_08__inlines__images__009: spec_txt_example_position: 588 source_specification: commonmark -06_08__inlines__images__10: +06_08__inlines__images__010: spec_txt_example_position: 589 source_specification: commonmark -06_08__inlines__images__11: +06_08__inlines__images__011: spec_txt_example_position: 590 source_specification: commonmark -06_08__inlines__images__12: +06_08__inlines__images__012: spec_txt_example_position: 591 source_specification: commonmark -06_08__inlines__images__13: +06_08__inlines__images__013: spec_txt_example_position: 592 source_specification: commonmark -06_08__inlines__images__14: +06_08__inlines__images__014: spec_txt_example_position: 593 source_specification: commonmark -06_08__inlines__images__15: +06_08__inlines__images__015: spec_txt_example_position: 594 source_specification: commonmark -06_08__inlines__images__16: +06_08__inlines__images__016: spec_txt_example_position: 595 source_specification: commonmark -06_08__inlines__images__17: +06_08__inlines__images__017: spec_txt_example_position: 596 source_specification: commonmark -06_08__inlines__images__18: +06_08__inlines__images__018: spec_txt_example_position: 597 source_specification: commonmark -06_08__inlines__images__19: +06_08__inlines__images__019: spec_txt_example_position: 598 source_specification: commonmark -06_08__inlines__images__20: +06_08__inlines__images__020: spec_txt_example_position: 599 source_specification: commonmark -06_08__inlines__images__21: +06_08__inlines__images__021: spec_txt_example_position: 600 source_specification: commonmark -06_08__inlines__images__22: +06_08__inlines__images__022: spec_txt_example_position: 601 source_specification: commonmark -06_09__inlines__autolinks__01: +06_09__inlines__autolinks__001: spec_txt_example_position: 602 source_specification: commonmark -06_09__inlines__autolinks__02: +06_09__inlines__autolinks__002: spec_txt_example_position: 603 source_specification: commonmark -06_09__inlines__autolinks__03: +06_09__inlines__autolinks__003: spec_txt_example_position: 604 source_specification: commonmark -06_09__inlines__autolinks__04: +06_09__inlines__autolinks__004: spec_txt_example_position: 605 source_specification: commonmark -06_09__inlines__autolinks__05: +06_09__inlines__autolinks__005: spec_txt_example_position: 606 source_specification: commonmark -06_09__inlines__autolinks__06: +06_09__inlines__autolinks__006: spec_txt_example_position: 607 source_specification: commonmark -06_09__inlines__autolinks__07: +06_09__inlines__autolinks__007: spec_txt_example_position: 608 source_specification: commonmark -06_09__inlines__autolinks__08: +06_09__inlines__autolinks__008: spec_txt_example_position: 609 source_specification: commonmark -06_09__inlines__autolinks__09: +06_09__inlines__autolinks__009: spec_txt_example_position: 610 source_specification: commonmark -06_09__inlines__autolinks__10: +06_09__inlines__autolinks__010: spec_txt_example_position: 611 source_specification: commonmark -06_09__inlines__autolinks__11: +06_09__inlines__autolinks__011: spec_txt_example_position: 612 source_specification: commonmark -06_09__inlines__autolinks__12: +06_09__inlines__autolinks__012: spec_txt_example_position: 613 source_specification: commonmark -06_09__inlines__autolinks__13: +06_09__inlines__autolinks__013: spec_txt_example_position: 614 source_specification: commonmark -06_09__inlines__autolinks__14: +06_09__inlines__autolinks__014: spec_txt_example_position: 615 source_specification: commonmark -06_09__inlines__autolinks__15: +06_09__inlines__autolinks__015: spec_txt_example_position: 616 source_specification: commonmark -06_09__inlines__autolinks__16: +06_09__inlines__autolinks__016: spec_txt_example_position: 617 source_specification: commonmark -06_09__inlines__autolinks__17: +06_09__inlines__autolinks__017: spec_txt_example_position: 618 source_specification: commonmark -06_09__inlines__autolinks__18: +06_09__inlines__autolinks__018: spec_txt_example_position: 619 source_specification: commonmark -06_09__inlines__autolinks__19: +06_09__inlines__autolinks__019: spec_txt_example_position: 620 source_specification: commonmark -06_10__inlines__autolinks_extension__01: +06_10__inlines__autolinks_extension__001: spec_txt_example_position: 621 source_specification: github -06_10__inlines__autolinks_extension__02: +06_10__inlines__autolinks_extension__002: spec_txt_example_position: 622 source_specification: github -06_10__inlines__autolinks_extension__03: +06_10__inlines__autolinks_extension__003: spec_txt_example_position: 623 source_specification: github -06_10__inlines__autolinks_extension__04: +06_10__inlines__autolinks_extension__004: spec_txt_example_position: 624 source_specification: github -06_10__inlines__autolinks_extension__05: +06_10__inlines__autolinks_extension__005: spec_txt_example_position: 625 source_specification: github -06_10__inlines__autolinks_extension__06: +06_10__inlines__autolinks_extension__006: spec_txt_example_position: 626 source_specification: github -06_10__inlines__autolinks_extension__07: +06_10__inlines__autolinks_extension__007: spec_txt_example_position: 627 source_specification: github -06_10__inlines__autolinks_extension__08: +06_10__inlines__autolinks_extension__008: spec_txt_example_position: 628 source_specification: github -06_10__inlines__autolinks_extension__09: +06_10__inlines__autolinks_extension__009: spec_txt_example_position: 629 source_specification: github -06_10__inlines__autolinks_extension__10: +06_10__inlines__autolinks_extension__010: spec_txt_example_position: 630 source_specification: github -06_10__inlines__autolinks_extension__11: +06_10__inlines__autolinks_extension__011: spec_txt_example_position: 631 source_specification: github -06_11__inlines__raw_html__01: +06_11__inlines__raw_html__001: spec_txt_example_position: 632 source_specification: commonmark -06_11__inlines__raw_html__02: +06_11__inlines__raw_html__002: spec_txt_example_position: 633 source_specification: commonmark -06_11__inlines__raw_html__03: +06_11__inlines__raw_html__003: spec_txt_example_position: 634 source_specification: commonmark -06_11__inlines__raw_html__04: +06_11__inlines__raw_html__004: spec_txt_example_position: 635 source_specification: commonmark -06_11__inlines__raw_html__05: +06_11__inlines__raw_html__005: spec_txt_example_position: 636 source_specification: commonmark -06_11__inlines__raw_html__06: +06_11__inlines__raw_html__006: spec_txt_example_position: 637 source_specification: commonmark -06_11__inlines__raw_html__07: +06_11__inlines__raw_html__007: spec_txt_example_position: 638 source_specification: commonmark -06_11__inlines__raw_html__08: +06_11__inlines__raw_html__008: spec_txt_example_position: 639 source_specification: commonmark -06_11__inlines__raw_html__09: +06_11__inlines__raw_html__009: spec_txt_example_position: 640 source_specification: commonmark -06_11__inlines__raw_html__10: +06_11__inlines__raw_html__010: spec_txt_example_position: 641 source_specification: commonmark -06_11__inlines__raw_html__11: +06_11__inlines__raw_html__011: spec_txt_example_position: 642 source_specification: commonmark -06_11__inlines__raw_html__12: +06_11__inlines__raw_html__012: spec_txt_example_position: 643 source_specification: commonmark -06_11__inlines__raw_html__13: +06_11__inlines__raw_html__013: spec_txt_example_position: 644 source_specification: commonmark -06_11__inlines__raw_html__14: +06_11__inlines__raw_html__014: spec_txt_example_position: 645 source_specification: commonmark -06_11__inlines__raw_html__15: +06_11__inlines__raw_html__015: spec_txt_example_position: 646 source_specification: commonmark -06_11__inlines__raw_html__16: +06_11__inlines__raw_html__016: spec_txt_example_position: 647 source_specification: commonmark -06_11__inlines__raw_html__17: +06_11__inlines__raw_html__017: spec_txt_example_position: 648 source_specification: commonmark -06_11__inlines__raw_html__18: +06_11__inlines__raw_html__018: spec_txt_example_position: 649 source_specification: commonmark -06_11__inlines__raw_html__19: +06_11__inlines__raw_html__019: spec_txt_example_position: 650 source_specification: commonmark -06_11__inlines__raw_html__20: +06_11__inlines__raw_html__020: spec_txt_example_position: 651 source_specification: commonmark -06_11__inlines__raw_html__21: +06_11__inlines__raw_html__021: spec_txt_example_position: 652 source_specification: commonmark -06_12__inlines__disallowed_raw_html_extension__01: +06_12__inlines__disallowed_raw_html_extension__001: spec_txt_example_position: 653 source_specification: github -06_13__inlines__hard_line_breaks__01: +06_13__inlines__hard_line_breaks__001: spec_txt_example_position: 654 source_specification: commonmark -06_13__inlines__hard_line_breaks__02: +06_13__inlines__hard_line_breaks__002: spec_txt_example_position: 655 source_specification: commonmark -06_13__inlines__hard_line_breaks__03: +06_13__inlines__hard_line_breaks__003: spec_txt_example_position: 656 source_specification: commonmark -06_13__inlines__hard_line_breaks__04: +06_13__inlines__hard_line_breaks__004: spec_txt_example_position: 657 source_specification: commonmark -06_13__inlines__hard_line_breaks__05: +06_13__inlines__hard_line_breaks__005: spec_txt_example_position: 658 source_specification: commonmark -06_13__inlines__hard_line_breaks__06: +06_13__inlines__hard_line_breaks__006: spec_txt_example_position: 659 source_specification: commonmark -06_13__inlines__hard_line_breaks__07: +06_13__inlines__hard_line_breaks__007: spec_txt_example_position: 660 source_specification: commonmark -06_13__inlines__hard_line_breaks__08: +06_13__inlines__hard_line_breaks__008: spec_txt_example_position: 661 source_specification: commonmark -06_13__inlines__hard_line_breaks__09: +06_13__inlines__hard_line_breaks__009: spec_txt_example_position: 662 source_specification: commonmark -06_13__inlines__hard_line_breaks__10: +06_13__inlines__hard_line_breaks__010: spec_txt_example_position: 663 source_specification: commonmark -06_13__inlines__hard_line_breaks__11: +06_13__inlines__hard_line_breaks__011: spec_txt_example_position: 664 source_specification: commonmark -06_13__inlines__hard_line_breaks__12: +06_13__inlines__hard_line_breaks__012: spec_txt_example_position: 665 source_specification: commonmark -06_13__inlines__hard_line_breaks__13: +06_13__inlines__hard_line_breaks__013: spec_txt_example_position: 666 source_specification: commonmark -06_13__inlines__hard_line_breaks__14: +06_13__inlines__hard_line_breaks__014: spec_txt_example_position: 667 source_specification: commonmark -06_13__inlines__hard_line_breaks__15: +06_13__inlines__hard_line_breaks__015: spec_txt_example_position: 668 source_specification: commonmark -06_14__inlines__soft_line_breaks__01: +06_14__inlines__soft_line_breaks__001: spec_txt_example_position: 669 source_specification: commonmark -06_14__inlines__soft_line_breaks__02: +06_14__inlines__soft_line_breaks__002: spec_txt_example_position: 670 source_specification: commonmark -06_15__inlines__textual_content__01: +06_15__inlines__textual_content__001: spec_txt_example_position: 671 source_specification: commonmark -06_15__inlines__textual_content__02: +06_15__inlines__textual_content__002: spec_txt_example_position: 672 source_specification: commonmark -06_15__inlines__textual_content__03: +06_15__inlines__textual_content__003: spec_txt_example_position: 673 source_specification: commonmark -07_01__first_gitlab_specific_section_with_examples__strong_but_with_two_asterisks__01: +07_01__first_gitlab_specific_section_with_examples__strong_but_with_two_asterisks__001: spec_txt_example_position: 674 source_specification: commonmark -08_01__second_gitlab_specific_section_with_examples__strong_but_with_html__01: +08_01__second_gitlab_specific_section_with_examples__strong_but_with_html__001: spec_txt_example_position: 675 source_specification: commonmark diff --git a/spec/fixtures/glfm/example_snapshots/html.yml b/spec/fixtures/glfm/example_snapshots/html.yml index a536b5a4834..1dd84b1cd03 100644 --- a/spec/fixtures/glfm/example_snapshots/html.yml +++ b/spec/fixtures/glfm/example_snapshots/html.yml @@ -1,24 +1,24 @@ --- -02_01__preliminaries__tabs__01: +02_01__preliminaries__tabs__001: canonical: "
foo\tbaz\t\tbim\n
\n" static: "
foo\tbaz\t\tbim
" wysiwyg: "
foo\tbaz\t\tbim
" -02_01__preliminaries__tabs__02: +02_01__preliminaries__tabs__002: canonical: "
foo\tbaz\t\tbim\n
\n" static: "
foo\tbaz\t\tbim
" wysiwyg: "
foo\tbaz\t\tbim
" -02_01__preliminaries__tabs__03: +02_01__preliminaries__tabs__003: canonical: "
a\ta\nὐ\ta\n
\n" static: "
a\ta
ὐ\ta
" wysiwyg: "
a\ta\nὐ\ta
" -02_01__preliminaries__tabs__04: +02_01__preliminaries__tabs__004: canonical: |