Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-11-02 09:09:00 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-11-02 09:09:00 +0300
commit03c509e17bfa71a124a69b6cf4897414d3bd1cb5 (patch)
tree1301bca7b00224dd4f567d7e43344982a135c14f
parent455e6650ee300263e78a8142d247f538c59737a6 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/CODEOWNERS2
-rw-r--r--.gitlab/issue_templates/Geo Replicate a new Git repository type.md68
-rw-r--r--.gitlab/issue_templates/Geo Replicate a new blob type.md64
-rw-r--r--app/assets/javascripts/ide/components/ide.vue14
-rw-r--r--app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue15
-rw-r--r--app/assets/javascripts/ide/components/panes/right.vue17
-rw-r--r--app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue103
-rw-r--r--app/assets/javascripts/ide/constants.js1
-rw-r--r--app/assets/javascripts/ide/index.js4
-rw-r--r--app/assets/javascripts/ide/stores/mutations.js2
-rw-r--r--app/assets/javascripts/ide/stores/state.js2
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js54
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue117
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js32
-rw-r--r--app/helpers/ide_helper.rb2
-rw-r--r--app/models/ci/build.rb4
-rw-r--r--data/deprecations/14-3-serverless.yml4
-rw-r--r--data/deprecations/14-7-deprecate-static-site-editor.yml4
-rw-r--r--data/deprecations/14-8-Elasticsearch-6-8.yml2
-rw-r--r--data/deprecations/14-8-request-profiling.yml4
-rw-r--r--data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml2
-rw-r--r--data/removals/14_0/removals-14-testing-team.yml4
-rw-r--r--data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml2
-rw-r--r--data/removals/15_0/15-0-request-profiling.yml2
-rw-r--r--data/removals/15_0/15-0-static-site-editor.yml4
-rw-r--r--data/whats_new/202011230001_13_06.yml2
-rw-r--r--data/whats_new/202103220001_13_10.yml4
-rw-r--r--data/whats_new/202105220001_13_12.yml2
-rw-r--r--data/whats_new/202205220001_15_0.yml2
-rw-r--r--doc/update/deprecations.md6
-rw-r--r--doc/update/removals.md12
-rw-r--r--doc/user/project/web_ide/index.md9
-rw-r--r--glfm_specification/output_example_snapshots/html.yml198
-rw-r--r--glfm_specification/output_example_snapshots/snapshot_spec.html1452
-rw-r--r--glfm_specification/output_spec/spec.html30
-rw-r--r--lib/banzai/filter/math_filter.rb9
-rw-r--r--lib/banzai/filter/syntax_highlight_filter.rb45
-rw-r--r--lib/banzai/pipeline/ascii_doc_pipeline.rb2
-rw-r--r--lib/banzai/pipeline/gfm_pipeline.rb4
-rw-r--r--lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml2
-rw-r--r--locale/gitlab.pot21
-rw-r--r--spec/features/ide_spec.rb95
-rw-r--r--spec/fixtures/markdown/markdown_golden_master_examples.yml14
-rw-r--r--spec/frontend/ide/components/ide_spec.js31
-rw-r--r--spec/frontend/ide/components/panes/collapsible_sidebar_spec.js26
-rw-r--r--spec/frontend/ide/components/panes/right_spec.js45
-rw-r--r--spec/frontend/ide/components/switch_editors/switch_editors_view_spec.js214
-rw-r--r--spec/frontend/ide/stores/mutations_spec.js2
-rw-r--r--spec/frontend/vue_shared/components/markdown_drawer/markdown_drawer_spec.js205
-rw-r--r--spec/frontend/vue_shared/components/markdown_drawer/mock_data.js42
-rw-r--r--spec/frontend/vue_shared/components/markdown_drawer/utils/fetch_spec.js43
-rw-r--r--spec/helpers/ide_helper_spec.rb2
-rw-r--r--spec/lib/banzai/filter/math_filter_spec.rb10
-rw-r--r--spec/lib/banzai/filter/syntax_highlight_filter_spec.rb22
-rw-r--r--spec/lib/gitlab/asciidoc_spec.rb19
-rw-r--r--spec/models/ci/processable_spec.rb14
-rw-r--r--spec/scripts/lib/glfm/update_specification_spec.rb6
61 files changed, 2073 insertions, 1054 deletions
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index 85ad4adbede..0635006943e 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -156,7 +156,7 @@ Dangerfile @gl-quality/eng-prod
/app/assets/javascripts/ci_variable_list/ @gitlab-org/ci-cd/verify/frontend
/app/assets/javascripts/pipeline_schedules/ @gitlab-org/ci-cd/verify/frontend
/app/assets/javascripts/pipeline_editor/ @gitlab-org/ci-cd/verify/frontend
-/ee/app/assets/javascripts/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend
+/ee/app/assets/javascripts/ci/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend
/ee/app/assets/javascripts/usage_quotas/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend
/ee/app/assets/javascripts/usage_quotas/pipelines/ @gitlab-org/ci-cd/verify/frontend
/ee/app/assets/javascripts/reports/ @gitlab-org/ci-cd/verify/frontend
diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
index 6c9b8bb6d78..2348fa5b86f 100644
--- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
+++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
@@ -57,46 +57,38 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
# frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
- disable_ddl_transaction!
-
- def up
- Geo::TrackingBase.transaction do
- create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
- t.bigint :cool_widget_id, null: false
- t.datetime_with_timezone :created_at, null: false
- t.datetime_with_timezone :last_synced_at
- t.datetime_with_timezone :retry_at
- t.datetime_with_timezone :verified_at
- t.datetime_with_timezone :verification_started_at
- t.datetime_with_timezone :verification_retry_at
- t.integer :state, default: 0, null: false, limit: 2
- t.integer :verification_state, default: 0, null: false, limit: 2
- t.integer :retry_count, default: 0, limit: 2, null: false
- t.integer :verification_retry_count, default: 0, limit: 2, null: false
- t.boolean :checksum_mismatch, default: false, null: false
- t.boolean :force_to_redownload, default: false, null: false
- t.boolean :missing_on_primary, default: false, null: false
- t.binary :verification_checksum
- t.binary :verification_checksum_mismatched
- t.text :verification_failure, limit: 255
- t.text :last_sync_failure, limit: 255
-
- t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
- t.index :retry_at
- t.index :state
- # To optimize performance of CoolWidgetRegistry.verification_failed_batch
- t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
- # To optimize performance of CoolWidgetRegistry.needs_verification_count
- t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
- # To optimize performance of CoolWidgetRegistry.verification_pending_batch
- t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
- end
+ def change
+ create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
+ t.bigint :cool_widget_id, null: false
+ t.datetime_with_timezone :created_at, null: false
+ t.datetime_with_timezone :last_synced_at
+ t.datetime_with_timezone :retry_at
+ t.datetime_with_timezone :verified_at
+ t.datetime_with_timezone :verification_started_at
+ t.datetime_with_timezone :verification_retry_at
+ t.integer :state, default: 0, null: false, limit: 2
+ t.integer :verification_state, default: 0, null: false, limit: 2
+ t.integer :retry_count, default: 0, limit: 2, null: false
+ t.integer :verification_retry_count, default: 0, limit: 2, null: false
+ t.boolean :checksum_mismatch, default: false, null: false
+ t.boolean :force_to_redownload, default: false, null: false
+ t.boolean :missing_on_primary, default: false, null: false
+ t.binary :verification_checksum
+ t.binary :verification_checksum_mismatched
+ t.text :verification_failure, limit: 255
+ t.text :last_sync_failure, limit: 255
+
+ t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
+ t.index :retry_at
+ t.index :state
+ # To optimize performance of CoolWidgetRegistry.verification_failed_batch
+ t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
+ # To optimize performance of CoolWidgetRegistry.needs_verification_count
+ t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
+ # To optimize performance of CoolWidgetRegistry.verification_pending_batch
+ t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
end
end
-
- def down
- drop_table :cool_widget_registry
- end
end
```
diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md
index 76fe1772921..2bb8918df60 100644
--- a/.gitlab/issue_templates/Geo Replicate a new blob type.md
+++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md
@@ -59,44 +59,36 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
# frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
- disable_ddl_transaction!
-
- def up
- Geo::TrackingBase.transaction do
- create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
- t.bigint :cool_widget_id, null: false
- t.datetime_with_timezone :created_at, null: false
- t.datetime_with_timezone :last_synced_at
- t.datetime_with_timezone :retry_at
- t.datetime_with_timezone :verified_at
- t.datetime_with_timezone :verification_started_at
- t.datetime_with_timezone :verification_retry_at
- t.integer :state, default: 0, null: false, limit: 2
- t.integer :verification_state, default: 0, null: false, limit: 2
- t.integer :retry_count, default: 0, limit: 2, null: false
- t.integer :verification_retry_count, default: 0, limit: 2, null: false
- t.boolean :checksum_mismatch, default: false, null: false
- t.binary :verification_checksum
- t.binary :verification_checksum_mismatched
- t.text :verification_failure, limit: 255
- t.text :last_sync_failure, limit: 255
-
- t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
- t.index :retry_at
- t.index :state
- # To optimize performance of CoolWidgetRegistry.verification_failed_batch
- t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
- # To optimize performance of CoolWidgetRegistry.needs_verification_count
- t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
- # To optimize performance of CoolWidgetRegistry.verification_pending_batch
- t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
- end
+ def change
+ create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
+ t.bigint :cool_widget_id, null: false
+ t.datetime_with_timezone :created_at, null: false
+ t.datetime_with_timezone :last_synced_at
+ t.datetime_with_timezone :retry_at
+ t.datetime_with_timezone :verified_at
+ t.datetime_with_timezone :verification_started_at
+ t.datetime_with_timezone :verification_retry_at
+ t.integer :state, default: 0, null: false, limit: 2
+ t.integer :verification_state, default: 0, null: false, limit: 2
+ t.integer :retry_count, default: 0, limit: 2, null: false
+ t.integer :verification_retry_count, default: 0, limit: 2, null: false
+ t.boolean :checksum_mismatch, default: false, null: false
+ t.binary :verification_checksum
+ t.binary :verification_checksum_mismatched
+ t.text :verification_failure, limit: 255
+ t.text :last_sync_failure, limit: 255
+
+ t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
+ t.index :retry_at
+ t.index :state
+ # To optimize performance of CoolWidgetRegistry.verification_failed_batch
+ t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
+ # To optimize performance of CoolWidgetRegistry.needs_verification_count
+ t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
+ # To optimize performance of CoolWidgetRegistry.verification_pending_batch
+ t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
end
end
-
- def down
- drop_table :cool_widget_registry
- end
end
```
diff --git a/app/assets/javascripts/ide/components/ide.vue b/app/assets/javascripts/ide/components/ide.vue
index d589f56dd7c..838debf1ceb 100644
--- a/app/assets/javascripts/ide/components/ide.vue
+++ b/app/assets/javascripts/ide/components/ide.vue
@@ -47,6 +47,7 @@ export default {
data() {
return {
loadDeferred: false,
+ skipBeforeUnload: false,
};
},
computed: {
@@ -78,9 +79,14 @@ export default {
mounted() {
window.onbeforeunload = (e) => this.onBeforeUnload(e);
+ eventHub.$on('skip-beforeunload', this.handleSkipBeforeUnload);
+
if (this.themeName)
document.querySelector('.navbar-gitlab').classList.add(`theme-${this.themeName}`);
},
+ destroyed() {
+ eventHub.$off('skip-beforeunload', this.handleSkipBeforeUnload);
+ },
beforeCreate() {
performanceMarkAndMeasure({
mark: WEBIDE_MARK_APP_START,
@@ -94,6 +100,11 @@ export default {
methods: {
...mapActions(['toggleFileFinder']),
onBeforeUnload(e = {}) {
+ if (this.skipBeforeUnload) {
+ this.skipBeforeUnload = false;
+ return undefined;
+ }
+
const returnValue = __('Are you sure you want to lose unsaved changes?');
if (!this.someUncommittedChanges) return undefined;
@@ -103,6 +114,9 @@ export default {
});
return returnValue;
},
+ handleSkipBeforeUnload() {
+ this.skipBeforeUnload = true;
+ },
openFile(file) {
this.$router.push(this.getUrlForPath(file.path));
},
diff --git a/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue b/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue
index 6f42ae48cc9..bf99538a2ad 100644
--- a/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue
+++ b/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue
@@ -13,6 +13,11 @@ export default {
required: false,
default: () => [],
},
+ initOpenView: {
+ type: String,
+ required: false,
+ default: '',
+ },
side: {
type: String,
required: true,
@@ -44,6 +49,9 @@ export default {
return this.tabViews.filter((view) => this.isAliveView(view.name));
},
},
+ created() {
+ this.openViewByName(this.initOpenView);
+ },
methods: {
...mapActions({
toggleOpen(dispatch) {
@@ -53,6 +61,13 @@ export default {
return dispatch(`${this.namespace}/open`, view);
},
}),
+ openViewByName(viewName) {
+ const view = viewName && this.tabViews.find((x) => x.name === viewName);
+
+ if (view) {
+ this.open(view);
+ }
+ },
},
};
</script>
diff --git a/app/assets/javascripts/ide/components/panes/right.vue b/app/assets/javascripts/ide/components/panes/right.vue
index da2d4fbe7f0..c74a5052573 100644
--- a/app/assets/javascripts/ide/components/panes/right.vue
+++ b/app/assets/javascripts/ide/components/panes/right.vue
@@ -7,6 +7,7 @@ import PipelinesList from '../pipelines/list.vue';
import Clientside from '../preview/clientside.vue';
import ResizablePanel from '../resizable_panel.vue';
import TerminalView from '../terminal/view.vue';
+import SwitchEditorsView from '../switch_editors/switch_editors_view.vue';
import CollapsibleSidebar from './collapsible_sidebar.vue';
// Need to add the width of the nav buttons since the resizable container contains those as well
@@ -20,7 +21,7 @@ export default {
},
computed: {
...mapState('terminal', { isTerminalVisible: 'isVisible' }),
- ...mapState(['currentMergeRequestId', 'clientsidePreviewEnabled']),
+ ...mapState(['currentMergeRequestId', 'clientsidePreviewEnabled', 'canUseNewWebIde']),
...mapGetters(['packageJson']),
...mapState('rightPane', ['isOpen']),
showLivePreview() {
@@ -29,6 +30,12 @@ export default {
rightExtensionTabs() {
return [
{
+ show: this.canUseNewWebIde,
+ title: __('Switch editors'),
+ views: [{ component: SwitchEditorsView, ...rightSidebarViews.switchEditors }],
+ icon: 'bullhorn',
+ },
+ {
show: true,
title: __('Pipelines'),
views: [
@@ -53,6 +60,7 @@ export default {
},
},
WIDTH,
+ SWITCH_EDITORS_VIEW_NAME: rightSidebarViews.switchEditors.name,
};
</script>
@@ -64,6 +72,11 @@ export default {
:min-size="$options.WIDTH"
:resizable="isOpen"
>
- <collapsible-sidebar class="gl-w-full" :extension-tabs="rightExtensionTabs" side="right" />
+ <collapsible-sidebar
+ class="gl-w-full"
+ :extension-tabs="rightExtensionTabs"
+ :init-open-view="$options.SWITCH_EDITORS_VIEW_NAME"
+ side="right"
+ />
</resizable-panel>
</template>
diff --git a/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue b/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue
new file mode 100644
index 00000000000..00164f65e33
--- /dev/null
+++ b/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue
@@ -0,0 +1,103 @@
+<script>
+import { GlButton, GlEmptyState, GlLink } from '@gitlab/ui';
+import { mapState } from 'vuex';
+import { createAlert } from '~/flash';
+import { logError } from '~/lib/logger';
+import axios from '~/lib/utils/axios_utils';
+import { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';
+import { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';
+import { s__, __ } from '~/locale';
+import eventHub from '../../eventhub';
+
+export const MSG_DESCRIPTION = s__('WebIDE|You are invited to experience the new Web IDE.');
+export const MSG_BUTTON_TEXT = s__('WebIDE|Switch to new Web IDE');
+export const MSG_LEARN_MORE = __('Learn more');
+export const MSG_TITLE = s__('WebIDE|Ready for something new?');
+
+export const MSG_CONFIRM = s__(
+ 'WebIDE|Are you sure you want to switch editors? You will lose any unsaved changes.',
+);
+export const MSG_ERROR_ALERT = s__(
+ 'WebIDE|Something went wrong while updating the user preferences. Please see developer console for details.',
+);
+
+export default {
+ components: {
+ GlButton,
+ GlEmptyState,
+ GlLink,
+ },
+ data() {
+ return {
+ loading: false,
+ };
+ },
+ computed: {
+ ...mapState(['switchEditorSvgPath', 'links', 'userPreferencesPath']),
+ },
+ methods: {
+ async submitSwitch() {
+ const confirmed = await confirmAction(MSG_CONFIRM, {
+ primaryBtnText: __('Switch editors'),
+ cancelBtnText: __('Cancel'),
+ });
+
+ if (!confirmed) {
+ return;
+ }
+
+ try {
+ await axios.put(this.userPreferencesPath, {
+ user: { use_legacy_web_ide: false },
+ });
+ } catch (e) {
+ // why: We do not want to translate console logs
+ // eslint-disable-next-line @gitlab/require-i18n-strings
+ logError('Error while updating user preferences', e);
+ createAlert({
+ message: MSG_ERROR_ALERT,
+ });
+ return;
+ }
+
+ eventHub.$emit('skip-beforeunload');
+ window.location.reload();
+ },
+ // what: ignoreWhilePending prevents double confirmation boxes
+ onSwitchClicked: ignoreWhilePending(async function onSwitchClicked() {
+ this.loading = true;
+
+ try {
+ await this.submitSwitch();
+ } finally {
+ this.loading = false;
+ }
+ }),
+ },
+ MSG_TITLE,
+ MSG_DESCRIPTION,
+ MSG_BUTTON_TEXT,
+ MSG_LEARN_MORE,
+};
+</script>
+
+<template>
+ <div class="gl-h-full gl-display-flex gl-flex-direction-column gl-justify-content-center">
+ <gl-empty-state :svg-path="switchEditorSvgPath" :svg-height="150" :title="$options.MSG_TITLE">
+ <template #description>
+ <span>{{ $options.MSG_DESCRIPTION }}</span>
+ <gl-link :href="links.newWebIDEHelpPagePath">{{ $options.MSG_LEARN_MORE }}</gl-link
+ >.
+ </template>
+ <template #actions>
+ <gl-button
+ category="primary"
+ variant="confirm"
+ :loading="loading"
+ @click="onSwitchClicked"
+ >{{ $options.MSG_BUTTON_TEXT }}</gl-button
+ >
+ </template>
+ </gl-empty-state>
+ </div>
+</template>
diff --git a/app/assets/javascripts/ide/constants.js b/app/assets/javascripts/ide/constants.js
index bfe4c3ac271..c8e737fa6f5 100644
--- a/app/assets/javascripts/ide/constants.js
+++ b/app/assets/javascripts/ide/constants.js
@@ -61,6 +61,7 @@ export const leftSidebarViews = {
};
export const rightSidebarViews = {
+ switchEditors: { name: 'switch-editors', keepAlive: true },
pipelines: { name: 'pipelines-list', keepAlive: true },
jobsDetail: { name: 'jobs-detail', keepAlive: false },
mergeRequestInfo: { name: 'merge-request-info', keepAlive: true },
diff --git a/app/assets/javascripts/ide/index.js b/app/assets/javascripts/ide/index.js
index 1a191f6f76f..dec282239d9 100644
--- a/app/assets/javascripts/ide/index.js
+++ b/app/assets/javascripts/ide/index.js
@@ -60,9 +60,11 @@ export const initLegacyWebIDE = (el, options = {}) => {
committedStateSvgPath: el.dataset.committedStateSvgPath,
pipelinesEmptyStateSvgPath: el.dataset.pipelinesEmptyStateSvgPath,
promotionSvgPath: el.dataset.promotionSvgPath,
+ switchEditorSvgPath: el.dataset.switchEditorSvgPath,
});
this.setLinks({
webIDEHelpPagePath: el.dataset.webIdeHelpPagePath,
+ newWebIDEHelpPagePath: el.dataset.newWebIdeHelpPagePath,
forkInfo: el.dataset.forkInfo ? JSON.parse(el.dataset.forkInfo) : null,
});
this.init({
@@ -72,6 +74,8 @@ export const initLegacyWebIDE = (el, options = {}) => {
codesandboxBundlerUrl: el.dataset.codesandboxBundlerUrl,
environmentsGuidanceAlertDismissed: !parseBoolean(el.dataset.enableEnvironmentsGuidance),
previewMarkdownPath: el.dataset.previewMarkdownPath,
+ canUseNewWebIde: parseBoolean(el.dataset.canUseNewWebIde),
+ userPreferencesPath: el.dataset.userPreferencesPath,
});
},
beforeDestroy() {
diff --git a/app/assets/javascripts/ide/stores/mutations.js b/app/assets/javascripts/ide/stores/mutations.js
index 48648796e66..d11fc388d5e 100644
--- a/app/assets/javascripts/ide/stores/mutations.js
+++ b/app/assets/javascripts/ide/stores/mutations.js
@@ -110,6 +110,7 @@ export default {
committedStateSvgPath,
pipelinesEmptyStateSvgPath,
promotionSvgPath,
+ switchEditorSvgPath,
},
) {
Object.assign(state, {
@@ -118,6 +119,7 @@ export default {
committedStateSvgPath,
pipelinesEmptyStateSvgPath,
promotionSvgPath,
+ switchEditorSvgPath,
});
},
[types.TOGGLE_FILE_FINDER](state, fileFindVisible) {
diff --git a/app/assets/javascripts/ide/stores/state.js b/app/assets/javascripts/ide/stores/state.js
index 526987c750a..70efda970bf 100644
--- a/app/assets/javascripts/ide/stores/state.js
+++ b/app/assets/javascripts/ide/stores/state.js
@@ -33,4 +33,6 @@ export default () => ({
environmentsGuidanceAlertDismissed: false,
environmentsGuidanceAlertDetected: false,
previewMarkdownPath: '',
+ userPreferencesPath: '',
+ canUseNewWebIde: false,
});
diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js b/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js
new file mode 100644
index 00000000000..03bd64e2a57
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js
@@ -0,0 +1,54 @@
+import { GlButton } from '@gitlab/ui';
+import { MOCK_HTML } from '../../../../../../spec/frontend/vue_shared/components/markdown_drawer/mock_data';
+import MarkdownDrawer from './markdown_drawer.vue';
+
+export default {
+ component: MarkdownDrawer,
+ title: 'vue_shared/markdown_drawer',
+ parameters: {
+ mirage: {
+ timing: 1000,
+ handlers: {
+ get: {
+ '/help/user/search/global_search/advanced_search_syntax.json': [
+ 200,
+ {},
+ { html: MOCK_HTML },
+ ],
+ },
+ },
+ },
+ },
+};
+
+const createStory = ({ ...options }) => (_, { argTypes }) => ({
+ components: { MarkdownDrawer, GlButton },
+ props: Object.keys(argTypes),
+ data() {
+ return {
+ render: false,
+ };
+ },
+ methods: {
+ toggleDrawer() {
+ this.$refs.drawer.toggleDrawer();
+ },
+ },
+ mounted() {
+ window.requestAnimationFrame(() => {
+ this.render = true;
+ });
+ },
+ template: `
+ <div v-if="render">
+ <gl-button @click="toggleDrawer">Open Drawer</gl-button>
+ <markdown-drawer
+ :documentPath="'user/search/global_search/advanced_search_syntax.json'"
+ ref="drawer"
+ />
+ </div>
+ `,
+ ...options,
+});
+
+export const Default = createStory({});
diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue b/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue
new file mode 100644
index 00000000000..a4b509f8656
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue
@@ -0,0 +1,117 @@
+<script>
+import { GlSafeHtmlDirective as SafeHtml, GlDrawer, GlAlert, GlSkeletonLoader } from '@gitlab/ui';
+import $ from 'jquery';
+import '~/behaviors/markdown/render_gfm';
+import { s__ } from '~/locale';
+import { contentTop } from '~/lib/utils/common_utils';
+import { getRenderedMarkdown } from './utils/fetch';
+
+export const cache = {};
+
+export default {
+ name: 'MarkdownDrawer',
+ components: {
+ GlDrawer,
+ GlAlert,
+ GlSkeletonLoader,
+ },
+ directives: {
+ SafeHtml,
+ },
+ i18n: {
+ alert: s__('MardownDrawer|Could not fetch help contents.'),
+ },
+ props: {
+ documentPath: {
+ type: String,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ loading: false,
+ hasFetchError: false,
+ title: '',
+ body: null,
+ open: false,
+ };
+ },
+ computed: {
+ drawerOffsetTop() {
+ return `${contentTop()}px`;
+ },
+ },
+ watch: {
+ documentPath: {
+ immediate: true,
+ handler: 'fetchMarkdown',
+ },
+ open(open) {
+ if (open && this.body) {
+ this.renderGLFM();
+ }
+ },
+ },
+ methods: {
+ async fetchMarkdown() {
+ const cached = cache[this.documentPath];
+ this.hasFetchError = false;
+ this.title = '';
+ if (cached) {
+ this.title = cached.title;
+ this.body = cached.body;
+ if (this.open) {
+ this.renderGLFM();
+ }
+ } else {
+ this.loading = true;
+ const { body, title, hasFetchError } = await getRenderedMarkdown(this.documentPath);
+ this.title = title;
+ this.body = body;
+ this.loading = false;
+ this.hasFetchError = hasFetchError;
+ if (this.open) {
+ this.renderGLFM();
+ }
+ cache[this.documentPath] = { title, body };
+ }
+ },
+ renderGLFM() {
+ this.$nextTick(() => {
+ $(this.$refs['content-element']).renderGFM();
+ });
+ },
+ closeDrawer() {
+ this.open = false;
+ },
+ toggleDrawer() {
+ this.open = !this.open;
+ },
+ openDrawer() {
+ this.open = true;
+ },
+ },
+ safeHtmlConfig: {
+ ADD_TAGS: ['copy-code'],
+ },
+};
+</script>
+<template>
+ <gl-drawer :header-height="drawerOffsetTop" :open="open" header-sticky @close="closeDrawer">
+ <template #title>
+ <h4 data-testid="title-element" class="gl-m-0">{{ title }}</h4>
+ </template>
+ <template #default>
+ <div v-if="hasFetchError">
+ <gl-alert :dismissible="false" variant="danger">{{ $options.i18n.alert }}</gl-alert>
+ </div>
+ <gl-skeleton-loader v-else-if="loading" />
+ <div
+ v-else
+ ref="content-element"
+ v-safe-html:[$options.safeHtmlConfig]="body"
+ class="md"
+ ></div>
+ </template>
+ </gl-drawer>
+</template>
diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js b/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js
new file mode 100644
index 00000000000..7c8e1bc160a
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js
@@ -0,0 +1,32 @@
+import * as Sentry from '@sentry/browser';
+import { helpPagePath } from '~/helpers/help_page_helper';
+import axios from '~/lib/utils/axios_utils';
+
+export const splitDocument = (htmlString) => {
+ const htmlDocument = new DOMParser().parseFromString(htmlString, 'text/html');
+ const title = htmlDocument.querySelector('h1')?.innerText;
+ htmlDocument.querySelector('h1')?.remove();
+ return {
+ title,
+ body: htmlDocument.querySelector('body').innerHTML.toString(),
+ };
+};
+
+export const getRenderedMarkdown = (documentPath) => {
+ return axios
+ .get(helpPagePath(documentPath))
+ .then(({ data }) => {
+ const { body, title } = splitDocument(data.html);
+ return {
+ body,
+ title,
+ hasFetchError: false,
+ };
+ })
+ .catch((e) => {
+ Sentry.captureException(e);
+ return {
+ hasFetchError: true,
+ };
+ });
+};
diff --git a/app/helpers/ide_helper.rb b/app/helpers/ide_helper.rb
index cdc3804d192..69a9519291f 100644
--- a/app/helpers/ide_helper.rb
+++ b/app/helpers/ide_helper.rb
@@ -5,6 +5,7 @@ module IdeHelper
{
'can-use-new-web-ide' => can_use_new_web_ide?.to_s,
'use-new-web-ide' => use_new_web_ide?.to_s,
+ 'new-web-ide-help-page-path' => help_page_path('user/project/web_ide/index.md', anchor: 'vscode-reimplementation'),
'user-preferences-path' => profile_preferences_path,
'branch-name' => @branch
}.merge(use_new_web_ide? ? new_ide_data : legacy_ide_data)
@@ -33,6 +34,7 @@ module IdeHelper
'no-changes-state-svg-path' => image_path('illustrations/multi-editor_no_changes_empty.svg'),
'committed-state-svg-path' => image_path('illustrations/multi-editor_all_changes_committed_empty.svg'),
'pipelines-empty-state-svg-path': image_path('illustrations/pipelines_empty.svg'),
+ 'switch-editor-svg-path': image_path('illustrations/rocket-launch-md.svg'),
'promotion-svg-path': image_path('illustrations/web-ide_promotion.svg'),
'ci-help-page-path' => help_page_path('ci/quick_start/index'),
'web-ide-help-page-path' => help_page_path('user/project/web_ide/index.md'),
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 466e83c5cc6..1bacd65b574 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -218,10 +218,6 @@ module Ci
preload(:job_artifacts_archive, :job_artifacts, :tags, project: [:namespace])
end
- def extra_accessors
- []
- end
-
def clone_accessors
%i[pipeline project ref tag options name
allow_failure stage stage_idx trigger_request
diff --git a/data/deprecations/14-3-serverless.yml b/data/deprecations/14-3-serverless.yml
index aac3cc9cd6a..08a54046f4a 100644
--- a/data/deprecations/14-3-serverless.yml
+++ b/data/deprecations/14-3-serverless.yml
@@ -5,10 +5,10 @@
removal_date: "2022-05-22"
breaking_change: true
body: |
- [GitLab Serverless](https://docs.gitlab.com/ee/user/project/clusters/serverless/) is a feature set to support Knative-based serverless development with automatic deployments and monitoring.
+ GitLab Serverless is a feature set to support Knative-based serverless development with automatic deployments and monitoring.
We decided to remove the GitLab Serverless features as they never really resonated with our users. Besides, given the continuous development of Kubernetes and Knative, our current implementations do not even work with recent versions.
stage: Configure
tiers: [Core, Premium, Ultimate]
issue_url: "https://gitlab.com/groups/gitlab-org/configure/-/epics/6"
- documentation_url: "https://docs.gitlab.com/ee/user/project/clusters/serverless/"
+ documentation_url: "https://gitlab.com/groups/gitlab-org/configure/-/epics/6"
diff --git a/data/deprecations/14-7-deprecate-static-site-editor.yml b/data/deprecations/14-7-deprecate-static-site-editor.yml
index 0960bffe4cf..7d1d324c0ca 100644
--- a/data/deprecations/14-7-deprecate-static-site-editor.yml
+++ b/data/deprecations/14-7-deprecate-static-site-editor.yml
@@ -6,11 +6,11 @@
body: | # Do not modify this line, instead modify the lines below.
The Static Site Editor will no longer be available starting in GitLab 15.0. Improvements to the Markdown editing experience across GitLab will deliver smiliar benefit but with a wider reach. Incoming requests to the Static Site Editor will be redirected to the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html).
- Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects.
+ Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects.
# The following items are not published on the docs page, but may be used in the future.
stage: Create # (optional - may be required in the future) String value of the stage that the feature was created in. e.g., Growth
tiers: [Free, Premium, Ultimate] # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/347137 # (optional) This is a link to the deprecation issue in GitLab
- documentation_url: https://docs.gitlab.com/ee/user/project/static_site_editor/ # (optional) This is a link to the current documentation page
+ documentation_url: https://docs.gitlab.com/ee/user/project/web_ide/index.html # (optional) This is a link to the current documentation page
image_url: # (optional) This is a link to a thumbnail image depicting the feature
video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
diff --git a/data/deprecations/14-8-Elasticsearch-6-8.yml b/data/deprecations/14-8-Elasticsearch-6-8.yml
index 28a25803d41..e52e237ffbc 100644
--- a/data/deprecations/14-8-Elasticsearch-6-8.yml
+++ b/data/deprecations/14-8-Elasticsearch-6-8.yml
@@ -14,4 +14,4 @@
stage: Enablement
tiers: [Premium, Ultimate]
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350275
- documentation_url: https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements
+ documentation_url: https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements
diff --git a/data/deprecations/14-8-request-profiling.yml b/data/deprecations/14-8-request-profiling.yml
index ea3833d98ef..e6c20abf2b1 100644
--- a/data/deprecations/14-8-request-profiling.yml
+++ b/data/deprecations/14-8-request-profiling.yml
@@ -6,7 +6,7 @@
breaking_change: true
reporter: iroussos
body: | # Do not modify this line, instead modify the lines below.
- [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0.
+ [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0.
We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible.
We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used.
@@ -16,4 +16,4 @@
stage: Monitor
tiers: [Free, Premium, Ultimate]
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/352488
- documentation_url: https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html
+ documentation_url: https://docs.gitlab.com/ee/administration/monitoring/performance/index.html
diff --git a/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml b/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml
index 47c58bcb143..98aef74fd03 100644
--- a/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml
+++ b/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml
@@ -5,4 +5,4 @@
issue_url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/325931'
breaking_change: true
body: |
- The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`).
+ The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`).
diff --git a/data/removals/14_0/removals-14-testing-team.yml b/data/removals/14_0/removals-14-testing-team.yml
index 2012f8738b8..8b877ece6cc 100644
--- a/data/removals/14_0/removals-14-testing-team.yml
+++ b/data/removals/14_0/removals-14-testing-team.yml
@@ -4,7 +4,7 @@
reporter: jheimbuck_gl
breaking_change: true
body: |
- Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/load_performance_testing.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0.
+ Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/ci/testing/code_quality.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0.
Relevant Issue: [Rename default Browser Performance Testing job](https://gitlab.com/gitlab-org/gitlab/-/issues/225914)
- name: "Code Quality RuboCop support changed"
@@ -13,7 +13,7 @@
reporter: jheimbuck_gl
breaking_change: true
body: |
- By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#rubocop-errors).
+ By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/ci/testing/code_quality.html#rubocop-errors).
Relevant Issue: [Default `codeclimate-rubocop` engine does not support Ruby 2.6+](https://gitlab.com/gitlab-org/ci-cd/codequality/-/issues/28)
- name: "Ruby version changed in `Ruby.gitlab-ci.yml`"
diff --git a/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml b/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml
index 5877b9cf0af..e40e48ba9e9 100644
--- a/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml
+++ b/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml
@@ -10,7 +10,7 @@
If you use Elasticsearch 6.8, **you must upgrade your Elasticsearch version to 7.x** prior to upgrading to GitLab 15.0.
You should not upgrade to Elasticsearch 8 until you have completed the GitLab 15.0 upgrade.
- View the [version requirements](https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements) for details.
+ View the [version requirements](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements) for details.
# The following items are not published on the docs page, but may be used in the future.
stage: "Enablement"
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350275
diff --git a/data/removals/15_0/15-0-request-profiling.yml b/data/removals/15_0/15-0-request-profiling.yml
index 0ca6919130c..f5cea4e0d11 100644
--- a/data/removals/15_0/15-0-request-profiling.yml
+++ b/data/removals/15_0/15-0-request-profiling.yml
@@ -6,7 +6,7 @@
breaking_change: true
reporter: iroussos
body: | # Do not modify this line, instead modify the lines below.
- [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) has been removed in GitLab 15.0.
+ [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) has been removed in GitLab 15.0.
We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible.
We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used.
diff --git a/data/removals/15_0/15-0-static-site-editor.yml b/data/removals/15_0/15-0-static-site-editor.yml
index 492c3b5e3d2..bea1b14232a 100644
--- a/data/removals/15_0/15-0-static-site-editor.yml
+++ b/data/removals/15_0/15-0-static-site-editor.yml
@@ -8,10 +8,10 @@
stage: create # (required) String value of the stage that the feature was created in. e.g., Growth
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/347137 # (required) Link to the deprecation issue in GitLab
body: | # (required) Do not modify this line, instead modify the lines below.
- The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab.
+ The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab.
# The following items are not published on the docs page, but may be used in the future.
tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
- documentation_url: https://docs.gitlab.com/ee/user/project/static_site_editor/
+ documentation_url: https://docs.gitlab.com/ee/user/project/web_ide/index.html
image_url: # (optional) This is a link to a thumbnail image depicting the feature
video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
diff --git a/data/whats_new/202011230001_13_06.yml b/data/whats_new/202011230001_13_06.yml
index effaa243812..8701a050d4c 100644
--- a/data/whats_new/202011230001_13_06.yml
+++ b/data/whats_new/202011230001_13_06.yml
@@ -23,7 +23,7 @@
self-managed: true
gitlab-com: true
available_in: [Free, Premium, Ultimate]
- documentation_link: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#code-quality-widget
+ documentation_link: https://docs.gitlab.com/ee/ci/testing/code_quality.html#code-quality-widget
image_url: https://about.gitlab.com/images/13_6/code_quality_severity.png
published_at: 2020-11-22
release: 13.6
diff --git a/data/whats_new/202103220001_13_10.yml b/data/whats_new/202103220001_13_10.yml
index bba60a60ca2..077f97afe81 100644
--- a/data/whats_new/202103220001_13_10.yml
+++ b/data/whats_new/202103220001_13_10.yml
@@ -41,12 +41,12 @@
release: 13.10
- name: "DORA4-based lead time for changes"
description: |
- Measuring the efficiency of your software development lifecycle is an important step to grow DevOps adoption for any organization. In the previous milestone, we added support for [DORA4-based Deployment Frequency](https://docs.gitlab.com/ee/api/dora4_project_analytics.html). In this release, we are excited to announce the support of a new API for lead time for changes (via merge requests) on the project level. The lead time for changes gives you an indication of how long it takes for code to be committed and deployed to your production environment. Understanding and tracking this data is a great starting point in your journey to continuous improvement in your DevOps process.
+ Measuring the efficiency of your software development lifecycle is an important step to grow DevOps adoption for any organization. In the previous milestone, we added support for [DORA4-based Deployment Frequency](https://docs.gitlab.com/ee/api/dora/metrics.html). In this release, we are excited to announce the support of a new API for lead time for changes (via merge requests) on the project level. The lead time for changes gives you an indication of how long it takes for code to be committed and deployed to your production environment. Understanding and tracking this data is a great starting point in your journey to continuous improvement in your DevOps process.
stage: Release
self-managed: true
gitlab-com: true
available_in: [Ultimate]
- documentation_link: https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-merge-request-lead-times
+ documentation_link: https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-merge-request-lead-times
image_url: https://about.gitlab.com/images/13_10/api.png
published_at: 2021-03-22
release: 13.10
diff --git a/data/whats_new/202105220001_13_12.yml b/data/whats_new/202105220001_13_12.yml
index 893ea694988..bcb2da40f63 100644
--- a/data/whats_new/202105220001_13_12.yml
+++ b/data/whats_new/202105220001_13_12.yml
@@ -74,7 +74,7 @@
self-managed: true
gitlab-com: true
available_in: [Ultimate]
- documentation_link: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#code-quality-in-diff-view
+ documentation_link: https://docs.gitlab.com/ee/ci/testing/code_quality.html#code-quality-in-diff-view
image_url: https://about.gitlab.com/images/13_12/code-quality-mr-diff-mvc.png
published_at: 2021-05-22
release: 13.12
diff --git a/data/whats_new/202205220001_15_0.yml b/data/whats_new/202205220001_15_0.yml
index e1449f13c0a..112154d9352 100644
--- a/data/whats_new/202205220001_15_0.yml
+++ b/data/whats_new/202205220001_15_0.yml
@@ -22,7 +22,7 @@
self-managed: true # Boolean value (true or false)
gitlab-com: true # Boolean value (true or false)
available_in: [Premium, Ultimate] # Array of strings. The Array brackets are required here. e.g., [Free, Starter, Premium, Ultimate]
- documentation_link: https://docs.gitlab.com/ee/integration/elasticsearch.html # This is the documentation URL, but can be a URL to a video if there is one
+ documentation_link: https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html # This is the documentation URL, but can be a URL to a video if there is one
image_url: https://about.gitlab.com/images/15_0/gitlab_advanced_search_is_now_compatible_with_opensearch.png # This should be a full URL, generally taken from the release post content. If a video, use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
published_at: 2022-05-22 # YYYY-MM-DD
release: 15.0 # XX.Y
diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md
index b4247e4b984..a8762ed67c1 100644
--- a/doc/update/deprecations.md
+++ b/doc/update/deprecations.md
@@ -1079,7 +1079,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0.
+[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0.
We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible.
We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used.
@@ -1672,7 +1672,7 @@ Planned removal: GitLab <span class="removal-milestone">15.0</span> (2022-05-22)
The Static Site Editor will no longer be available starting in GitLab 15.0. Improvements to the Markdown editing experience across GitLab will deliver smiliar benefit but with a wider reach. Incoming requests to the Static Site Editor will be redirected to the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html).
-Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects.
+Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects.
</div>
@@ -2106,7 +2106,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-[GitLab Serverless](https://docs.gitlab.com/ee/user/project/clusters/serverless/) is a feature set to support Knative-based serverless development with automatic deployments and monitoring.
+GitLab Serverless is a feature set to support Knative-based serverless development with automatic deployments and monitoring.
We decided to remove the GitLab Serverless features as they never really resonated with our users. Besides, given the continuous development of Kubernetes and Knative, our current implementations do not even work with recent versions.
diff --git a/doc/update/removals.md b/doc/update/removals.md
index 392259176bb..84450006d82 100644
--- a/doc/update/removals.md
+++ b/doc/update/removals.md
@@ -251,7 +251,7 @@ Elasticsearch 6.8 support has been removed in GitLab 15.0. Elasticsearch 6.8 has
If you use Elasticsearch 6.8, **you must upgrade your Elasticsearch version to 7.x** prior to upgrading to GitLab 15.0.
You should not upgrade to Elasticsearch 8 until you have completed the GitLab 15.0 upgrade.
-View the [version requirements](https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements) for details.
+View the [version requirements](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements) for details.
### End of support for Python 3.6 in Dependency Scanning
@@ -444,7 +444,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) has been removed in GitLab 15.0.
+[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) has been removed in GitLab 15.0.
We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible.
We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used.
@@ -574,7 +574,7 @@ If you installed GitLab from source, verify manually that both servers are confi
### Static Site Editor
-The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab.
+The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab.
### Support for `gitaly['internal_socket_dir']`
@@ -849,7 +849,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#rubocop-errors).
+By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/ci/testing/code_quality.html#rubocop-errors).
Relevant Issue: [Default `codeclimate-rubocop` engine does not support Ruby 2.6+](https://gitlab.com/gitlab-org/ci-cd/codequality/-/issues/28)
@@ -892,7 +892,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/load_performance_testing.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0.
+Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/ci/testing/code_quality.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0.
Relevant Issue: [Rename default Browser Performance Testing job](https://gitlab.com/gitlab-org/gitlab/-/issues/225914)
@@ -1158,7 +1158,7 @@ WARNING:
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
Review the details carefully before upgrading.
-The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`).
+The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`).
### Release description in the Tags API
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index 7ecd1bb7782..0200e9c4e7d 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -459,3 +459,12 @@ The Web IDE has a few limitations:
- If the terminal displays **Connection Failure**, then the terminal could not
connect to the runner. Try to stop and restart the terminal. If the
problem persists, double check your runner configuration.
+
+## VSCode Reimplementation
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
+
+As announced in [this blog post](https://about.gitlab.com/blog/2022/05/23/the-future-of-the-gitlab-web-ide/),
+the current implementation of the Web IDE will be replaced with a [VSCode inspired implementation](https://gitlab.com/groups/gitlab-org/-/epics/7683).
+
+This effort is currently under development. Follow [this epic](https://gitlab.com/groups/gitlab-org/-/epics/7683) for updates and more information.
diff --git a/glfm_specification/output_example_snapshots/html.yml b/glfm_specification/output_example_snapshots/html.yml
index 69cff67d27d..a16ee2e7200 100644
--- a/glfm_specification/output_example_snapshots/html.yml
+++ b/glfm_specification/output_example_snapshots/html.yml
@@ -2,22 +2,22 @@
02_01_00__preliminaries__tabs__001:
canonical: "<pre><code>foo\tbaz\t\tbim\n</code></pre>\n"
static: "<div class=\"gl-relative markdown-code-block js-markdown-code\">\n<pre
- data-sourcepos=\"1:2-1:13\" class=\"code highlight js-syntax-highlight language-plaintext\"
- lang=\"plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
+ data-sourcepos=\"1:2-1:13\" lang=\"plaintext\" class=\"code highlight js-syntax-highlight
+ language-plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
class=\"line\" lang=\"plaintext\">foo\tbaz\t\tbim</span></code></pre>\n<copy-code></copy-code>\n</div>"
wysiwyg: "<pre class=\"content-editor-code-block undefined code highlight\"><code>foo\tbaz\t\tbim</code></pre>"
02_01_00__preliminaries__tabs__002:
canonical: "<pre><code>foo\tbaz\t\tbim\n</code></pre>\n"
static: "<div class=\"gl-relative markdown-code-block js-markdown-code\">\n<pre
- data-sourcepos=\"1:4-1:15\" class=\"code highlight js-syntax-highlight language-plaintext\"
- lang=\"plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
+ data-sourcepos=\"1:4-1:15\" lang=\"plaintext\" class=\"code highlight js-syntax-highlight
+ language-plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
class=\"line\" lang=\"plaintext\">foo\tbaz\t\tbim</span></code></pre>\n<copy-code></copy-code>\n</div>"
wysiwyg: "<pre class=\"content-editor-code-block undefined code highlight\"><code>foo\tbaz\t\tbim</code></pre>"
02_01_00__preliminaries__tabs__003:
canonical: "<pre><code>a\ta\nὐ\ta\n</code></pre>\n"
static: "<div class=\"gl-relative markdown-code-block js-markdown-code\">\n<pre
- data-sourcepos=\"1:5-2:9\" class=\"code highlight js-syntax-highlight language-plaintext\"
- lang=\"plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
+ data-sourcepos=\"1:5-2:9\" lang=\"plaintext\" class=\"code highlight js-syntax-highlight
+ language-plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
class=\"line\" lang=\"plaintext\">a\ta</span>\n<span id=\"LC2\" class=\"line\"
lang=\"plaintext\">ὐ\ta</span></code></pre>\n<copy-code></copy-code>\n</div>"
wysiwyg: "<pre class=\"content-editor-code-block undefined code highlight\"><code>a\ta\nὐ\ta</code></pre>"
@@ -52,7 +52,7 @@
<li data-sourcepos="1:1-3:5">
<p data-sourcepos="1:3-1:5">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:2-3:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> bar</span></code></pre>
+ <pre data-sourcepos="3:2-3:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> bar</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -68,7 +68,7 @@
static: |-
<blockquote data-sourcepos="1:1-1:6" dir="auto">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:3-1:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span></code></pre>
+ <pre data-sourcepos="1:3-1:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span></code></pre>
<copy-code></copy-code>
</div>
</blockquote>
@@ -86,7 +86,7 @@
<ul data-sourcepos="1:1-1:6" dir="auto">
<li data-sourcepos="1:1-1:6">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:3-1:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span></code></pre>
+ <pre data-sourcepos="1:3-1:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -100,7 +100,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-2:4" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+ <pre data-sourcepos="1:5-2:4" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
@@ -221,7 +221,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***</span></code></pre>
+ <pre data-sourcepos="1:5-1:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -464,7 +464,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo</span></code></pre>
+ <pre data-sourcepos="1:5-1:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -661,7 +661,7 @@
<hr />
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-4:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+ <pre data-sourcepos="1:5-4:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">Foo</span></code></pre>
@@ -806,7 +806,7 @@
<p>Baz</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="s">Foo</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="s">Foo</span></span></code></pre>
<copy-code></copy-code>
</div>
<h2 data-sourcepos="4:1-6:3" dir="auto">
@@ -829,7 +829,7 @@
<hr />
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-2:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="1:1-2:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -855,7 +855,7 @@
<hr />
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:5-1:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
<hr data-sourcepos="2:1-2:3">
@@ -953,7 +953,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-2:25" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a simple</span>
+ <pre data-sourcepos="1:5-2:25" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a simple</span>
<span id="LC2" class="line" lang="plaintext"> indented code block</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1007,7 +1007,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-4:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a/&gt;</span>
+ <pre data-sourcepos="1:5-4:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a/&gt;</span>
<span id="LC2" class="line" lang="plaintext">*hi*</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">- one</span></code></pre>
@@ -1030,7 +1030,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-7:10" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">chunk1</span>
+ <pre data-sourcepos="1:5-7:10" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">chunk1</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">chunk2</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -1051,7 +1051,7 @@
canonical: "<pre><code>chunk1\n \n chunk2\n</code></pre>\n"
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-3:12" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">chunk1</span>
+ <pre data-sourcepos="1:5-3:12" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">chunk1</span>
<span id="LC2" class="line" lang="plaintext"> </span>
<span id="LC3" class="line" lang="plaintext"> chunk2</span></code></pre>
<copy-code></copy-code>
@@ -1075,7 +1075,7 @@
<p>bar</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:5-1:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="2:1-2:3" dir="auto">bar</p>
@@ -1095,13 +1095,13 @@
<h1 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-heading" class="anchor" href="#heading" aria-hidden="true"></a>Heading</h1>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="2:5-2:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="2:5-2:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
<h2 data-sourcepos="3:1-5:7" dir="auto">
<a id="user-content-heading-1" class="anchor" href="#heading-1" aria-hidden="true"></a>Heading</h2>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:5-5:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="5:5-5:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
<hr data-sourcepos="6:1-6:4">
@@ -1118,7 +1118,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-2:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+ <pre data-sourcepos="1:5-2:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1131,7 +1131,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:5-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="3:5-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1140,7 +1140,7 @@
canonical: "<pre><code>foo \n</code></pre>\n"
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span></code></pre>
+ <pre data-sourcepos="1:5-1:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1152,7 +1152,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;</span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;</span>
<span id="LC2" class="line" lang="plaintext"> &gt;</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1166,7 +1166,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;</span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;</span>
<span id="LC2" class="line" lang="plaintext"> &gt;</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1187,7 +1187,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">~~~</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1201,7 +1201,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">```</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1215,7 +1215,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-4:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">```</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1229,7 +1229,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:4" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-4:4" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">~~~</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1241,7 +1241,7 @@
<pre><code></code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-1:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="1:1-1:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1254,7 +1254,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
<span id="LC2" class="line" lang="plaintext">```</span>
<span id="LC3" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
@@ -1273,7 +1273,7 @@
static: |-
<blockquote data-sourcepos="1:1-2:5" dir="auto">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:3-3:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
+ <pre data-sourcepos="1:3-3:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
</div>
</blockquote>
@@ -1285,7 +1285,7 @@
canonical: "<pre><code>\n \n</code></pre>\n"
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
+ <pre data-sourcepos="1:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
<span id="LC2" class="line" lang="plaintext"> </span></code></pre>
<copy-code></copy-code>
</div>
@@ -1296,7 +1296,7 @@
<pre><code></code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-2:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="1:1-2:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1308,7 +1308,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:2-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:2-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1323,7 +1323,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:3-5:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:3-5:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
@@ -1340,7 +1340,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:4-5:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:4-5:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext"> aaa</span>
<span id="LC3" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
@@ -1357,7 +1357,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-3:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+ <pre data-sourcepos="1:5-3:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">```</span></code></pre>
<copy-code></copy-code>
@@ -1372,7 +1372,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
+ <pre data-sourcepos="1:1-3:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1383,7 +1383,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:4-3:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
+ <pre data-sourcepos="1:4-3:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1395,7 +1395,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-3:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext"> ```</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1419,7 +1419,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+ <pre data-sourcepos="1:1-3:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">~~~ ~~</span></code></pre>
<copy-code></copy-code>
</div>
@@ -1435,7 +1435,7 @@
static: |-
<p data-sourcepos="1:1-1:3" dir="auto">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="2:1-4:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="2:1-4:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5:1-5:3" dir="auto">baz</p>
@@ -1453,7 +1453,7 @@
<h2 data-sourcepos="1:1-3:3" dir="auto">
<a id="user-content-foo" class="anchor" href="#foo" aria-hidden="true"></a>foo</h2>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:1-5:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="3:1-5:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
<h1 data-sourcepos="6:1-6:5" dir="auto">
@@ -1470,7 +1470,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-5:3" class="code highlight js-syntax-highlight language-ruby" lang="ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span></span>
+ <pre data-sourcepos="1:1-5:3" lang="ruby" class="code highlight js-syntax-highlight language-ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span></span>
<span id="LC2" class="line" lang="ruby"> <span class="k">return</span> <span class="mi">3</span></span>
<span id="LC3" class="line" lang="ruby"><span class="k">end</span></span></code></pre>
<copy-code></copy-code>
@@ -1487,7 +1487,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-5:7" class="code highlight js-syntax-highlight language-ruby" lang="ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span></span>
+ <pre data-sourcepos="1:1-5:7" lang="ruby" class="code highlight js-syntax-highlight language-ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span></span>
<span id="LC2" class="line" lang="ruby"> <span class="k">return</span> <span class="mi">3</span></span>
<span id="LC3" class="line" lang="ruby"><span class="k">end</span></span></code></pre>
<copy-code></copy-code>
@@ -1501,7 +1501,7 @@
<pre><code class="language-;"></code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-2:4" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang=";" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="1:1-2:4" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang=";" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1522,7 +1522,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="aa" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="aa" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1533,7 +1533,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` aaa</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` aaa</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -1799,7 +1799,7 @@
<p>okay</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
+ <pre lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
<span id="LC2" class="line" lang="plaintext">import Text.HTML.TagSoup</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">main :: IO ()</span>
@@ -1989,8 +1989,8 @@
<pre><code>&lt;!-- foo --&gt;
</code></pre>
static: " \n<div class=\"gl-relative markdown-code-block js-markdown-code\">\n<pre
- data-sourcepos=\"3:5-3:16\" class=\"code highlight js-syntax-highlight language-plaintext\"
- lang=\"plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
+ data-sourcepos=\"3:5-3:16\" lang=\"plaintext\" class=\"code highlight js-syntax-highlight
+ language-plaintext\" data-canonical-lang=\"\" v-pre=\"true\"><code><span id=\"LC1\"
class=\"line\" lang=\"plaintext\">&lt;!-- foo --&gt;</span></code></pre>\n<copy-code></copy-code>\n</div>"
wysiwyg: |-
<pre class="content-editor-code-block undefined code highlight"><code>&lt;!-- foo --&gt;</code></pre>
@@ -2002,7 +2002,7 @@
static: |2-
<div>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:5-3:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span></code></pre>
+ <pre data-sourcepos="3:5-3:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span></code></pre>
<copy-code></copy-code>
</div>
</div>
@@ -2113,7 +2113,7 @@
<table dir="auto">
<tr>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:5-8:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;td&gt;</span>
+ <pre data-sourcepos="5:5-8:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;td&gt;</span>
<span id="LC2" class="line" lang="plaintext"> Hi</span>
<span id="LC3" class="line" lang="plaintext">&lt;/td&gt;</span></code></pre>
<copy-code></copy-code>
@@ -2306,7 +2306,7 @@
<p>[foo]</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-2:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title"</span></code></pre>
+ <pre data-sourcepos="1:5-2:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title"</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3:1-3:5" dir="auto">[foo]</p>
@@ -2320,7 +2320,7 @@
<p>[foo]</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5:1-5:5" dir="auto">[foo]</p>
@@ -2489,7 +2489,7 @@
<p>bbb</p>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
+ <pre data-sourcepos="1:5-1:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="2:1-2:3" dir="auto">bbb</p>
@@ -2836,7 +2836,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-3:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
+ <pre data-sourcepos="1:5-3:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">&gt; baz</span></code></pre>
<copy-code></copy-code>
@@ -2926,12 +2926,12 @@
static: |-
<blockquote data-sourcepos="1:1-1:9" dir="auto">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:7-1:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:7-1:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
</blockquote>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="2:5-2:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="2:5-2:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -2947,13 +2947,13 @@
static: |-
<blockquote data-sourcepos="1:1-1:5" dir="auto">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:3-2:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="1:3-2:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
</blockquote>
<p data-sourcepos="2:1-2:3" dir="auto">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
+ <pre data-sourcepos="3:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -3184,7 +3184,7 @@
static: |-
<blockquote data-sourcepos="1:1-1:10" dir="auto">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:7-1:10" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code</span></code></pre>
+ <pre data-sourcepos="1:7-1:10" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code</span></code></pre>
<copy-code></copy-code>
</div>
</blockquote>
@@ -3207,7 +3207,7 @@
<p data-sourcepos="1:1-2:15" dir="auto">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:5-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:5-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:1-6:16" dir="auto">
@@ -3237,7 +3237,7 @@
<p data-sourcepos="1:5-2:19">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:9-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:9-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:5-6:20">
@@ -3291,7 +3291,7 @@
<li data-sourcepos="1:2-2:0">one</li>
</ul>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:5-3:8" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> two</span></code></pre>
+ <pre data-sourcepos="3:5-3:8" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> two</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -3405,7 +3405,7 @@
<li data-sourcepos="1:1-9:9">
<p data-sourcepos="1:5-1:7">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:5-5:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="3:5-5:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7:5-7:7">baz</p>
@@ -3433,7 +3433,7 @@
<li data-sourcepos="1:1-6:9">
<p data-sourcepos="1:3-1:5">Foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:7-6:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span>
+ <pre data-sourcepos="3:7-6:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">baz</span></code></pre>
@@ -3507,7 +3507,7 @@
<li data-sourcepos="1:1-3:9">
<p data-sourcepos="1:3-1:5">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:7-3:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="3:7-3:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -3528,7 +3528,7 @@
<li data-sourcepos="1:3-3:14">
<p data-sourcepos="1:8-1:10">foo</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:12-3:14" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="3:12-3:14" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -3544,12 +3544,12 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-2:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="1:5-2:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3:1-3:9" dir="auto">paragraph</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:5-5:13" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
+ <pre data-sourcepos="5:5-5:13" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -3571,12 +3571,12 @@
<ol data-sourcepos="1:1-5:16" dir="auto">
<li data-sourcepos="1:1-5:16">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:8-2:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="1:8-2:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3:4-3:12">paragraph</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:8-5:16" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
+ <pre data-sourcepos="5:8-5:16" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -3598,12 +3598,12 @@
<ol data-sourcepos="1:1-5:16" dir="auto">
<li data-sourcepos="1:1-5:16">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:8-2:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> indented code</span></code></pre>
+ <pre data-sourcepos="1:8-2:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> indented code</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3:4-3:12">paragraph</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:8-5:16" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
+ <pre data-sourcepos="5:8-5:16" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">more code</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -3669,13 +3669,13 @@
<li data-sourcepos="1:1-2:5">foo</li>
<li data-sourcepos="3:1-6:5">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:3-6:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
+ <pre data-sourcepos="4:3-6:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">bar</span></code></pre>
<copy-code></copy-code>
</div>
</li>
<li data-sourcepos="7:1-8:9">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="8:7-8:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">baz</span></code></pre>
+ <pre data-sourcepos="8:7-8:9" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">baz</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -3803,7 +3803,7 @@
<p data-sourcepos="1:6-2:20">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:10-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:10-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:6-6:21">
@@ -3833,7 +3833,7 @@
<p data-sourcepos="1:7-2:21">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:11-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:11-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:7-6:22">
@@ -3863,7 +3863,7 @@
<p data-sourcepos="1:8-2:22">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:12-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:12-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:8-6:23">
@@ -3885,7 +3885,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-6:24" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. A paragraph</span>
+ <pre data-sourcepos="1:5-6:24" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3919,7 +3919,7 @@
<p data-sourcepos="1:7-2:15">A paragraph
with two lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="4:11-5:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
+ <pre data-sourcepos="4:11-5:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">indented code</span></code></pre>
<copy-code></copy-code>
</div>
<blockquote data-sourcepos="6:7-6:22">
@@ -4345,7 +4345,7 @@
</ul>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="9:5-9:8" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code</span></code></pre>
+ <pre data-sourcepos="9:5-9:8" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -4443,7 +4443,7 @@
</li>
</ol>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:5-5:8" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">3. c</span></code></pre>
+ <pre data-sourcepos="5:5-5:8" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">3. c</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -4573,7 +4573,7 @@
<li data-sourcepos="1:1-1:3">a</li>
<li data-sourcepos="2:1-6:5">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="2:3-6:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">b</span>
+ <pre data-sourcepos="2:3-6:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">b</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"></span></code></pre>
<copy-code></copy-code>
@@ -4650,7 +4650,7 @@
<p data-sourcepos="2:5-2:5">b</p>
</blockquote>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="3:3-5:5" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">c</span></code></pre>
+ <pre data-sourcepos="3:3-5:5" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">c</span></code></pre>
<copy-code></copy-code>
</div>
</li>
@@ -4701,7 +4701,7 @@
<ol data-sourcepos="1:1-5:6" dir="auto">
<li data-sourcepos="1:1-5:6">
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:4-3:6" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:4-3:6" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5:4-5:6">bar</p>
@@ -4848,7 +4848,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:8" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[\]</span></code></pre>
+ <pre data-sourcepos="1:5-1:8" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[\]</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -4859,7 +4859,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[\]</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[\]</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -4899,7 +4899,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="foo+bar" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="foo+bar" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -4989,7 +4989,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="föö" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="föö" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -5007,7 +5007,7 @@
</code></pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:5-1:18" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">f&amp;ouml;f&amp;ouml;</span></code></pre>
+ <pre data-sourcepos="1:5-1:18" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">f&amp;ouml;f&amp;ouml;</span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -7741,7 +7741,7 @@
</pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">YAML front matter</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">YAML front matter</span></span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -7755,7 +7755,7 @@
</pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-toml" lang="toml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="toml"><span class="err">title:</span> <span class="err">TOML</span> <span class="err">front</span> <span class="err">matter</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="toml" class="code highlight js-syntax-highlight language-toml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="toml"><span class="err">title:</span> <span class="err">TOML</span> <span class="err">front</span> <span class="err">matter</span></span></code></pre>
<copy-code></copy-code>
</div>
wysiwyg: |-
@@ -7771,7 +7771,7 @@
</pre>
static: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-5:3" class="code highlight js-syntax-highlight language-json" lang="json" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="json"><span class="p">{</span></span>
+ <pre data-sourcepos="1:1-5:3" lang="json" class="code highlight js-syntax-highlight language-json" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="json"><span class="p">{</span></span>
<span id="LC2" class="line" lang="json"><span class="w"> </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"JSON front matter"</span></span>
<span id="LC3" class="line" lang="json"><span class="p">}</span></span></code></pre>
<copy-code></copy-code>
diff --git a/glfm_specification/output_example_snapshots/snapshot_spec.html b/glfm_specification/output_example_snapshots/snapshot_spec.html
index c78d41e1392..1f9c5ca2e0e 100644
--- a/glfm_specification/output_example_snapshots/snapshot_spec.html
+++ b/glfm_specification/output_example_snapshots/snapshot_spec.html
@@ -1,5 +1,5 @@
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
+<pre data-sourcepos="1:1-4:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="s">alpha</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -59,21 +59,21 @@ in an indented code block. (Note, however, that internal
tabs are passed through as literal tabs, not expanded to
spaces.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="77:1-82:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">→foo→baz→→bim</span>
+<pre data-sourcepos="77:1-82:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">→foo→baz→→bim</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo→baz→→bim</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="84:1-89:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> →foo→baz→→bim</span>
+<pre data-sourcepos="84:1-89:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> →foo→baz→→bim</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo→baz→→bim</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="91:1-98:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> a→a</span>
+<pre data-sourcepos="91:1-98:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> a→a</span>
<span id="LC2" class="line" lang="plaintext"> ὐ→a</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;a→a</span>
@@ -85,7 +85,7 @@ spaces.)</p>
item is indented with a tab; this has exactly the same effect
as indentation with four spaces would:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="104:1-115:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
+<pre data-sourcepos="104:1-115:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">→bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -98,7 +98,7 @@ as indentation with four spaces would:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="117:1-129:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="117:1-129:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">→→bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -120,7 +120,7 @@ delimiter, <code>foo</code> is considered to be indented six spaces
inside the block quote context, so we get an indented
code block starting with two spaces.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="140:1-147:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;→→foo</span>
+<pre data-sourcepos="140:1-147:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;→→foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;blockquote&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt; foo</span>
@@ -129,7 +129,7 @@ code block starting with two spaces.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="149:1-158:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-→→foo</span>
+<pre data-sourcepos="149:1-158:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-→→foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -140,7 +140,7 @@ code block starting with two spaces.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="161:1-168:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+<pre data-sourcepos="161:1-168:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext">→bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo</span>
@@ -149,7 +149,7 @@ code block starting with two spaces.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="170:1-186:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
+<pre data-sourcepos="170:1-186:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext">→ - baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -167,13 +167,13 @@ code block starting with two spaces.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="188:1-192:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">#→Foo</span>
+<pre data-sourcepos="188:1-192:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">#→Foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h1&gt;Foo&lt;/h1&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="194:1-198:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*→*→*→</span>
+<pre data-sourcepos="194:1-198:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*→*→*→</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
@@ -196,7 +196,7 @@ links, emphasized text, images, code spans, and so on.</p>
of inline structure. So, for example, the following is a list with
two items, not a list with one item containing a code span:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="221:1-229:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- `one</span>
+<pre data-sourcepos="221:1-229:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- `one</span>
<span id="LC2" class="line" lang="plaintext">- two`</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -230,7 +230,7 @@ of three or more matching <code>-</code>, <code>_</code>, or <code>*</code> char
optionally by any number of spaces or tabs, forms a
<a href="@">thematic break</a>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="260:1-268:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***</span>
+<pre data-sourcepos="260:1-268:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">___</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -241,20 +241,20 @@ optionally by any number of spaces or tabs, forms a
</div>
<p data-sourcepos="271:1-271:17" dir="auto">Wrong characters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="273:1-277:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
+<pre data-sourcepos="273:1-277:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;+++&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="280:1-284:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">===</span>
+<pre data-sourcepos="280:1-284:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">===</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;===&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="287:1-287:22" dir="auto">Not enough characters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="289:1-297:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">--</span>
+<pre data-sourcepos="289:1-297:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">--</span>
<span id="LC2" class="line" lang="plaintext">**</span>
<span id="LC3" class="line" lang="plaintext">__</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -265,7 +265,7 @@ optionally by any number of spaces or tabs, forms a
</div>
<p data-sourcepos="300:1-300:39" dir="auto">One to three spaces indent are allowed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="302:1-310:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ***</span>
+<pre data-sourcepos="302:1-310:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ***</span>
<span id="LC2" class="line" lang="plaintext"> ***</span>
<span id="LC3" class="line" lang="plaintext"> ***</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -276,14 +276,14 @@ optionally by any number of spaces or tabs, forms a
</div>
<p data-sourcepos="313:1-313:24" dir="auto">Four spaces is too many:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="315:1-320:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ***</span>
+<pre data-sourcepos="315:1-320:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;***</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="323:1-329:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="323:1-329:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext"> ***</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;Foo</span>
@@ -292,40 +292,40 @@ optionally by any number of spaces or tabs, forms a
</div>
<p data-sourcepos="332:1-332:39" dir="auto">More than three characters may be used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="334:1-338:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_____________________________________</span>
+<pre data-sourcepos="334:1-338:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_____________________________________</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="341:1-341:42" dir="auto">Spaces are allowed between the characters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="343:1-347:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - - -</span>
+<pre data-sourcepos="343:1-347:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - - -</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="350:1-354:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ** * ** * ** * **</span>
+<pre data-sourcepos="350:1-354:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ** * ** * ** * **</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="357:1-361:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - - -</span>
+<pre data-sourcepos="357:1-361:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - - -</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="364:1-364:30" dir="auto">Spaces are allowed at the end:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="366:1-370:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - - - </span>
+<pre data-sourcepos="366:1-370:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - - - </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;hr /&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="373:1-373:51" dir="auto">However, no other characters may occur in the line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="375:1-385:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_ _ _ _ a</span>
+<pre data-sourcepos="375:1-385:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_ _ _ _ a</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">a------</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -339,14 +339,14 @@ optionally by any number of spaces or tabs, forms a
<p data-sourcepos="388:1-389:33" dir="auto">It is required that all of the [non-whitespace characters] be the same.
So, this is not a thematic break:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="391:1-395:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> *-*</span>
+<pre data-sourcepos="391:1-395:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> *-*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;-&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="398:1-398:56" dir="auto">Thematic breaks do not need blank lines before or after:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="400:1-412:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="400:1-412:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">***</span>
<span id="LC3" class="line" lang="plaintext">- bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -361,7 +361,7 @@ So, this is not a thematic break:</p>
</div>
<p data-sourcepos="415:1-415:42" dir="auto">Thematic breaks can interrupt a paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="417:1-425:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="417:1-425:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">***</span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -376,7 +376,7 @@ heading], the interpretation as a
[setext heading] takes precedence. Thus, for example,
this is a setext heading, not a paragraph followed by a thematic break:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="434:1-441:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="434:1-441:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -387,7 +387,7 @@ this is a setext heading, not a paragraph followed by a thematic break:</p>
<p data-sourcepos="444:1-445:63" dir="auto">When both a thematic break and a list item are possible
interpretations of a line, the thematic break takes precedence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="447:1-459:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* Foo</span>
+<pre data-sourcepos="447:1-459:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* Foo</span>
<span id="LC2" class="line" lang="plaintext">* * *</span>
<span id="LC3" class="line" lang="plaintext">* Bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -402,7 +402,7 @@ interpretations of a line, the thematic break takes precedence:</p>
</div>
<p data-sourcepos="462:1-462:68" dir="auto">If you want a thematic break in a list item, use a different bullet:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="464:1-474:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
+<pre data-sourcepos="464:1-474:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
<span id="LC2" class="line" lang="plaintext">- * * *</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -428,7 +428,7 @@ as inline content. The heading level is equal to the number of <code>#</code>
characters in the opening sequence.</p>
<p data-sourcepos="491:1-491:16" dir="auto">Simple headings:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="493:1-507:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo</span>
+<pre data-sourcepos="493:1-507:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo</span>
<span id="LC2" class="line" lang="plaintext">## foo</span>
<span id="LC3" class="line" lang="plaintext">### foo</span>
<span id="LC4" class="line" lang="plaintext">#### foo</span>
@@ -445,7 +445,7 @@ characters in the opening sequence.</p>
</div>
<p data-sourcepos="510:1-510:46" dir="auto">More than six <code>#</code> characters is not a heading:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="512:1-516:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">####### foo</span>
+<pre data-sourcepos="512:1-516:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">####### foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;####### foo&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -458,7 +458,7 @@ space was required by the
and it helps prevent things like the following from being parsed as
headings:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="527:1-534:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">#5 bolt</span>
+<pre data-sourcepos="527:1-534:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">#5 bolt</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">#hashtag</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -468,28 +468,28 @@ headings:</p>
</div>
<p data-sourcepos="537:1-537:56" dir="auto">This is not a heading, because the first <code>#</code> is escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="539:1-543:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\## foo</span>
+<pre data-sourcepos="539:1-543:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\## foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;## foo&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="546:1-546:31" dir="auto">Contents are parsed as inlines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="548:1-552:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo *bar* \*baz\*</span>
+<pre data-sourcepos="548:1-552:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo *bar* \*baz\*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h1&gt;foo &lt;em&gt;bar&lt;/em&gt; *baz*&lt;/h1&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="555:1-555:71" dir="auto">Leading and trailing [whitespace] is ignored in parsing inline content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="557:1-561:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo </span>
+<pre data-sourcepos="557:1-561:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h1&gt;foo&lt;/h1&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="564:1-564:44" dir="auto">One to three spaces indentation are allowed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="566:1-574:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ### foo</span>
+<pre data-sourcepos="566:1-574:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ### foo</span>
<span id="LC2" class="line" lang="plaintext"> ## foo</span>
<span id="LC3" class="line" lang="plaintext"> # foo</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -500,14 +500,14 @@ headings:</p>
</div>
<p data-sourcepos="577:1-577:25" dir="auto">Four spaces are too much:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="579:1-584:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> # foo</span>
+<pre data-sourcepos="579:1-584:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> # foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;# foo</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="587:1-593:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="587:1-593:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext"> # bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo</span>
@@ -516,7 +516,7 @@ headings:</p>
</div>
<p data-sourcepos="596:1-596:49" dir="auto">A closing sequence of <code>#</code> characters is optional:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="598:1-604:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">## foo ##</span>
+<pre data-sourcepos="598:1-604:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">## foo ##</span>
<span id="LC2" class="line" lang="plaintext"> ### bar ###</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h2&gt;foo&lt;/h2&gt;</span>
@@ -525,7 +525,7 @@ headings:</p>
</div>
<p data-sourcepos="607:1-607:55" dir="auto">It need not be the same length as the opening sequence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="609:1-615:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo ##################################</span>
+<pre data-sourcepos="609:1-615:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo ##################################</span>
<span id="LC2" class="line" lang="plaintext">##### foo ##</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h1&gt;foo&lt;/h1&gt;</span>
@@ -534,7 +534,7 @@ headings:</p>
</div>
<p data-sourcepos="618:1-618:46" dir="auto">Spaces are allowed after the closing sequence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="620:1-624:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo ### </span>
+<pre data-sourcepos="620:1-624:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo ### </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h3&gt;foo&lt;/h3&gt;</span></code></pre>
<copy-code></copy-code>
@@ -543,14 +543,14 @@ headings:</p>
is not a closing sequence, but counts as part of the contents of the
heading:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="631:1-635:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo ### b</span>
+<pre data-sourcepos="631:1-635:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo ### b</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h3&gt;foo ### b&lt;/h3&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="638:1-638:49" dir="auto">The closing sequence must be preceded by a space:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="640:1-644:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo#</span>
+<pre data-sourcepos="640:1-644:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># foo#</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h1&gt;foo#&lt;/h1&gt;</span></code></pre>
<copy-code></copy-code>
@@ -558,7 +558,7 @@ heading:</p>
<p data-sourcepos="647:1-648:24" dir="auto">Backslash-escaped <code>#</code> characters do not count as part
of the closing sequence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="650:1-658:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo \###</span>
+<pre data-sourcepos="650:1-658:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo \###</span>
<span id="LC2" class="line" lang="plaintext">## foo #\##</span>
<span id="LC3" class="line" lang="plaintext"># foo \#</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -570,7 +570,7 @@ of the closing sequence:</p>
<p data-sourcepos="661:1-662:41" dir="auto">ATX headings need not be separated from surrounding content by blank
lines, and they can interrupt paragraphs:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="664:1-672:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****</span>
+<pre data-sourcepos="664:1-672:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****</span>
<span id="LC2" class="line" lang="plaintext">## foo</span>
<span id="LC3" class="line" lang="plaintext">****</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -580,7 +580,7 @@ lines, and they can interrupt paragraphs:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="675:1-683:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo bar</span>
+<pre data-sourcepos="675:1-683:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo bar</span>
<span id="LC2" class="line" lang="plaintext"># baz</span>
<span id="LC3" class="line" lang="plaintext">Bar foo</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -591,7 +591,7 @@ lines, and they can interrupt paragraphs:</p>
</div>
<p data-sourcepos="686:1-686:26" dir="auto">ATX headings can be empty:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="688:1-696:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">## </span>
+<pre data-sourcepos="688:1-696:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">## </span>
<span id="LC2" class="line" lang="plaintext">#</span>
<span id="LC3" class="line" lang="plaintext">### ###</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -628,7 +628,7 @@ setext heading comes after a paragraph, a blank line is needed between
them.</p>
<p data-sourcepos="729:1-729:16" dir="auto">Simple examples:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="731:1-740:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo *bar*</span>
+<pre data-sourcepos="731:1-740:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo *bar*</span>
<span id="LC2" class="line" lang="plaintext">=========</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">Foo *bar*</span>
@@ -640,7 +640,7 @@ them.</p>
</div>
<p data-sourcepos="743:1-743:54" dir="auto">The content of the header may span more than one line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="745:1-752:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo *bar</span>
+<pre data-sourcepos="745:1-752:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo *bar</span>
<span id="LC2" class="line" lang="plaintext">baz*</span>
<span id="LC3" class="line" lang="plaintext">====</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -653,7 +653,7 @@ content as inlines. The heading's raw content is formed by
concatenating the lines and removing initial and final
[whitespace].</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="759:1-766:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo *bar</span>
+<pre data-sourcepos="759:1-766:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo *bar</span>
<span id="LC2" class="line" lang="plaintext">baz*→</span>
<span id="LC3" class="line" lang="plaintext">====</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -663,7 +663,7 @@ concatenating the lines and removing initial and final
</div>
<p data-sourcepos="769:1-769:34" dir="auto">The underlining can be any length:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="771:1-780:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="771:1-780:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">-------------------------</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">Foo</span>
@@ -676,7 +676,7 @@ concatenating the lines and removing initial and final
<p data-sourcepos="783:1-784:33" dir="auto">The heading content can be indented up to three spaces, and need
not line up with the underlining:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="786:1-799:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo</span>
+<pre data-sourcepos="786:1-799:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> Foo</span>
@@ -692,7 +692,7 @@ not line up with the underlining:</p>
</div>
<p data-sourcepos="802:1-802:31" dir="auto">Four spaces indent is too much:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="804:1-817:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo</span>
+<pre data-sourcepos="804:1-817:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> Foo</span>
<span id="LC2" class="line" lang="plaintext"> ---</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> Foo</span>
@@ -709,7 +709,7 @@ not line up with the underlining:</p>
<p data-sourcepos="820:1-821:25" dir="auto">The setext heading underline can be indented up to three spaces, and
may have trailing spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="823:1-828:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="823:1-828:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext"> ---- </span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h2&gt;Foo&lt;/h2&gt;</span></code></pre>
@@ -717,7 +717,7 @@ may have trailing spaces:</p>
</div>
<p data-sourcepos="831:1-831:24" dir="auto">Four spaces is too much:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="833:1-839:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="833:1-839:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext"> ---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;Foo</span>
@@ -726,7 +726,7 @@ may have trailing spaces:</p>
</div>
<p data-sourcepos="842:1-842:60" dir="auto">The setext heading underline cannot contain internal spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="844:1-855:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="844:1-855:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">= =</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">Foo</span>
@@ -740,7 +740,7 @@ may have trailing spaces:</p>
</div>
<p data-sourcepos="858:1-858:62" dir="auto">Trailing spaces in the content line do not cause a line break:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="860:1-865:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo </span>
+<pre data-sourcepos="860:1-865:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo </span>
<span id="LC2" class="line" lang="plaintext">-----</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h2&gt;Foo&lt;/h2&gt;</span></code></pre>
@@ -748,7 +748,7 @@ may have trailing spaces:</p>
</div>
<p data-sourcepos="868:1-868:32" dir="auto">Nor does a backslash at the end:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="870:1-875:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo\</span>
+<pre data-sourcepos="870:1-875:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo\</span>
<span id="LC2" class="line" lang="plaintext">----</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h2&gt;Foo\&lt;/h2&gt;</span></code></pre>
@@ -757,7 +757,7 @@ may have trailing spaces:</p>
<p data-sourcepos="878:1-879:66" dir="auto">Since indicators of block structure take precedence over
indicators of inline structure, the following are setext headings:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="881:1-894:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`Foo</span>
+<pre data-sourcepos="881:1-894:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`Foo</span>
<span id="LC2" class="line" lang="plaintext">----</span>
<span id="LC3" class="line" lang="plaintext">`</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -774,7 +774,7 @@ indicators of inline structure, the following are setext headings:</p>
<p data-sourcepos="897:1-898:36" dir="auto">The setext heading underline cannot be a [lazy continuation
line] in a list item or block quote:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="900:1-908:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; Foo</span>
+<pre data-sourcepos="900:1-908:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; Foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -784,7 +784,7 @@ line] in a list item or block quote:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="911:1-921:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="911:1-921:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">===</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -796,7 +796,7 @@ line] in a list item or block quote:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="924:1-932:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
+<pre data-sourcepos="924:1-932:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -809,7 +809,7 @@ line] in a list item or block quote:</p>
setext heading, since otherwise the paragraph becomes part
of the heading's content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="939:1-946:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="939:1-946:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">Bar</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -820,7 +820,7 @@ of the heading's content:</p>
<p data-sourcepos="949:1-950:16" dir="auto">But in general a blank line is not required before or after
setext headings:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="952:1-964:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
+<pre data-sourcepos="952:1-964:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
<span id="LC2" class="line" lang="plaintext">Foo</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">Bar</span>
@@ -835,7 +835,7 @@ setext headings:</p>
</div>
<p data-sourcepos="967:1-967:32" dir="auto">Setext headings cannot be empty:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="969:1-974:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
+<pre data-sourcepos="969:1-974:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
<span id="LC2" class="line" lang="plaintext">====</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;====&lt;/p&gt;</span></code></pre>
@@ -845,7 +845,7 @@ setext headings:</p>
constructs other than paragraphs. So, the line of dashes
in these examples gets interpreted as a thematic break:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="981:1-987:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
+<pre data-sourcepos="981:1-987:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;hr /&gt;</span>
@@ -853,7 +853,7 @@ in these examples gets interpreted as a thematic break:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="990:1-998:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="990:1-998:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">-----</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -863,7 +863,7 @@ in these examples gets interpreted as a thematic break:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1001:1-1008:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+<pre data-sourcepos="1001:1-1008:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo</span>
@@ -872,7 +872,7 @@ in these examples gets interpreted as a thematic break:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1011:1-1019:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="1011:1-1019:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">-----</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -884,7 +884,7 @@ in these examples gets interpreted as a thematic break:</p>
<p data-sourcepos="1022:1-1023:22" dir="auto">If you want a heading with <code>&gt; foo</code> as its literal text, you can
use backslash escapes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1025:1-1030:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\&gt; foo</span>
+<pre data-sourcepos="1025:1-1030:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">------</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;h2&gt;&amp;gt; foo&lt;/h2&gt;</span></code></pre>
@@ -894,7 +894,7 @@ use backslash escapes:</p>
do not allow the text of setext headings to span multiple lines.
But there is no consensus about how to interpret</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1037:1-1042:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">Foo</span>
+<pre data-sourcepos="1037:1-1042:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">Foo</span>
<span id="LC2" class="line" lang="markdown"><span class="gh">bar</span></span>
<span id="LC3" class="line" lang="markdown"><span class="gh">---</span></span>
<span id="LC4" class="line" lang="markdown">baz</span></code></pre>
@@ -912,7 +912,7 @@ increases the expressive power of CommonMark, by allowing
multiline headings. Authors who want interpretation 1 can
put a blank line after the first paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1056:1-1066:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="1056:1-1066:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">---</span>
@@ -926,7 +926,7 @@ put a blank line after the first paragraph:</p>
<p data-sourcepos="1069:1-1070:19" dir="auto">Authors who want interpretation 2 can put blank lines around
the thematic break,</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1072:1-1084:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="1072:1-1084:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">---</span>
@@ -942,7 +942,7 @@ the thematic break,</p>
<p data-sourcepos="1087:1-1088:19" dir="auto">or use a thematic break that cannot count as a [setext heading
underline], such as</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1090:1-1100:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="1090:1-1100:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">* * *</span>
<span id="LC4" class="line" lang="plaintext">baz</span>
@@ -955,7 +955,7 @@ underline], such as</p>
</div>
<p data-sourcepos="1103:1-1103:60" dir="auto">Authors who want interpretation 3 can use backslash escapes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1105:1-1115:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="1105:1-1115:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">\---</span>
<span id="LC4" class="line" lang="plaintext">baz</span>
@@ -980,7 +980,7 @@ a blank line between a paragraph and a following indented code block.
(A blank line is not needed, however, between a code block and a following
paragraph.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1133:1-1140:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> a simple</span>
+<pre data-sourcepos="1133:1-1140:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> a simple</span>
<span id="LC2" class="line" lang="plaintext"> indented code block</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;a simple</span>
@@ -992,7 +992,7 @@ paragraph.)</p>
as a code block and as indicating that material belongs to a [list
item][list items], the list item interpretation takes precedence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1147:1-1158:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
+<pre data-sourcepos="1147:1-1158:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1005,7 +1005,7 @@ item][list items], the list item interpretation takes precedence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1161:1-1174:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
+<pre data-sourcepos="1161:1-1174:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> - bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1022,7 +1022,7 @@ item][list items], the list item interpretation takes precedence:</p>
<p data-sourcepos="1178:1-1179:12" dir="auto">The contents of a code block are literal text, and do not get parsed
as Markdown:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1181:1-1192:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;a/&gt;</span>
+<pre data-sourcepos="1181:1-1192:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;a/&gt;</span>
<span id="LC2" class="line" lang="plaintext"> *hi*</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> - one</span>
@@ -1036,7 +1036,7 @@ as Markdown:</p>
</div>
<p data-sourcepos="1195:1-1195:51" dir="auto">Here we have three chunks separated by blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1197:1-1214:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> chunk1</span>
+<pre data-sourcepos="1197:1-1214:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> chunk1</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> chunk2</span>
<span id="LC4" class="line" lang="plaintext"> </span>
@@ -1057,7 +1057,7 @@ as Markdown:</p>
<p data-sourcepos="1217:1-1218:24" dir="auto">Any initial spaces beyond four will be included in the content, even
in interior blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1220:1-1229:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> chunk1</span>
+<pre data-sourcepos="1220:1-1229:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> chunk1</span>
<span id="LC2" class="line" lang="plaintext"> </span>
<span id="LC3" class="line" lang="plaintext"> chunk2</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1070,7 +1070,7 @@ in interior blank lines:</p>
<p data-sourcepos="1232:1-1233:37" dir="auto">An indented code block cannot interrupt a paragraph. (This
allows hanging indents and the like.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1235:1-1242:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="1235:1-1242:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext"> bar</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1082,7 +1082,7 @@ allows hanging indents and the like.)</p>
the code block immediately. So a paragraph may occur immediately
after indented code:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1249:1-1256:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+<pre data-sourcepos="1249:1-1256:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo</span>
@@ -1093,7 +1093,7 @@ after indented code:</p>
<p data-sourcepos="1259:1-1260:7" dir="auto">And indented code can occur immediately before and after other kinds of
blocks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1262:1-1277:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># Heading</span>
+<pre data-sourcepos="1262:1-1277:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># Heading</span>
<span id="LC2" class="line" lang="plaintext"> foo</span>
<span id="LC3" class="line" lang="plaintext">Heading</span>
<span id="LC4" class="line" lang="plaintext">------</span>
@@ -1111,7 +1111,7 @@ blocks:</p>
</div>
<p data-sourcepos="1280:1-1280:53" dir="auto">The first line can be indented more than four spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1282:1-1289:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+<pre data-sourcepos="1282:1-1289:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext"> bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt; foo</span>
@@ -1122,7 +1122,7 @@ blocks:</p>
<p data-sourcepos="1292:1-1293:23" dir="auto">Blank lines preceding or following an indented code block
are not included in it:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1295:1-1304:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
+<pre data-sourcepos="1295:1-1304:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"></span>
<span id="LC2" class="line" lang="plaintext"> </span>
<span id="LC3" class="line" lang="plaintext"> foo</span>
<span id="LC4" class="line" lang="plaintext"> </span>
@@ -1134,7 +1134,7 @@ are not included in it:</p>
</div>
<p data-sourcepos="1307:1-1307:57" dir="auto">Trailing spaces are included in the code block's content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1309:1-1314:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo </span>
+<pre data-sourcepos="1309:1-1314:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;foo </span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
@@ -1180,7 +1180,7 @@ attribute of the <code>code</code> tag. However, this spec does not mandate any
particular treatment of the [info string].</p>
<p data-sourcepos="1362:1-1362:40" dir="auto">Here is a simple example with backticks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1364:1-1373:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1364:1-1373:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">&lt;</span>
<span id="LC3" class="line" lang="plaintext"> &gt;</span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1192,7 +1192,7 @@ particular treatment of the [info string].</p>
</div>
<p data-sourcepos="1376:1-1376:12" dir="auto">With tildes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1378:1-1387:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
+<pre data-sourcepos="1378:1-1387:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
<span id="LC2" class="line" lang="plaintext">&lt;</span>
<span id="LC3" class="line" lang="plaintext"> &gt;</span>
<span id="LC4" class="line" lang="plaintext">~~~</span>
@@ -1204,7 +1204,7 @@ particular treatment of the [info string].</p>
</div>
<p data-sourcepos="1389:1-1389:41" dir="auto">Fewer than three backticks is not enough:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1391:1-1397:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
+<pre data-sourcepos="1391:1-1397:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">``</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1214,7 +1214,7 @@ particular treatment of the [info string].</p>
<p data-sourcepos="1399:1-1400:6" dir="auto">The closing code fence must use the same character as the opening
fence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1402:1-1411:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1402:1-1411:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">~~~</span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1225,7 +1225,7 @@ fence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1414:1-1423:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
+<pre data-sourcepos="1414:1-1423:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">~~~</span>
@@ -1237,7 +1237,7 @@ fence:</p>
</div>
<p data-sourcepos="1426:1-1426:69" dir="auto">The closing code fence must be at least as long as the opening fence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1428:1-1437:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">````</span>
+<pre data-sourcepos="1428:1-1437:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">````</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">``````</span>
@@ -1248,7 +1248,7 @@ fence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1440:1-1449:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~</span>
+<pre data-sourcepos="1440:1-1449:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">~~~</span>
<span id="LC4" class="line" lang="plaintext">~~~~</span>
@@ -1261,13 +1261,13 @@ fence:</p>
<p data-sourcepos="1452:1-1453:74" dir="auto">Unclosed code blocks are closed by the end of the document
(or the enclosing [block quote][block quotes] or [list item][list items]):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1455:1-1459:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1455:1-1459:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1462:1-1472:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`````</span>
+<pre data-sourcepos="1462:1-1472:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`````</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">aaa</span>
@@ -1279,7 +1279,7 @@ fence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1475:1-1486:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; ```</span>
+<pre data-sourcepos="1475:1-1486:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; ```</span>
<span id="LC2" class="line" lang="plaintext">&gt; aaa</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">bbb</span>
@@ -1293,7 +1293,7 @@ fence:</p>
</div>
<p data-sourcepos="1489:1-1489:53" dir="auto">A code block can have all empty lines as its content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1491:1-1500:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1491:1-1500:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> </span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1305,7 +1305,7 @@ fence:</p>
</div>
<p data-sourcepos="1503:1-1503:26" dir="auto">A code block can be empty:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1505:1-1510:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1505:1-1510:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">```</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
@@ -1315,7 +1315,7 @@ fence:</p>
content lines will have equivalent opening indentation removed,
if present:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1517:1-1526:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
+<pre data-sourcepos="1517:1-1526:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
<span id="LC2" class="line" lang="plaintext"> aaa</span>
<span id="LC3" class="line" lang="plaintext">aaa</span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1326,7 +1326,7 @@ if present:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1529:1-1540:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
+<pre data-sourcepos="1529:1-1540:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext"> aaa</span>
<span id="LC4" class="line" lang="plaintext">aaa</span>
@@ -1339,7 +1339,7 @@ if present:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1543:1-1554:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
+<pre data-sourcepos="1543:1-1554:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
<span id="LC2" class="line" lang="plaintext"> aaa</span>
<span id="LC3" class="line" lang="plaintext"> aaa</span>
<span id="LC4" class="line" lang="plaintext"> aaa</span>
@@ -1353,7 +1353,7 @@ if present:</p>
</div>
<p data-sourcepos="1557:1-1557:56" dir="auto">Four spaces indentation produces an indented code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1559:1-1568:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
+<pre data-sourcepos="1559:1-1568:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
<span id="LC2" class="line" lang="plaintext"> aaa</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1366,7 +1366,7 @@ if present:</p>
<p data-sourcepos="1571:1-1572:41" dir="auto">Closing fences may be indented by 0-3 spaces, and their indentation
need not match that of the opening fence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1574:1-1581:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1574:1-1581:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1375,7 +1375,7 @@ need not match that of the opening fence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1584:1-1591:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
+<pre data-sourcepos="1584:1-1591:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1385,7 +1385,7 @@ need not match that of the opening fence:</p>
</div>
<p data-sourcepos="1594:1-1594:61" dir="auto">This is not a closing fence, because it is indented 4 spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1596:1-1604:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1596:1-1604:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1396,7 +1396,7 @@ need not match that of the opening fence:</p>
</div>
<p data-sourcepos="1608:1-1608:65" dir="auto">Code fences (opening and closing) cannot contain internal spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1610:1-1616:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` ```</span>
+<pre data-sourcepos="1610:1-1616:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` ```</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt; &lt;/code&gt;</span>
@@ -1404,7 +1404,7 @@ need not match that of the opening fence:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1619:1-1627:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~~~</span>
+<pre data-sourcepos="1619:1-1627:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~~~</span>
<span id="LC2" class="line" lang="plaintext">aaa</span>
<span id="LC3" class="line" lang="plaintext">~~~ ~~</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1416,7 +1416,7 @@ need not match that of the opening fence:</p>
<p data-sourcepos="1630:1-1631:53" dir="auto">Fenced code blocks can interrupt paragraphs, and can be followed
directly by paragraphs, without a blank line between:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1633:1-1644:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="1633:1-1644:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">```</span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1431,7 +1431,7 @@ directly by paragraphs, without a blank line between:</p>
<p data-sourcepos="1647:1-1648:34" dir="auto">Other blocks can also occur before and after fenced code blocks
without an intervening blank line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1650:1-1662:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="1650:1-1662:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">~~~</span>
<span id="LC4" class="line" lang="plaintext">bar</span>
@@ -1451,7 +1451,7 @@ the language of the code block. In HTML output, the language is
normally indicated by adding a class to the <code>code</code> element consisting
of <code>language-</code> followed by the language name.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1672:1-1683:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```ruby</span>
+<pre data-sourcepos="1672:1-1683:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```ruby</span>
<span id="LC2" class="line" lang="plaintext">def foo(x)</span>
<span id="LC3" class="line" lang="plaintext"> return 3</span>
<span id="LC4" class="line" lang="plaintext">end</span>
@@ -1464,7 +1464,7 @@ of <code>language-</code> followed by the language name.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1686:1-1697:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~ ruby startline=3 $%@#$</span>
+<pre data-sourcepos="1686:1-1697:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~~ ruby startline=3 $%@#$</span>
<span id="LC2" class="line" lang="plaintext">def foo(x)</span>
<span id="LC3" class="line" lang="plaintext"> return 3</span>
<span id="LC4" class="line" lang="plaintext">end</span>
@@ -1477,7 +1477,7 @@ of <code>language-</code> followed by the language name.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1700:1-1705:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">````;</span>
+<pre data-sourcepos="1700:1-1705:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">````;</span>
<span id="LC2" class="line" lang="plaintext">````</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code class="language-;"&gt;&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
@@ -1485,7 +1485,7 @@ of <code>language-</code> followed by the language name.</p>
</div>
<p data-sourcepos="1708:1-1708:65" dir="auto">[Info strings] for backtick code blocks cannot contain backticks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1710:1-1716:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` aa ```</span>
+<pre data-sourcepos="1710:1-1716:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` aa ```</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;aa&lt;/code&gt;</span>
@@ -1494,7 +1494,7 @@ of <code>language-</code> followed by the language name.</p>
</div>
<p data-sourcepos="1719:1-1719:70" dir="auto">[Info strings] for tilde code blocks can contain backticks and tildes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1721:1-1728:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~ aa ``` ~~~</span>
+<pre data-sourcepos="1721:1-1728:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~ aa ``` ~~~</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">~~~</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1504,7 +1504,7 @@ of <code>language-</code> followed by the language name.</p>
</div>
<p data-sourcepos="1731:1-1731:47" dir="auto">Closing code fences cannot have [info strings]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1733:1-1740:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="1733:1-1740:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">``` aaa</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1586,7 +1586,7 @@ the parser's state.</p>
the parser state; as the HTML block was started in by start condition 6, it
will end at any blank line. This can be surprising:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1812:1-1827:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;&lt;tr&gt;&lt;td&gt;</span>
+<pre data-sourcepos="1812:1-1827:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;&lt;tr&gt;&lt;td&gt;</span>
<span id="LC2" class="line" lang="plaintext">&lt;pre&gt;</span>
<span id="LC3" class="line" lang="plaintext">**Hello**,</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -1612,7 +1612,7 @@ of long tags inside a wrapped paragraph as starting HTML blocks.)</p>
<p data-sourcepos="1838:1-1839:10" dir="auto">Some simple examples follow. Here are some basic HTML blocks
of type 6:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1841:1-1860:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
+<pre data-sourcepos="1841:1-1860:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
<span id="LC2" class="line" lang="plaintext"> &lt;tr&gt;</span>
<span id="LC3" class="line" lang="plaintext"> &lt;td&gt;</span>
<span id="LC4" class="line" lang="plaintext"> hi</span>
@@ -1633,7 +1633,7 @@ of type 6:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1863:1-1871:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;div&gt;</span>
+<pre data-sourcepos="1863:1-1871:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext"> *hello*</span>
<span id="LC3" class="line" lang="plaintext"> &lt;foo&gt;&lt;a&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1644,7 +1644,7 @@ of type 6:</p>
</div>
<p data-sourcepos="1874:1-1874:42" dir="auto">A block can also start with a closing tag:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1876:1-1882:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/div&gt;</span>
+<pre data-sourcepos="1876:1-1882:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/div&gt;</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;/div&gt;</span>
@@ -1653,7 +1653,7 @@ of type 6:</p>
</div>
<p data-sourcepos="1885:1-1885:68" dir="auto">Here we have two HTML blocks with a Markdown paragraph between them:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1887:1-1897:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;DIV CLASS="foo"&gt;</span>
+<pre data-sourcepos="1887:1-1897:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;DIV CLASS="foo"&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">*Markdown*</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -1667,7 +1667,7 @@ of type 6:</p>
<p data-sourcepos="1900:1-1901:47" dir="auto">The tag on the first line can be partial, as long
as it is split where there would be whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1903:1-1911:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo"</span>
+<pre data-sourcepos="1903:1-1911:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo"</span>
<span id="LC2" class="line" lang="plaintext"> class="bar"&gt;</span>
<span id="LC3" class="line" lang="plaintext">&lt;/div&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1677,7 +1677,7 @@ as it is split where there would be whitespace:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1914:1-1922:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo" class="bar</span>
+<pre data-sourcepos="1914:1-1922:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo" class="bar</span>
<span id="LC2" class="line" lang="plaintext"> baz"&gt;</span>
<span id="LC3" class="line" lang="plaintext">&lt;/div&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1688,7 +1688,7 @@ as it is split where there would be whitespace:</p>
</div>
<p data-sourcepos="1925:1-1925:31" dir="auto">An open tag need not be closed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1926:1-1935:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
+<pre data-sourcepos="1926:1-1935:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">*bar*</span>
@@ -1701,7 +1701,7 @@ as it is split where there would be whitespace:</p>
<p data-sourcepos="1939:1-1940:17" dir="auto">A partial tag need not even be completed (garbage
in, garbage out):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1942:1-1948:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo"</span>
+<pre data-sourcepos="1942:1-1948:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div id="foo"</span>
<span id="LC2" class="line" lang="plaintext">*hi*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;div id="foo"</span>
@@ -1709,7 +1709,7 @@ in, garbage out):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1951:1-1957:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div class</span>
+<pre data-sourcepos="1951:1-1957:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div class</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;div class</span>
@@ -1719,7 +1719,7 @@ in, garbage out):</p>
<p data-sourcepos="1960:1-1961:35" dir="auto">The initial tag doesn't even need to be a valid
tag, as long as it starts like one:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1963:1-1969:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div *???-&amp;&amp;&amp;-&lt;---</span>
+<pre data-sourcepos="1963:1-1969:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div *???-&amp;&amp;&amp;-&lt;---</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;div *???-&amp;&amp;&amp;-&lt;---</span>
@@ -1729,13 +1729,13 @@ tag, as long as it starts like one:</p>
<p data-sourcepos="1972:1-1973:7" dir="auto">In type 6 blocks, the initial tag need not be on a line by
itself:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1975:1-1979:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;&lt;a href="bar"&gt;*foo*&lt;/a&gt;&lt;/div&gt;</span>
+<pre data-sourcepos="1975:1-1979:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;&lt;a href="bar"&gt;*foo*&lt;/a&gt;&lt;/div&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;div&gt;&lt;a href="bar"&gt;*foo*&lt;/a&gt;&lt;/div&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1982:1-1990:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;&lt;tr&gt;&lt;td&gt;</span>
+<pre data-sourcepos="1982:1-1990:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;&lt;tr&gt;&lt;td&gt;</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1750,7 +1750,7 @@ example, what looks like a Markdown code block
is actually part of the HTML block, which continues until a blank
line or the end of the document is reached:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1999:1-2009:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;&lt;/div&gt;</span>
+<pre data-sourcepos="1999:1-2009:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;&lt;/div&gt;</span>
<span id="LC2" class="line" lang="plaintext">``` c</span>
<span id="LC3" class="line" lang="plaintext">int x = 33;</span>
<span id="LC4" class="line" lang="plaintext">```</span>
@@ -1765,7 +1765,7 @@ line or the end of the document is reached:</p>
list of block-level tags in (6), you must put the tag by
itself on the first line (and it must be complete):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2016:1-2024:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo"&gt;</span>
+<pre data-sourcepos="2016:1-2024:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo"&gt;</span>
<span id="LC2" class="line" lang="plaintext">*bar*</span>
<span id="LC3" class="line" lang="plaintext">&lt;/a&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1776,7 +1776,7 @@ itself on the first line (and it must be complete):</p>
</div>
<p data-sourcepos="2027:1-2027:49" dir="auto">In type 7 blocks, the [tag name] can be anything:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2029:1-2037:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;Warning&gt;</span>
+<pre data-sourcepos="2029:1-2037:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;Warning&gt;</span>
<span id="LC2" class="line" lang="plaintext">*bar*</span>
<span id="LC3" class="line" lang="plaintext">&lt;/Warning&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1786,7 +1786,7 @@ itself on the first line (and it must be complete):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2040:1-2048:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;i class="foo"&gt;</span>
+<pre data-sourcepos="2040:1-2048:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;i class="foo"&gt;</span>
<span id="LC2" class="line" lang="plaintext">*bar*</span>
<span id="LC3" class="line" lang="plaintext">&lt;/i&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1796,7 +1796,7 @@ itself on the first line (and it must be complete):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2051:1-2057:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/ins&gt;</span>
+<pre data-sourcepos="2051:1-2057:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/ins&gt;</span>
<span id="LC2" class="line" lang="plaintext">*bar*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;/ins&gt;</span>
@@ -1809,7 +1809,7 @@ The <code>&lt;del&gt;</code> tag is a nice example. We can surround content wit
<code>&lt;del&gt;</code> tags in three different ways. In this case, we get a raw
HTML block, because the <code>&lt;del&gt;</code> tag is on a line by itself:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2066:1-2074:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;</span>
+<pre data-sourcepos="2066:1-2074:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext">&lt;/del&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1822,7 +1822,7 @@ HTML block, because the <code>&lt;del&gt;</code> tag is on a line by itself:</p>
the <code>&lt;del&gt;</code> tag (because it ends with the following blank
line). So the contents get interpreted as CommonMark:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2081:1-2091:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;</span>
+<pre data-sourcepos="2081:1-2091:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">*foo*</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -1838,7 +1838,7 @@ as [raw HTML] <em>inside</em> the CommonMark paragraph. (Because
the tag is not on a line by itself, we get inline HTML
rather than an [HTML block].)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2099:1-2103:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;*foo*&lt;/del&gt;</span>
+<pre data-sourcepos="2099:1-2103:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;del&gt;*foo*&lt;/del&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;del&gt;&lt;em&gt;foo&lt;/em&gt;&lt;/del&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -1851,7 +1851,7 @@ end at the first line containing a corresponding end tag.
As a result, these blocks can contain blank lines:</p>
<p data-sourcepos="2113:1-2113:19" dir="auto">A pre tag (type 1):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2115:1-2131:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;pre language="haskell"&gt;&lt;code&gt;</span>
+<pre data-sourcepos="2115:1-2131:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;pre language="haskell"&gt;&lt;code&gt;</span>
<span id="LC2" class="line" lang="plaintext">import Text.HTML.TagSoup</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">main :: IO ()</span>
@@ -1870,7 +1870,7 @@ As a result, these blocks can contain blank lines:</p>
</div>
<p data-sourcepos="2134:1-2134:22" dir="auto">A script tag (type 1):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2136:1-2150:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;script type="text/javascript"&gt;</span>
+<pre data-sourcepos="2136:1-2150:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;script type="text/javascript"&gt;</span>
<span id="LC2" class="line" lang="plaintext">// JavaScript example</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">document.getElementById("demo").innerHTML = "Hello JavaScript!";</span>
@@ -1887,7 +1887,7 @@ As a result, these blocks can contain blank lines:</p>
</div>
<p data-sourcepos="2153:1-2153:21" dir="auto">A style tag (type 1):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2155:1-2171:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style</span>
+<pre data-sourcepos="2155:1-2171:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style</span>
<span id="LC2" class="line" lang="plaintext"> type="text/css"&gt;</span>
<span id="LC3" class="line" lang="plaintext">h1 {color:red;}</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -1908,7 +1908,7 @@ As a result, these blocks can contain blank lines:</p>
end of the document (or the enclosing [block quote][block quotes]
or [list item][list items]):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2178:1-2188:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style</span>
+<pre data-sourcepos="2178:1-2188:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style</span>
<span id="LC2" class="line" lang="plaintext"> type="text/css"&gt;</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">foo</span>
@@ -1920,7 +1920,7 @@ or [list item][list items]):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2191:1-2202:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; &lt;div&gt;</span>
+<pre data-sourcepos="2191:1-2202:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; &lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext">&gt; foo</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">bar</span>
@@ -1933,7 +1933,7 @@ or [list item][list items]):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2205:1-2215:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- &lt;div&gt;</span>
+<pre data-sourcepos="2205:1-2215:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- &lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext">- foo</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -1946,7 +1946,7 @@ or [list item][list items]):</p>
</div>
<p data-sourcepos="2218:1-2218:56" dir="auto">The end tag can occur on the same line as the start tag:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2220:1-2226:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style&gt;p{color:red;}&lt;/style&gt;</span>
+<pre data-sourcepos="2220:1-2226:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;style&gt;p{color:red;}&lt;/style&gt;</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;style&gt;p{color:red;}&lt;/style&gt;</span>
@@ -1954,7 +1954,7 @@ or [list item][list items]):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2229:1-2235:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!-- foo --&gt;*bar*</span>
+<pre data-sourcepos="2229:1-2235:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!-- foo --&gt;*bar*</span>
<span id="LC2" class="line" lang="plaintext">*baz*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;!-- foo --&gt;*bar*</span>
@@ -1964,7 +1964,7 @@ or [list item][list items]):</p>
<p data-sourcepos="2238:1-2239:45" dir="auto">Note that anything on the last line after the
end tag will be included in the [HTML block]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2241:1-2249:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;script&gt;</span>
+<pre data-sourcepos="2241:1-2249:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;script&gt;</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">&lt;/script&gt;1. *bar*</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -1975,7 +1975,7 @@ end tag will be included in the [HTML block]:</p>
</div>
<p data-sourcepos="2252:1-2252:19" dir="auto">A comment (type 2):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2254:1-2266:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!-- Foo</span>
+<pre data-sourcepos="2254:1-2266:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!-- Foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext"> baz --&gt;</span>
@@ -1990,7 +1990,7 @@ end tag will be included in the [HTML block]:</p>
</div>
<p data-sourcepos="2270:1-2270:34" dir="auto">A processing instruction (type 3):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2272:1-2286:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;?php</span>
+<pre data-sourcepos="2272:1-2286:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;?php</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> echo '&gt;';</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2007,14 +2007,14 @@ end tag will be included in the [HTML block]:</p>
</div>
<p data-sourcepos="2289:1-2289:23" dir="auto">A declaration (type 4):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2291:1-2295:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!DOCTYPE html&gt;</span>
+<pre data-sourcepos="2291:1-2295:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;!DOCTYPE html&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;!DOCTYPE html&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="2298:1-2298:15" dir="auto">CDATA (type 5):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2300:1-2328:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;![CDATA[</span>
+<pre data-sourcepos="2300:1-2328:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;![CDATA[</span>
<span id="LC2" class="line" lang="plaintext">function matchwo(a,b)</span>
<span id="LC3" class="line" lang="plaintext">{</span>
<span id="LC4" class="line" lang="plaintext"> if (a &lt; b &amp;&amp; a &lt; 0) then {</span>
@@ -2045,7 +2045,7 @@ end tag will be included in the [HTML block]:</p>
</div>
<p data-sourcepos="2331:1-2331:54" dir="auto">The opening tag can be indented 1-3 spaces, but not 4:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2333:1-2341:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;!-- foo --&gt;</span>
+<pre data-sourcepos="2333:1-2341:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;!-- foo --&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> &lt;!-- foo --&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2055,7 +2055,7 @@ end tag will be included in the [HTML block]:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2344:1-2352:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;div&gt;</span>
+<pre data-sourcepos="2344:1-2352:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> &lt;div&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2067,7 +2067,7 @@ end tag will be included in the [HTML block]:</p>
<p data-sourcepos="2355:1-2356:25" dir="auto">An HTML block of types 1--6 can interrupt a paragraph, and need not be
preceded by a blank line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2358:1-2368:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="2358:1-2368:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">&lt;div&gt;</span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">&lt;/div&gt;</span>
@@ -2082,7 +2082,7 @@ preceded by a blank line.</p>
a document, and except for blocks of types 1--5, [above][HTML
block]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2375:1-2385:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
+<pre data-sourcepos="2375:1-2385:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">&lt;/div&gt;</span>
<span id="LC4" class="line" lang="plaintext">*foo*</span>
@@ -2095,7 +2095,7 @@ block]:</p>
</div>
<p data-sourcepos="2388:1-2388:51" dir="auto">HTML blocks of type 7 cannot interrupt a paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2390:1-2398:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="2390:1-2398:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">&lt;a href="bar"&gt;</span>
<span id="LC3" class="line" lang="plaintext">baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2132,7 +2132,7 @@ and flexible way of including Markdown content inside HTML tags:
simply separate the Markdown from the HTML using blank lines:</p>
<p data-sourcepos="2429:1-2429:8" dir="auto">Compare:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2431:1-2441:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
+<pre data-sourcepos="2431:1-2441:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">*Emphasized* text.</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2144,7 +2144,7 @@ simply separate the Markdown from the HTML using blank lines:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2444:1-2452:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
+<pre data-sourcepos="2444:1-2452:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;div&gt;</span>
<span id="LC2" class="line" lang="plaintext">*Emphasized* text.</span>
<span id="LC3" class="line" lang="plaintext">&lt;/div&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2163,7 +2163,7 @@ blocks into Markdown documents with 100% reliability. However,
<em>in most cases</em> this will work fine, because the blank lines in
HTML are usually followed by HTML block tags. For example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2466:1-2486:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
+<pre data-sourcepos="2466:1-2486:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">&lt;tr&gt;</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2188,7 +2188,7 @@ HTML are usually followed by HTML block tags. For example:</p>
<em>and</em> separated by spaces, as then they will be interpreted as
an indented code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2493:1-2514:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
+<pre data-sourcepos="2493:1-2514:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;table&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> &lt;tr&gt;</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2232,7 +2232,7 @@ and reference-style [images] elsewhere in the document. [Link
reference definitions] can come either before or after the links that use
them.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2541:1-2547:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title"</span>
+<pre data-sourcepos="2541:1-2547:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2240,7 +2240,7 @@ them.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2550:1-2558:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [foo]: </span>
+<pre data-sourcepos="2550:1-2558:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [foo]: </span>
<span id="LC2" class="line" lang="plaintext"> /url </span>
<span id="LC3" class="line" lang="plaintext"> 'the title' </span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2250,7 +2250,7 @@ them.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2561:1-2567:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo*bar\]]:my_(url) 'title (with parens)'</span>
+<pre data-sourcepos="2561:1-2567:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo*bar\]]:my_(url) 'title (with parens)'</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[Foo*bar\]]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2258,7 +2258,7 @@ them.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2570:1-2578:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo bar]:</span>
+<pre data-sourcepos="2570:1-2578:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo bar]:</span>
<span id="LC2" class="line" lang="plaintext">&lt;my url&gt;</span>
<span id="LC3" class="line" lang="plaintext">'title'</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2269,7 +2269,7 @@ them.</p>
</div>
<p data-sourcepos="2581:1-2581:41" dir="auto">The title may extend over multiple lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2583:1-2597:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url '</span>
+<pre data-sourcepos="2583:1-2597:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url '</span>
<span id="LC2" class="line" lang="plaintext">title</span>
<span id="LC3" class="line" lang="plaintext">line1</span>
<span id="LC4" class="line" lang="plaintext">line2</span>
@@ -2286,7 +2286,7 @@ them.</p>
</div>
<p data-sourcepos="2600:1-2600:43" dir="auto">However, it may not contain a [blank line]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2602:1-2612:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url 'title</span>
+<pre data-sourcepos="2602:1-2612:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url 'title</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">with blank line'</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2299,7 +2299,7 @@ them.</p>
</div>
<p data-sourcepos="2615:1-2615:25" dir="auto">The title may be omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2617:1-2624:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]:</span>
+<pre data-sourcepos="2617:1-2624:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]:</span>
<span id="LC2" class="line" lang="plaintext">/url</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[foo]</span>
@@ -2309,7 +2309,7 @@ them.</p>
</div>
<p data-sourcepos="2627:1-2627:40" dir="auto">The link destination may not be omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2629:1-2636:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]:</span>
+<pre data-sourcepos="2629:1-2636:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]:</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2320,7 +2320,7 @@ them.</p>
<p data-sourcepos="2638:2-2639:16" dir="auto">However, an empty link destination may be specified using
angle brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2641:1-2647:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: &lt;&gt;</span>
+<pre data-sourcepos="2641:1-2647:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: &lt;&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2330,7 +2330,7 @@ angle brackets:</p>
<p data-sourcepos="2649:1-2650:11" dir="auto">The title must be separated from the link destination by
whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2652:1-2659:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: &lt;bar&gt;(baz)</span>
+<pre data-sourcepos="2652:1-2659:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: &lt;bar&gt;(baz)</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2341,7 +2341,7 @@ whitespace:</p>
<p data-sourcepos="2662:1-2663:24" dir="auto">Both title and destination can contain backslash escapes
and literal backslashes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2665:1-2671:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url\bar\*baz "foo\"bar\baz"</span>
+<pre data-sourcepos="2665:1-2671:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url\bar\*baz "foo\"bar\baz"</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2350,7 +2350,7 @@ and literal backslashes:</p>
</div>
<p data-sourcepos="2674:1-2674:52" dir="auto">A link can come before its corresponding definition:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2676:1-2682:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="2676:1-2682:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2360,7 +2360,7 @@ and literal backslashes:</p>
<p data-sourcepos="2685:1-2686:11" dir="auto">If there are several matching definitions, the first one takes
precedence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2688:1-2695:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="2688:1-2695:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: first</span>
<span id="LC4" class="line" lang="plaintext">[foo]: second</span>
@@ -2371,7 +2371,7 @@ precedence:</p>
<p data-sourcepos="2698:1-2699:33" dir="auto">As noted in the section on [Links], matching of labels is
case-insensitive (see [matches]).</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2701:1-2707:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[FOO]: /url</span>
+<pre data-sourcepos="2701:1-2707:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[FOO]: /url</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[Foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2379,7 +2379,7 @@ case-insensitive (see [matches]).</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2710:1-2716:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[ΑΓΩ]: /φου</span>
+<pre data-sourcepos="2710:1-2716:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[ΑΓΩ]: /φου</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[αγω]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2389,13 +2389,13 @@ case-insensitive (see [matches]).</p>
<p data-sourcepos="2719:1-2720:39" dir="auto">Here is a link reference definition with no corresponding link.
It contributes nothing to the document.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2722:1-2725:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
+<pre data-sourcepos="2722:1-2725:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC2" class="line" lang="plaintext">.</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="2728:1-2728:20" dir="auto">Here is another one:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2730:1-2737:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[</span>
+<pre data-sourcepos="2730:1-2737:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">]: /url</span>
<span id="LC4" class="line" lang="plaintext">bar</span>
@@ -2406,14 +2406,14 @@ It contributes nothing to the document.</p>
<p data-sourcepos="2740:1-2741:44" dir="auto">This is not a link reference definition, because there are
[non-whitespace characters] after the title:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2743:1-2747:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title" ok</span>
+<pre data-sourcepos="2743:1-2747:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url "title" ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo]: /url &amp;quot;title&amp;quot; ok&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="2750:1-2750:57" dir="auto">This is a link reference definition, but it has no title:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2752:1-2757:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
+<pre data-sourcepos="2752:1-2757:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC2" class="line" lang="plaintext">"title" ok</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&amp;quot;title&amp;quot; ok&lt;/p&gt;</span></code></pre>
@@ -2422,7 +2422,7 @@ It contributes nothing to the document.</p>
<p data-sourcepos="2760:1-2761:12" dir="auto">This is not a link reference definition, because it is indented
four spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2763:1-2771:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [foo]: /url "title"</span>
+<pre data-sourcepos="2763:1-2771:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [foo]: /url "title"</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2434,7 +2434,7 @@ four spaces:</p>
<p data-sourcepos="2774:1-2775:13" dir="auto">This is not a link reference definition, because it occurs inside
a code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2777:1-2787:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
+<pre data-sourcepos="2777:1-2787:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```</span>
<span id="LC2" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -2447,7 +2447,7 @@ a code block:</p>
</div>
<p data-sourcepos="2790:1-2790:59" dir="auto">A [link reference definition] cannot interrupt a paragraph.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2792:1-2801:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="2792:1-2801:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">[bar]: /baz</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[bar]</span>
@@ -2460,7 +2460,7 @@ a code block:</p>
<p data-sourcepos="2804:1-2805:65" dir="auto">However, it can directly follow other block elements, such as headings
and thematic breaks, and it need not be followed by a blank line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2807:1-2816:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># [Foo]</span>
+<pre data-sourcepos="2807:1-2816:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"># [Foo]</span>
<span id="LC2" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC3" class="line" lang="plaintext">&gt; bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2471,7 +2471,7 @@ and thematic breaks, and it need not be followed by a blank line.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2818:1-2826:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
+<pre data-sourcepos="2818:1-2826:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">===</span>
<span id="LC4" class="line" lang="plaintext">[foo]</span>
@@ -2481,7 +2481,7 @@ and thematic breaks, and it need not be followed by a blank line.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2828:1-2835:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
+<pre data-sourcepos="2828:1-2835:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC2" class="line" lang="plaintext">===</span>
<span id="LC3" class="line" lang="plaintext">[foo]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2492,7 +2492,7 @@ and thematic breaks, and it need not be followed by a blank line.</p>
<p data-sourcepos="2838:1-2839:61" dir="auto">Several [link reference definitions]
can occur one after another, without intervening blank lines.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2841:1-2854:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /foo-url "foo"</span>
+<pre data-sourcepos="2841:1-2854:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /foo-url "foo"</span>
<span id="LC2" class="line" lang="plaintext">[bar]: /bar-url</span>
<span id="LC3" class="line" lang="plaintext"> "bar"</span>
<span id="LC4" class="line" lang="plaintext">[baz]: /baz-url</span>
@@ -2511,7 +2511,7 @@ inside block containers, like lists and block quotations. They
affect the entire document, not just the container in which they
are defined:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2862:1-2870:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="2862:1-2870:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">&gt; [foo]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2526,7 +2526,7 @@ used in the document. Thus, for example, the following
document contains just a link reference definition, and
no visible content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2879:1-2882:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
+<pre data-sourcepos="2879:1-2882:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC2" class="line" lang="plaintext">.</span></code></pre>
<copy-code></copy-code>
</div>
@@ -2540,7 +2540,7 @@ is formed by concatenating the lines and removing initial and final
[whitespace].</p>
<p data-sourcepos="2894:1-2894:37" dir="auto">A simple example with two paragraphs:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2896:1-2903:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+<pre data-sourcepos="2896:1-2903:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">bbb</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2550,7 +2550,7 @@ is formed by concatenating the lines and removing initial and final
</div>
<p data-sourcepos="2906:1-2906:58" dir="auto">Paragraphs can contain multiple lines, but no blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2908:1-2919:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+<pre data-sourcepos="2908:1-2919:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext">bbb</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">ccc</span>
@@ -2564,7 +2564,7 @@ is formed by concatenating the lines and removing initial and final
</div>
<p data-sourcepos="2922:1-2922:54" dir="auto">Multiple blank lines between paragraph have no effect:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2924:1-2932:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+<pre data-sourcepos="2924:1-2932:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">bbb</span>
@@ -2575,7 +2575,7 @@ is formed by concatenating the lines and removing initial and final
</div>
<p data-sourcepos="2935:1-2935:27" dir="auto">Leading spaces are skipped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2937:1-2943:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
+<pre data-sourcepos="2937:1-2943:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
<span id="LC2" class="line" lang="plaintext"> bbb</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;aaa</span>
@@ -2585,7 +2585,7 @@ is formed by concatenating the lines and removing initial and final
<p data-sourcepos="2946:1-2947:40" dir="auto">Lines after the first may be indented any amount, since indented
code blocks cannot interrupt paragraphs.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2949:1-2957:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
+<pre data-sourcepos="2949:1-2957:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa</span>
<span id="LC2" class="line" lang="plaintext"> bbb</span>
<span id="LC3" class="line" lang="plaintext"> ccc</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2597,7 +2597,7 @@ code blocks cannot interrupt paragraphs.</p>
<p data-sourcepos="2960:1-2961:44" dir="auto">However, the first line may be indented at most three spaces,
or an indented code block will be triggered:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2963:1-2969:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
+<pre data-sourcepos="2963:1-2969:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
<span id="LC2" class="line" lang="plaintext">bbb</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;aaa</span>
@@ -2605,7 +2605,7 @@ or an indented code block will be triggered:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2972:1-2979:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
+<pre data-sourcepos="2972:1-2979:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> aaa</span>
<span id="LC2" class="line" lang="plaintext">bbb</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;aaa</span>
@@ -2617,7 +2617,7 @@ or an indented code block will be triggered:</p>
that ends with two or more spaces will not end with a [hard line
break]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="2986:1-2992:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa </span>
+<pre data-sourcepos="2986:1-2992:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aaa </span>
<span id="LC2" class="line" lang="plaintext">bbb </span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;aaa&lt;br /&gt;</span>
@@ -2631,7 +2631,7 @@ except for the role they play in determining whether a [list]
is [tight] or [loose].</p>
<p data-sourcepos="3001:1-3001:70" dir="auto">Blank lines at the beginning and end of the document are also ignored.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3003:1-3015:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> </span>
+<pre data-sourcepos="3003:1-3015:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> </span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">aaa</span>
<span id="LC4" class="line" lang="plaintext"> </span>
@@ -2661,7 +2661,7 @@ be inserted in a table.</p>
and optionally, a leading or trailing colon (<code>:</code>), or both, to indicate left,
right, or center alignment respectively.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3038:1-3057:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| foo | bar |</span>
+<pre data-sourcepos="3038:1-3057:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| foo | bar |</span>
<span id="LC2" class="line" lang="plaintext">| --- | --- |</span>
<span id="LC3" class="line" lang="plaintext">| baz | bim |</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2684,7 +2684,7 @@ right, or center alignment respectively.</p>
<p data-sourcepos="3059:1-3060:74">Cells in one column don't need to match length, though it's easier to read if
they are. Likewise, use of leading and trailing pipes may be inconsistent:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3062:1-3081:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | defghi |</span>
+<pre data-sourcepos="3062:1-3081:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | defghi |</span>
<span id="LC2" class="line" lang="plaintext">:-: | -----------:</span>
<span id="LC3" class="line" lang="plaintext">bar | baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2707,7 +2707,7 @@ they are. Likewise, use of leading and trailing pipes may be inconsistent:</p>
<p data-sourcepos="3083:1-3084:13">Include a pipe in a cell's content by escaping it, including inside other
inline spans:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3086:1-3107:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| f\|oo |</span>
+<pre data-sourcepos="3086:1-3107:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| f\|oo |</span>
<span id="LC2" class="line" lang="plaintext">| ------ |</span>
<span id="LC3" class="line" lang="plaintext">| b `\|` az |</span>
<span id="LC4" class="line" lang="plaintext">| b **\|** im |</span>
@@ -2732,7 +2732,7 @@ inline spans:</p>
<p data-sourcepos="3109:1-3110:22">The table is broken at the first empty line, or beginning of another
block-level structure:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3112:1-3135:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
+<pre data-sourcepos="3112:1-3135:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
<span id="LC2" class="line" lang="plaintext">| --- | --- |</span>
<span id="LC3" class="line" lang="plaintext">| bar | baz |</span>
<span id="LC4" class="line" lang="plaintext">&gt; bar</span>
@@ -2757,7 +2757,7 @@ block-level structure:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3137:1-3164:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
+<pre data-sourcepos="3137:1-3164:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
<span id="LC2" class="line" lang="plaintext">| --- | --- |</span>
<span id="LC3" class="line" lang="plaintext">| bar | baz |</span>
<span id="LC4" class="line" lang="plaintext">bar</span>
@@ -2788,7 +2788,7 @@ block-level structure:</p>
<p data-sourcepos="3166:1-3167:31">The header row must match the [delimiter row] in the number of cells. If not,
a table will not be recognized:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3169:1-3177:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
+<pre data-sourcepos="3169:1-3177:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
<span id="LC2" class="line" lang="plaintext">| --- |</span>
<span id="LC3" class="line" lang="plaintext">| bar |</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2801,7 +2801,7 @@ a table will not be recognized:</p>
are a number of cells fewer than the number of cells in the header row, empty
cells are inserted. If there are greater, the excess is ignored:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3183:1-3207:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
+<pre data-sourcepos="3183:1-3207:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
<span id="LC2" class="line" lang="plaintext">| --- | --- |</span>
<span id="LC3" class="line" lang="plaintext">| bar |</span>
<span id="LC4" class="line" lang="plaintext">| bar | baz | boo |</span>
@@ -2828,7 +2828,7 @@ cells are inserted. If there are greater, the excess is ignored:</p>
</div>
<p data-sourcepos="3209:1-3209:75">If there are no rows in the body, no <code>&lt;tbody&gt;</code> is generated in HTML output:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3211:1-3223:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
+<pre data-sourcepos="3211:1-3223:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">| abc | def |</span>
<span id="LC2" class="line" lang="plaintext">| --- | --- |</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;table&gt;</span>
@@ -2892,7 +2892,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<p data-sourcepos="3273:1-3273:54" dir="auto">Nothing else counts as a <a href="#block-quotes">block quote</a>.</p>
<p data-sourcepos="3275:1-3275:25" dir="auto">Here is a simple example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3277:1-3287:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
+<pre data-sourcepos="3277:1-3287:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">&gt; baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2905,7 +2905,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
</div>
<p data-sourcepos="3290:1-3290:51" dir="auto">The spaces after the <code>&gt;</code> characters can be omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3292:1-3302:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;# Foo</span>
+<pre data-sourcepos="3292:1-3302:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;# Foo</span>
<span id="LC2" class="line" lang="plaintext">&gt;bar</span>
<span id="LC3" class="line" lang="plaintext">&gt; baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2918,7 +2918,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
</div>
<p data-sourcepos="3305:1-3305:46" dir="auto">The <code>&gt;</code> characters can be indented 1-3 spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3307:1-3317:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; # Foo</span>
+<pre data-sourcepos="3307:1-3317:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; # Foo</span>
<span id="LC2" class="line" lang="plaintext"> &gt; bar</span>
<span id="LC3" class="line" lang="plaintext"> &gt; baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2931,7 +2931,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
</div>
<p data-sourcepos="3320:1-3320:34" dir="auto">Four spaces gives us a code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3322:1-3331:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; # Foo</span>
+<pre data-sourcepos="3322:1-3331:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; # Foo</span>
<span id="LC2" class="line" lang="plaintext"> &gt; bar</span>
<span id="LC3" class="line" lang="plaintext"> &gt; baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2944,7 +2944,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<p data-sourcepos="3334:1-3335:30" dir="auto">The Laziness clause allows us to omit the <code>&gt;</code> before
[paragraph continuation text]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3337:1-3347:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
+<pre data-sourcepos="3337:1-3347:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; # Foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2958,7 +2958,7 @@ quotes] in a row unless there is a [blank line] between them.</p>
<p data-sourcepos="3350:1-3351:19" dir="auto">A block quote can contain some lazy and some non-lazy
continuation lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3353:1-3363:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
+<pre data-sourcepos="3353:1-3363:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">&gt; foo</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -2973,13 +2973,13 @@ continuation lines:</p>
paragraphs had they been prepended with [block quote markers].
For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3370:1-3373:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; foo</span></span>
+<pre data-sourcepos="3370:1-3373:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; foo</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; ---</span></span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3375:1-3375:29" dir="auto">without changing the meaning:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3377:1-3385:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3377:1-3385:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">---</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -2990,13 +2990,13 @@ For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
</div>
<p data-sourcepos="3388:1-3388:52" dir="auto">Similarly, if we omit the <code>&gt; </code> in the second line of</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3390:1-3393:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; - foo</span></span>
+<pre data-sourcepos="3390:1-3393:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; - foo</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; - bar</span></span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3395:1-3395:47" dir="auto">then the block quote ends after the first line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3397:1-3409:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; - foo</span>
+<pre data-sourcepos="3397:1-3409:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; - foo</span>
<span id="LC2" class="line" lang="plaintext">- bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3012,7 +3012,7 @@ For example, the <code>&gt; </code> cannot be omitted in the second line of</p>
<p data-sourcepos="3412:1-3413:53" dir="auto">For the same reason, we can't omit the <code>&gt; </code> in front of
subsequent lines of an indented or fenced code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3415:1-3425:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3415:1-3425:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext"> bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3024,7 +3024,7 @@ subsequent lines of an indented or fenced code block:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3428:1-3438:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; ```</span>
+<pre data-sourcepos="3428:1-3438:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; ```</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3038,7 +3038,7 @@ subsequent lines of an indented or fenced code block:</p>
<p data-sourcepos="3441:1-3442:19" dir="auto">Note that in the following case, we have a [lazy
continuation line]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3444:1-3452:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3444:1-3452:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3049,7 +3049,7 @@ continuation line]:</p>
</div>
<p data-sourcepos="3455:1-3455:24" dir="auto">To see why, note that in</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3457:1-3460:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; foo</span></span>
+<pre data-sourcepos="3457:1-3460:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; foo</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt; - bar</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -3058,14 +3058,14 @@ be an indented code block because indented code blocks cannot
interrupt paragraphs, so it is [paragraph continuation text].</p>
<p data-sourcepos="3466:1-3466:27" dir="auto">A block quote can be empty:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3468:1-3473:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
+<pre data-sourcepos="3468:1-3473:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;blockquote&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;/blockquote&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3476:1-3483:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
+<pre data-sourcepos="3476:1-3483:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
<span id="LC2" class="line" lang="plaintext">&gt; </span>
<span id="LC3" class="line" lang="plaintext">&gt; </span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3075,7 +3075,7 @@ interrupt paragraphs, so it is [paragraph continuation text].</p>
</div>
<p data-sourcepos="3486:1-3486:52" dir="auto">A block quote can have initial or final blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3488:1-3496:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
+<pre data-sourcepos="3488:1-3496:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;</span>
<span id="LC2" class="line" lang="plaintext">&gt; foo</span>
<span id="LC3" class="line" lang="plaintext">&gt; </span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3086,7 +3086,7 @@ interrupt paragraphs, so it is [paragraph continuation text].</p>
</div>
<p data-sourcepos="3499:1-3499:43" dir="auto">A blank line always separates block quotes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3501:1-3512:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3501:1-3512:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">&gt; bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3105,7 +3105,7 @@ whether two block quotes or one are wanted.)</p>
<p data-sourcepos="3520:1-3521:28" dir="auto">Consecutiveness means that if we put these block quotes together,
we get a single block quote:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3523:1-3531:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3523:1-3531:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3116,7 +3116,7 @@ we get a single block quote:</p>
</div>
<p data-sourcepos="3534:1-3534:46" dir="auto">To get a block quote with two paragraphs, use:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3536:1-3545:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
+<pre data-sourcepos="3536:1-3545:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">&gt;</span>
<span id="LC3" class="line" lang="plaintext">&gt; bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3128,7 +3128,7 @@ we get a single block quote:</p>
</div>
<p data-sourcepos="3548:1-3548:38" dir="auto">Block quotes can interrupt paragraphs:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3550:1-3558:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="3550:1-3558:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;/p&gt;</span>
@@ -3140,7 +3140,7 @@ we get a single block quote:</p>
<p data-sourcepos="3561:1-3562:7" dir="auto">In general, blank lines are not needed before or after block
quotes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3564:1-3576:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; aaa</span>
+<pre data-sourcepos="3564:1-3576:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; aaa</span>
<span id="LC2" class="line" lang="plaintext">***</span>
<span id="LC3" class="line" lang="plaintext">&gt; bbb</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3156,7 +3156,7 @@ quotes:</p>
<p data-sourcepos="3579:1-3580:40" dir="auto">However, because of laziness, a blank line is needed between
a block quote and a following paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3582:1-3590:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
+<pre data-sourcepos="3582:1-3590:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3166,7 +3166,7 @@ a block quote and a following paragraph:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3593:1-3602:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
+<pre data-sourcepos="3593:1-3602:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3177,7 +3177,7 @@ a block quote and a following paragraph:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3605:1-3614:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
+<pre data-sourcepos="3605:1-3614:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; bar</span>
<span id="LC2" class="line" lang="plaintext">&gt;</span>
<span id="LC3" class="line" lang="plaintext">baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3191,7 +3191,7 @@ a block quote and a following paragraph:</p>
of initial <code>&gt;</code>s may be omitted on a continuation line of a
nested block quote:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3621:1-3633:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; &gt; &gt; foo</span>
+<pre data-sourcepos="3621:1-3633:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; &gt; &gt; foo</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3205,7 +3205,7 @@ nested block quote:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3636:1-3650:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;&gt;&gt; foo</span>
+<pre data-sourcepos="3636:1-3650:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;&gt;&gt; foo</span>
<span id="LC2" class="line" lang="plaintext">&gt; bar</span>
<span id="LC3" class="line" lang="plaintext">&gt;&gt;baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3225,7 +3225,7 @@ remember that the [block quote marker] includes
both the <code>&gt;</code> and a following space. So <em>five spaces</em> are needed after
the <code>&gt;</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3658:1-3670:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; code</span>
+<pre data-sourcepos="3658:1-3670:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; code</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">&gt; not code</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3275,7 +3275,7 @@ that line is not a list item.</li>
</ol>
<p data-sourcepos="3710:1-3710:34" dir="auto">For example, let <em>Ls</em> be the lines</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3712:1-3727:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">A paragraph</span>
+<pre data-sourcepos="3712:1-3727:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">A paragraph</span>
<span id="LC2" class="line" lang="plaintext">with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3295,7 +3295,7 @@ that line is not a list item.</li>
that the following is an ordered list item with start number 1,
and the same contents as <em>Ls</em>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3734:1-3753:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. A paragraph</span>
+<pre data-sourcepos="3734:1-3753:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3325,7 +3325,7 @@ item.</p>
<p data-sourcepos="3764:1-3765:24" dir="auto">Here are some examples showing how far content must be indented to be
put under the list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3767:1-3776:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- one</span>
+<pre data-sourcepos="3767:1-3776:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- one</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3336,7 +3336,7 @@ put under the list item:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3779:1-3790:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- one</span>
+<pre data-sourcepos="3779:1-3790:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- one</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3349,7 +3349,7 @@ put under the list item:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3793:1-3803:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - one</span>
+<pre data-sourcepos="3793:1-3803:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - one</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3361,7 +3361,7 @@ put under the list item:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3806:1-3817:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - one</span>
+<pre data-sourcepos="3806:1-3817:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> - one</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3381,7 +3381,7 @@ is needed. Which column this indentation reaches will depend on
how the list item is embedded in other constructions, as shown by
this example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3828:1-3843:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; &gt; 1. one</span>
+<pre data-sourcepos="3828:1-3843:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> &gt; &gt; 1. one</span>
<span id="LC2" class="line" lang="plaintext">&gt;&gt;</span>
<span id="LC3" class="line" lang="plaintext">&gt;&gt; two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3405,7 +3405,7 @@ occurs far to the right of the initial text of the list item, <code>one</code>,
it is not considered part of the list item, because it is not indented
far enough past the blockquote marker:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3855:1-3868:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;&gt;- one</span>
+<pre data-sourcepos="3855:1-3868:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt;&gt;- one</span>
<span id="LC2" class="line" lang="plaintext">&gt;&gt;</span>
<span id="LC3" class="line" lang="plaintext"> &gt; &gt; two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3422,7 +3422,7 @@ far enough past the blockquote marker:</p>
<p data-sourcepos="3871:1-3872:51" dir="auto">Note that at least one space is needed between the list marker and
any following content, so these are not list items:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3874:1-3881:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-one</span>
+<pre data-sourcepos="3874:1-3881:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-one</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">2.two</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3433,7 +3433,7 @@ any following content, so these are not list items:</p>
<p data-sourcepos="3884:1-3885:15" dir="auto">A list item may contain blocks that are separated by more than
one blank line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3887:1-3899:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="3887:1-3899:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> bar</span>
@@ -3448,7 +3448,7 @@ one blank line.</p>
</div>
<p data-sourcepos="3902:1-3902:42" dir="auto">A list item may contain any kind of block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3904:1-3926:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
+<pre data-sourcepos="3904:1-3926:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext"> bar</span>
@@ -3474,7 +3474,7 @@ one blank line.</p>
<p data-sourcepos="3929:1-3930:43" dir="auto">A list item that contains an indented code block will preserve
empty lines within the code block verbatim.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3932:1-3950:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
+<pre data-sourcepos="3932:1-3950:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- Foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -3495,7 +3495,7 @@ empty lines within the code block verbatim.</p>
</div>
<p data-sourcepos="3952:1-3952:65" dir="auto">Note that ordered list start numbers must be nine digits or less:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3954:1-3960:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">123456789. ok</span>
+<pre data-sourcepos="3954:1-3960:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">123456789. ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ol start="123456789"&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;ok&lt;/li&gt;</span>
@@ -3503,14 +3503,14 @@ empty lines within the code block verbatim.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3963:1-3967:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1234567890. not ok</span>
+<pre data-sourcepos="3963:1-3967:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1234567890. not ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;1234567890. not ok&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="3970:1-3970:33" dir="auto">A start number may begin with 0s:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3972:1-3978:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">0. ok</span>
+<pre data-sourcepos="3972:1-3978:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">0. ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ol start="0"&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;ok&lt;/li&gt;</span>
@@ -3518,7 +3518,7 @@ empty lines within the code block verbatim.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3981:1-3987:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">003. ok</span>
+<pre data-sourcepos="3981:1-3987:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">003. ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ol start="3"&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;ok&lt;/li&gt;</span>
@@ -3527,7 +3527,7 @@ empty lines within the code block verbatim.</p>
</div>
<p data-sourcepos="3990:1-3990:35" dir="auto">A start number may not be negative:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="3992:1-3996:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-1. not ok</span>
+<pre data-sourcepos="3992:1-3996:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-1. not ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;-1. not ok&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -3549,7 +3549,7 @@ start number, based on the ordered list marker.</li>
the edge of the region where text will be included in the list item.
In the following case that is 6 spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4015:1-4027:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4015:1-4027:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3564,7 +3564,7 @@ In the following case that is 6 spaces:</p>
</div>
<p data-sourcepos="4030:1-4030:33" dir="auto">And in this case it is 11 spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4032:1-4044:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 10. foo</span>
+<pre data-sourcepos="4032:1-4044:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 10. foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3581,7 +3581,7 @@ In the following case that is 6 spaces:</p>
then by rule #2, the contents must be indented <em>one</em> space after the
list marker:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4051:1-4063:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> indented code</span>
+<pre data-sourcepos="4051:1-4063:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> indented code</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">paragraph</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -3595,7 +3595,7 @@ list marker:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4066:1-4082:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. indented code</span>
+<pre data-sourcepos="4066:1-4082:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. indented code</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> paragraph</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -3615,7 +3615,7 @@ list marker:</p>
<p data-sourcepos="4085:1-4086:22" dir="auto">Note that an additional space indent is interpreted as space
inside the code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4088:1-4104:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. indented code</span>
+<pre data-sourcepos="4088:1-4104:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. indented code</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> paragraph</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -3640,7 +3640,7 @@ block. In a case like the following, where the first block begins with
a three-space indent, the rules do not allow us to form a list item by
indenting the whole thing and prepending a list marker:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4115:1-4122:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
+<pre data-sourcepos="4115:1-4122:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3649,7 +3649,7 @@ indenting the whole thing and prepending a list marker:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4125:1-4134:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4125:1-4134:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3664,7 +3664,7 @@ with 1-3 spaces indent, the indentation can always be removed without
a change in interpretation, allowing rule #1 to be applied. So, in
the above case:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4142:1-4153:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4142:1-4153:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3692,7 +3692,7 @@ start number, based on the ordered list marker.</li>
</ol>
<p data-sourcepos="4168:1-4168:72" dir="auto">Here are some list items that start with a blank line but are not empty:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4170:1-4191:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-</span>
+<pre data-sourcepos="4170:1-4191:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-</span>
<span id="LC2" class="line" lang="plaintext"> foo</span>
<span id="LC3" class="line" lang="plaintext">-</span>
<span id="LC4" class="line" lang="plaintext"> ```</span>
@@ -3717,7 +3717,7 @@ start number, based on the ordered list marker.</li>
<p data-sourcepos="4193:1-4194:66" dir="auto">When the list item starts with a blank line, the number of spaces
following the list marker doesn't change the required indentation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4196:1-4203:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- </span>
+<pre data-sourcepos="4196:1-4203:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- </span>
<span id="LC2" class="line" lang="plaintext"> foo</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -3729,7 +3729,7 @@ following the list marker doesn't change the required indentation:</p>
In the following example, <code>foo</code> is not part of the list
item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4210:1-4219:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-</span>
+<pre data-sourcepos="4210:1-4219:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">-</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> foo</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3741,7 +3741,7 @@ item:</p>
</div>
<p data-sourcepos="4222:1-4222:34" dir="auto">Here is an empty bullet list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4224:1-4234:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4224:1-4234:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">-</span>
<span id="LC3" class="line" lang="plaintext">- bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3754,7 +3754,7 @@ item:</p>
</div>
<p data-sourcepos="4237:1-4237:72" dir="auto">It does not matter whether there are spaces following the [list marker]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4239:1-4249:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4239:1-4249:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">- </span>
<span id="LC3" class="line" lang="plaintext">- bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3767,7 +3767,7 @@ item:</p>
</div>
<p data-sourcepos="4252:1-4252:35" dir="auto">Here is an empty ordered list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4254:1-4264:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
+<pre data-sourcepos="4254:1-4264:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
<span id="LC2" class="line" lang="plaintext">2.</span>
<span id="LC3" class="line" lang="plaintext">3. bar</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -3780,7 +3780,7 @@ item:</p>
</div>
<p data-sourcepos="4267:1-4267:48" dir="auto">A list may start or end with an empty list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4269:1-4275:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*</span>
+<pre data-sourcepos="4269:1-4275:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;&lt;/li&gt;</span>
@@ -3789,7 +3789,7 @@ item:</p>
</div>
<p data-sourcepos="4277:1-4277:57" dir="auto">However, an empty list item cannot interrupt a paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4279:1-4290:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="4279:1-4290:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">*</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">foo</span>
@@ -3811,7 +3811,7 @@ empty, then it need not be indented.</li>
</ol>
<p data-sourcepos="4299:1-4299:19" dir="auto">Indented one space:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4301:1-4320:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4301:1-4320:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3833,7 +3833,7 @@ empty, then it need not be indented.</li>
</div>
<p data-sourcepos="4323:1-4323:20" dir="auto">Indented two spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4325:1-4344:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4325:1-4344:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3855,7 +3855,7 @@ empty, then it need not be indented.</li>
</div>
<p data-sourcepos="4347:1-4347:22" dir="auto">Indented three spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4349:1-4368:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4349:1-4368:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3877,7 +3877,7 @@ empty, then it need not be indented.</li>
</div>
<p data-sourcepos="4371:1-4371:38" dir="auto">Four spaces indent gives a code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4373:1-4388:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4373:1-4388:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3906,7 +3906,7 @@ lines are called
</ol>
<p data-sourcepos="4401:1-4401:50" dir="auto">Here is an example with [lazy continuation lines]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4403:1-4422:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4403:1-4422:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext">with two lines.</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> indented code</span>
@@ -3928,7 +3928,7 @@ lines are called
</div>
<p data-sourcepos="4425:1-4425:37" dir="auto">Indentation can be partially deleted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4427:1-4435:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
+<pre data-sourcepos="4427:1-4435:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> 1. A paragraph</span>
<span id="LC2" class="line" lang="plaintext"> with two lines.</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ol&gt;</span>
@@ -3939,7 +3939,7 @@ lines are called
</div>
<p data-sourcepos="4438:1-4438:63" dir="auto">These examples show how laziness can work in nested structures:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4440:1-4454:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; 1. &gt; Blockquote</span>
+<pre data-sourcepos="4440:1-4454:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; 1. &gt; Blockquote</span>
<span id="LC2" class="line" lang="plaintext">continued here.</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3955,7 +3955,7 @@ lines are called
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4457:1-4471:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; 1. &gt; Blockquote</span>
+<pre data-sourcepos="4457:1-4471:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&gt; 1. &gt; Blockquote</span>
<span id="LC2" class="line" lang="plaintext">&gt; continued here.</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;blockquote&gt;</span>
@@ -3981,7 +3981,7 @@ of spaces a paragraph would need to be in order to be included
in the list item.</p>
<p data-sourcepos="4483:1-4483:43" dir="auto">So, in this case we need two spaces indent:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4485:1-4506:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4485:1-4506:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext"> - baz</span>
<span id="LC4" class="line" lang="plaintext"> - boo</span>
@@ -4005,7 +4005,7 @@ in the list item.</p>
</div>
<p data-sourcepos="4509:1-4509:18" dir="auto">One is not enough:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4511:1-4523:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4511:1-4523:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext"> - baz</span>
<span id="LC4" class="line" lang="plaintext"> - boo</span>
@@ -4020,7 +4020,7 @@ in the list item.</p>
</div>
<p data-sourcepos="4526:1-4526:52" dir="auto">Here we need four, because the list marker is wider:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4528:1-4539:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">10) foo</span>
+<pre data-sourcepos="4528:1-4539:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">10) foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ol start="10"&gt;</span>
@@ -4034,7 +4034,7 @@ in the list item.</p>
</div>
<p data-sourcepos="4542:1-4542:20" dir="auto">Three is not enough:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4544:1-4554:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">10) foo</span>
+<pre data-sourcepos="4544:1-4554:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">10) foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ol start="10"&gt;</span>
@@ -4047,7 +4047,7 @@ in the list item.</p>
</div>
<p data-sourcepos="4557:1-4557:45" dir="auto">A list may be the first block in a list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4559:1-4569:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - foo</span>
+<pre data-sourcepos="4559:1-4569:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- - foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -4059,7 +4059,7 @@ in the list item.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4572:1-4586:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. - 2. foo</span>
+<pre data-sourcepos="4572:1-4586:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. - 2. foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ol&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -4076,7 +4076,7 @@ in the list item.</p>
</div>
<p data-sourcepos="4589:1-4589:34" dir="auto">A list item can contain a heading:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4591:1-4605:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- # Foo</span>
+<pre data-sourcepos="4591:1-4605:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- # Foo</span>
<span id="LC2" class="line" lang="plaintext">- Bar</span>
<span id="LC3" class="line" lang="plaintext"> ---</span>
<span id="LC4" class="line" lang="plaintext"> baz</span>
@@ -4161,7 +4161,7 @@ unindented if needed.)</p>
indentation from the margin. The four-space rule is clear but
unnatural. It is quite unintuitive that</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4675:1-4681:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p">-</span> foo</span>
+<pre data-sourcepos="4675:1-4681:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p">-</span> foo</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"> bar</span>
<span id="LC4" class="line" lang="markdown"></span>
@@ -4170,7 +4170,7 @@ unnatural. It is quite unintuitive that</p>
</div>
<p data-sourcepos="4683:1-4683:60" dir="auto">should be parsed as two lists with an intervening paragraph,</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4685:1-4693:3" class="code highlight js-syntax-highlight language-html" lang="html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
+<pre data-sourcepos="4685:1-4693:3" lang="html" class="code highlight js-syntax-highlight language-html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
<span id="LC2" class="line" lang="html"><span class="nt">&lt;li&gt;</span>foo<span class="nt">&lt;/li&gt;</span></span>
<span id="LC3" class="line" lang="html"><span class="nt">&lt;/ul&gt;</span></span>
<span id="LC4" class="line" lang="html"><span class="nt">&lt;p&gt;</span>bar<span class="nt">&lt;/p&gt;</span></span>
@@ -4181,7 +4181,7 @@ unnatural. It is quite unintuitive that</p>
</div>
<p data-sourcepos="4695:1-4695:58" dir="auto">as the four-space rule demands, rather than a single list,</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4697:1-4707:3" class="code highlight js-syntax-highlight language-html" lang="html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
+<pre data-sourcepos="4697:1-4707:3" lang="html" class="code highlight js-syntax-highlight language-html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
<span id="LC2" class="line" lang="html"><span class="nt">&lt;li&gt;</span></span>
<span id="LC3" class="line" lang="html"><span class="nt">&lt;p&gt;</span>foo<span class="nt">&lt;/p&gt;</span></span>
<span id="LC4" class="line" lang="html"><span class="nt">&lt;p&gt;</span>bar<span class="nt">&lt;/p&gt;</span></span>
@@ -4200,14 +4200,14 @@ initial list marker, allows text that is indented <em>less than</em> the
original list marker to be included in the list item. For example,
<code>Markdown.pl</code> parses</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4718:1-4722:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> -</span> one</span>
+<pre data-sourcepos="4718:1-4722:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> -</span> one</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"> two</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="4724:1-4724:59" dir="auto">as a single list item, with <code>two</code> a continuation paragraph:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4726:1-4733:3" class="code highlight js-syntax-highlight language-html" lang="html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
+<pre data-sourcepos="4726:1-4733:3" lang="html" class="code highlight js-syntax-highlight language-html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
<span id="LC2" class="line" lang="html"><span class="nt">&lt;li&gt;</span></span>
<span id="LC3" class="line" lang="html"><span class="nt">&lt;p&gt;</span>one<span class="nt">&lt;/p&gt;</span></span>
<span id="LC4" class="line" lang="html"><span class="nt">&lt;p&gt;</span>two<span class="nt">&lt;/p&gt;</span></span>
@@ -4217,14 +4217,14 @@ original list marker to be included in the list item. For example,
</div>
<p data-sourcepos="4735:1-4735:13" dir="auto">and similarly</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4737:1-4741:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; - one</span></span>
+<pre data-sourcepos="4737:1-4741:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gt">&gt; - one</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gt">&gt;</span></span>
<span id="LC3" class="line" lang="markdown"><span class="gt">&gt; two</span></span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="4743:1-4743:2" dir="auto">as</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4745:1-4754:3" class="code highlight js-syntax-highlight language-html" lang="html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;blockquote&gt;</span></span>
+<pre data-sourcepos="4745:1-4754:3" lang="html" class="code highlight js-syntax-highlight language-html" v-pre="true"><code><span id="LC1" class="line" lang="html"><span class="nt">&lt;blockquote&gt;</span></span>
<span id="LC2" class="line" lang="html"><span class="nt">&lt;ul&gt;</span></span>
<span id="LC3" class="line" lang="html"><span class="nt">&lt;li&gt;</span></span>
<span id="LC4" class="line" lang="html"><span class="nt">&lt;p&gt;</span>one<span class="nt">&lt;/p&gt;</span></span>
@@ -4242,7 +4242,7 @@ discussed. Unlike the spec presented above, it would count the following
as a list item with a subparagraph, even though the paragraph <code>bar</code>
is not indented as far as the first paragraph <code>foo</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4765:1-4769:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> 10.</span> foo</span>
+<pre data-sourcepos="4765:1-4769:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> 10.</span> foo</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"> bar </span></code></pre>
<copy-code></copy-code>
@@ -4252,7 +4252,7 @@ which may count in favor of the proposal. However, on this proposal indented
code would have to be indented six spaces after the list marker. And this
would break a lot of existing Markdown, which has the pattern:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4776:1-4780:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p">1.</span> foo</span>
+<pre data-sourcepos="4776:1-4780:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p">1.</span> foo</span>
<span id="LC2" class="line" lang="markdown"></span>
<span id="LC3" class="line" lang="markdown"><span class="sb"> indented code</span></span></code></pre>
<copy-code></copy-code>
@@ -4287,7 +4287,7 @@ implementors are free to render the checkboxes as disabled or inmutable elements
or they may dynamically handle dynamic interactions (i.e. checking, unchecking) in
the final rendered document.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4820:1-4828:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] foo</span>
+<pre data-sourcepos="4820:1-4828:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] foo</span>
<span id="LC2" class="line" lang="plaintext">- [x] bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -4298,7 +4298,7 @@ the final rendered document.</p>
</div>
<p data-sourcepos="4830:1-4830:37">Task lists can be arbitrarily nested:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4832:1-4847:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] foo</span>
+<pre data-sourcepos="4832:1-4847:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] foo</span>
<span id="LC2" class="line" lang="plaintext"> - [ ] bar</span>
<span id="LC3" class="line" lang="plaintext"> - [x] baz</span>
<span id="LC4" class="line" lang="plaintext">- [ ] bim</span>
@@ -4343,7 +4343,7 @@ between them. Otherwise a list is <a href="@">tight</a>.
wrapped in <code>&lt;p&gt;</code> tags, while paragraphs in a tight list are not.)</p>
<p data-sourcepos="4882:1-4882:64" dir="auto">Changing the bullet or ordered list delimiter starts a new list:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4884:1-4896:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="4884:1-4896:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">- bar</span>
<span id="LC3" class="line" lang="plaintext">+ baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -4357,7 +4357,7 @@ wrapped in <code>&lt;p&gt;</code> tags, while paragraphs in a tight list are not
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4899:1-4911:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
+<pre data-sourcepos="4899:1-4911:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. foo</span>
<span id="LC2" class="line" lang="plaintext">2. bar</span>
<span id="LC3" class="line" lang="plaintext">3) baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -4374,7 +4374,7 @@ wrapped in <code>&lt;p&gt;</code> tags, while paragraphs in a tight list are not
no blank line is needed to separate a paragraph from a following
list:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4918:1-4928:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
+<pre data-sourcepos="4918:1-4928:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo</span>
<span id="LC2" class="line" lang="plaintext">- bar</span>
<span id="LC3" class="line" lang="plaintext">- baz</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -4388,7 +4388,7 @@ list:</p>
<p data-sourcepos="4930:1-4931:37" dir="auto"><code>Markdown.pl</code> does not allow this, through fear of triggering a list
via a numeral in a hard-wrapped line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4933:1-4936:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">The number of windows in my house is</span>
+<pre data-sourcepos="4933:1-4936:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">The number of windows in my house is</span>
<span id="LC2" class="line" lang="markdown"><span class="p">14.</span> The number of doors is 6.</span></code></pre>
<copy-code></copy-code>
</div>
@@ -4399,7 +4399,7 @@ apply.</p>
two reasons. First, it is natural and not uncommon for people
to start lists without blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4946:1-4951:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">I need to buy</span>
+<pre data-sourcepos="4946:1-4951:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">I need to buy</span>
<span id="LC2" class="line" lang="markdown"><span class="p">-</span> new shoes</span>
<span id="LC3" class="line" lang="markdown"><span class="p">-</span> a coat</span>
<span id="LC4" class="line" lang="markdown"><span class="p">-</span> a plane ticket</span></code></pre>
@@ -4415,7 +4415,7 @@ container block (such as a list item or blockquote).</p>
<p data-sourcepos="4960:1-4961:47" dir="auto">(Indeed, the spec for [list items] and [block quotes] presupposes
this principle.) This principle implies that if</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4963:1-4968:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> *</span> I need to buy</span>
+<pre data-sourcepos="4963:1-4968:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="p"> *</span> I need to buy</span>
<span id="LC2" class="line" lang="markdown"><span class="p"> -</span> new shoes</span>
<span id="LC3" class="line" lang="markdown"><span class="p"> -</span> a coat</span>
<span id="LC4" class="line" lang="markdown"><span class="p"> -</span> a plane ticket</span></code></pre>
@@ -4426,7 +4426,7 @@ as all Markdown implementations agree it is (though the paragraph
may be rendered without <code>&lt;p&gt;</code> tags, since the list is "tight"),
then</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4975:1-4980:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">I need to buy</span>
+<pre data-sourcepos="4975:1-4980:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">I need to buy</span>
<span id="LC2" class="line" lang="markdown"><span class="p">-</span> new shoes</span>
<span id="LC3" class="line" lang="markdown"><span class="p">-</span> a coat</span>
<span id="LC4" class="line" lang="markdown"><span class="p">-</span> a plane ticket</span></code></pre>
@@ -4443,7 +4443,7 @@ even inside other list items.)</p>
hard-wrapped numerals, we allow only lists starting with <code>1</code> to
interrupt paragraphs. Thus,</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="4995:1-5001:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">The number of windows in my house is</span>
+<pre data-sourcepos="4995:1-5001:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">The number of windows in my house is</span>
<span id="LC2" class="line" lang="plaintext">14. The number of doors is 6.</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;The number of windows in my house is</span>
@@ -4452,7 +4452,7 @@ interrupt paragraphs. Thus,</p>
</div>
<p data-sourcepos="5003:1-5003:51" dir="auto">We may still get an unintended result in cases like</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5005:1-5013:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">The number of windows in my house is</span>
+<pre data-sourcepos="5005:1-5013:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">The number of windows in my house is</span>
<span id="LC2" class="line" lang="plaintext">1. The number of doors is 6.</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;The number of windows in my house is&lt;/p&gt;</span>
@@ -4464,7 +4464,7 @@ interrupt paragraphs. Thus,</p>
<p data-sourcepos="5015:1-5015:57" dir="auto">but this rule should prevent most spurious list captures.</p>
<p data-sourcepos="5017:1-5017:53" dir="auto">There can be any number of blank lines between items:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5019:1-5038:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="5019:1-5038:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">- bar</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4485,7 +4485,7 @@ interrupt paragraphs. Thus,</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5040:1-5062:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="5040:1-5062:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"> - bar</span>
<span id="LC3" class="line" lang="plaintext"> - baz</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4513,7 +4513,7 @@ list from an indented code block that would otherwise be parsed
as a subparagraph of the final list item, you can insert a blank HTML
comment:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5070:1-5088:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="5070:1-5088:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext">- bar</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">&lt;!-- --&gt;</span>
@@ -4533,7 +4533,7 @@ comment:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5091:1-5114:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
+<pre data-sourcepos="5091:1-5114:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> notcode</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4562,7 +4562,7 @@ list items will be treated as items at the same list level,
since none is indented enough to belong to the previous list
item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5122:1-5140:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5122:1-5140:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> - b</span>
<span id="LC3" class="line" lang="plaintext"> - c</span>
<span id="LC4" class="line" lang="plaintext"> - d</span>
@@ -4582,7 +4582,7 @@ item:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5143:1-5161:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. a</span>
+<pre data-sourcepos="5143:1-5161:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. a</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> 2. b</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4605,7 +4605,7 @@ item:</p>
three spaces. Here <code>- e</code> is treated as a paragraph continuation
line, because it is indented more than three spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5167:1-5181:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5167:1-5181:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> - b</span>
<span id="LC3" class="line" lang="plaintext"> - c</span>
<span id="LC4" class="line" lang="plaintext"> - d</span>
@@ -4624,7 +4624,7 @@ line, because it is indented more than three spaces:</p>
because it is indented four spaces and preceded by a
blank line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5187:1-5204:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. a</span>
+<pre data-sourcepos="5187:1-5204:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. a</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> 2. b</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4645,7 +4645,7 @@ blank line.</p>
<p data-sourcepos="5207:1-5208:22" dir="auto">This is a loose list, because there is a blank line between
two of the list items:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5210:1-5227:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5210:1-5227:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext">- b</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">- c</span>
@@ -4665,7 +4665,7 @@ two of the list items:</p>
</div>
<p data-sourcepos="5230:1-5230:37" dir="auto">So is this, with a empty second item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5232:1-5247:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a</span>
+<pre data-sourcepos="5232:1-5247:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a</span>
<span id="LC2" class="line" lang="plaintext">*</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">* c</span>
@@ -4685,7 +4685,7 @@ two of the list items:</p>
because one of the items directly contains two block-level elements
with a blank line between them:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5254:1-5273:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5254:1-5273:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext">- b</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> c</span>
@@ -4706,7 +4706,7 @@ with a blank line between them:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5276:1-5294:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5276:1-5294:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext">- b</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> [ref]: /url</span>
@@ -4727,7 +4727,7 @@ with a blank line between them:</p>
</div>
<p data-sourcepos="5297:1-5297:66" dir="auto">This is a tight list, because the blank lines are in a code block:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5299:1-5318:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5299:1-5318:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext">- ```</span>
<span id="LC3" class="line" lang="plaintext"> b</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4751,7 +4751,7 @@ with a blank line between them:</p>
paragraphs of a sublist. So the sublist is loose while
the outer list is tight:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5325:1-5343:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5325:1-5343:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> - b</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> c</span>
@@ -4773,7 +4773,7 @@ the outer list is tight:</p>
<p data-sourcepos="5346:1-5347:12" dir="auto">This is a tight list, because the blank line is inside the
block quote:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5349:1-5363:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a</span>
+<pre data-sourcepos="5349:1-5363:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a</span>
<span id="LC2" class="line" lang="plaintext"> &gt; b</span>
<span id="LC3" class="line" lang="plaintext"> &gt;</span>
<span id="LC4" class="line" lang="plaintext">* c</span>
@@ -4791,7 +4791,7 @@ block quote:</p>
<p data-sourcepos="5366:1-5367:33" dir="auto">This list is tight, because the consecutive block elements
are not separated by blank lines:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5369:1-5387:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5369:1-5387:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> &gt; b</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext"> c</span>
@@ -4812,7 +4812,7 @@ are not separated by blank lines:</p>
</div>
<p data-sourcepos="5390:1-5390:33" dir="auto">A single-paragraph list is tight:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5392:1-5398:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5392:1-5398:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;a&lt;/li&gt;</span>
@@ -4820,7 +4820,7 @@ are not separated by blank lines:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5401:1-5412:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5401:1-5412:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> - b</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;ul&gt;</span>
@@ -4835,7 +4835,7 @@ are not separated by blank lines:</p>
<p data-sourcepos="5415:1-5416:36" dir="auto">This list is loose, because of the blank line between the
two block elements in the list item:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5418:1-5432:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. ```</span>
+<pre data-sourcepos="5418:1-5432:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">1. ```</span>
<span id="LC2" class="line" lang="plaintext"> foo</span>
<span id="LC3" class="line" lang="plaintext"> ```</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4852,7 +4852,7 @@ two block elements in the list item:</p>
</div>
<p data-sourcepos="5435:1-5435:51" dir="auto">Here the outer list is loose, the inner list tight:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5437:1-5452:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* foo</span>
+<pre data-sourcepos="5437:1-5452:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* foo</span>
<span id="LC2" class="line" lang="plaintext"> * bar</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext"> baz</span>
@@ -4869,7 +4869,7 @@ two block elements in the list item:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5455:1-5480:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
+<pre data-sourcepos="5455:1-5480:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- a</span>
<span id="LC2" class="line" lang="plaintext"> - b</span>
<span id="LC3" class="line" lang="plaintext"> - c</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -4901,7 +4901,7 @@ two block elements in the list item:</p>
stream to the end (left to right, in left-to-right languages).
Thus, for example, in</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5489:1-5493:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`hi`lo`</span>
+<pre data-sourcepos="5489:1-5493:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`hi`lo`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;hi&lt;/code&gt;lo`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -4912,7 +4912,7 @@ backtick.</p>
<a id="user-content-backslash-escapes" class="anchor" href="#backslash-escapes" aria-hidden="true"></a>Backslash escapes</h2>
<p data-sourcepos="5501:1-5501:57" dir="auto">Any ASCII punctuation character may be backslash-escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5503:1-5507:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\!\"\#\$\%\&amp;\'\(\)\*\+\,\-\.\/\:\;\&lt;\=\&gt;\?\@\[\\\]\^\_\`\{\|\}\~</span>
+<pre data-sourcepos="5503:1-5507:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\!\"\#\$\%\&amp;\'\(\)\*\+\,\-\.\/\:\;\&lt;\=\&gt;\?\@\[\\\]\^\_\`\{\|\}\~</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;!&amp;quot;#$%&amp;amp;'()*+,-./:;&amp;lt;=&amp;gt;?@[\]^_`{|}~&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -4920,7 +4920,7 @@ backtick.</p>
<p data-sourcepos="5510:1-5511:12" dir="auto">Backslashes before other characters are treated as literal
backslashes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5513:1-5517:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\→\A\a\ \3\φ\«</span>
+<pre data-sourcepos="5513:1-5517:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\→\A\a\ \3\φ\«</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;\→\A\a\ \3\φ\«&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -4928,7 +4928,7 @@ backslashes:</p>
<p data-sourcepos="5520:1-5521:39" dir="auto">Escaped characters are treated as regular characters and do
not have their usual Markdown meanings:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5523:1-5543:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\*not emphasized*</span>
+<pre data-sourcepos="5523:1-5543:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\*not emphasized*</span>
<span id="LC2" class="line" lang="plaintext">\&lt;br/&gt; not a tag</span>
<span id="LC3" class="line" lang="plaintext">\[not a link](/foo)</span>
<span id="LC4" class="line" lang="plaintext">\`not code`</span>
@@ -4951,14 +4951,14 @@ not have their usual Markdown meanings:</p>
</div>
<p data-sourcepos="5546:1-5546:65" dir="auto">If a backslash is itself escaped, the following character is not:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5548:1-5552:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\\*emphasis*</span>
+<pre data-sourcepos="5548:1-5552:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\\*emphasis*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;\&lt;em&gt;emphasis&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5555:1-5555:58" dir="auto">A backslash at the end of the line is a [hard line break]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5557:1-5563:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
+<pre data-sourcepos="5557:1-5563:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
<span id="LC2" class="line" lang="plaintext">bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -4968,20 +4968,20 @@ not have their usual Markdown meanings:</p>
<p data-sourcepos="5566:1-5567:9" dir="auto">Backslash escapes do not work in code blocks, code spans, autolinks, or
raw HTML:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5569:1-5573:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`` \[\` ``</span>
+<pre data-sourcepos="5569:1-5573:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`` \[\` ``</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;\[\`&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5576:1-5581:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> \[\]</span>
+<pre data-sourcepos="5576:1-5581:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> \[\]</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;\[\]</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5584:1-5591:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
+<pre data-sourcepos="5584:1-5591:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~~</span>
<span id="LC2" class="line" lang="plaintext">\[\]</span>
<span id="LC3" class="line" lang="plaintext">~~~</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -4990,13 +4990,13 @@ raw HTML:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5594:1-5598:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://example.com?find=\*&gt;</span>
+<pre data-sourcepos="5594:1-5598:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://example.com?find=\*&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://example.com?find=%5C*"&gt;http://example.com?find=\*&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5601:1-5605:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="/bar\/)"&gt;</span>
+<pre data-sourcepos="5601:1-5605:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="/bar\/)"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;a href="/bar\/)"&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5004,13 +5004,13 @@ raw HTML:</p>
<p data-sourcepos="5608:1-5609:60" dir="auto">But they work in all other contexts, including URLs and link titles,
link references, and [info strings] in [fenced code blocks]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5611:1-5615:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](/bar\* "ti\*tle")</span>
+<pre data-sourcepos="5611:1-5615:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](/bar\* "ti\*tle")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/bar*" title="ti*tle"&gt;foo&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5618:1-5624:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="5618:1-5624:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /bar\* "ti\*tle"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5018,7 +5018,7 @@ link references, and [info strings] in [fenced code blocks]:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5627:1-5634:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` foo\+bar</span>
+<pre data-sourcepos="5627:1-5634:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` foo\+bar</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5054,7 +5054,7 @@ document <a href="https://html.spec.whatwg.org/multipage/entities.json" rel="nof
is used as an authoritative source for the valid entity
references and their corresponding code points.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5664:1-5672:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;nbsp; &amp;amp; &amp;copy; &amp;AElig; &amp;Dcaron;</span>
+<pre data-sourcepos="5664:1-5672:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;nbsp; &amp;amp; &amp;copy; &amp;AElig; &amp;Dcaron;</span>
<span id="LC2" class="line" lang="plaintext">&amp;frac34; &amp;HilbertSpace; &amp;DifferentialD;</span>
<span id="LC3" class="line" lang="plaintext">&amp;ClockwiseContourIntegral; &amp;ngE;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5071,7 +5071,7 @@ Unicode character. Invalid Unicode code points will be replaced by
the REPLACEMENT CHARACTER (<code>U+FFFD</code>). For security reasons,
the code point <code>U+0000</code> will also be replaced by <code>U+FFFD</code>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5683:1-5687:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#35; &amp;#1234; &amp;#992; &amp;#0;</span>
+<pre data-sourcepos="5683:1-5687:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#35; &amp;#1234; &amp;#992; &amp;#0;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;# Ӓ Ϡ �&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5082,14 +5082,14 @@ either <code>X</code> or <code>x</code> + a string of 1-6 hexadecimal digits + <
They too are parsed as the corresponding Unicode character (this
time specified with a hexadecimal numeral instead of decimal).</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5696:1-5700:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#X22; &amp;#XD06; &amp;#xcab;</span>
+<pre data-sourcepos="5696:1-5700:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#X22; &amp;#XD06; &amp;#xcab;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;quot; ആ ಫ&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5703:1-5703:26" dir="auto">Here are some nonentities:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5705:1-5715:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;nbsp &amp;x; &amp;#; &amp;#x;</span>
+<pre data-sourcepos="5705:1-5715:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;nbsp &amp;x; &amp;#; &amp;#x;</span>
<span id="LC2" class="line" lang="plaintext">&amp;#987654321;</span>
<span id="LC3" class="line" lang="plaintext">&amp;#abcdef0;</span>
<span id="LC4" class="line" lang="plaintext">&amp;ThisIsNotDefined; &amp;hi?;</span>
@@ -5104,7 +5104,7 @@ time specified with a hexadecimal numeral instead of decimal).</p>
without a trailing semicolon (such as <code>&amp;copy</code>), these are not
recognized here, because it makes the grammar too ambiguous:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5722:1-5726:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;copy</span>
+<pre data-sourcepos="5722:1-5726:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;copy</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;amp;copy&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5112,7 +5112,7 @@ recognized here, because it makes the grammar too ambiguous:</p>
<p data-sourcepos="5729:1-5730:39" dir="auto">Strings that are not on the list of HTML5 named entities are not
recognized as entity references either:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5732:1-5736:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;MadeUpEntity;</span>
+<pre data-sourcepos="5732:1-5736:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;MadeUpEntity;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;amp;MadeUpEntity;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5121,19 +5121,19 @@ recognized as entity references either:</p>
context besides code spans or code blocks, including
URLs, [link titles], and [fenced code block][] [info strings]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5743:1-5747:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="&amp;ouml;&amp;ouml;.html"&gt;</span>
+<pre data-sourcepos="5743:1-5747:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="&amp;ouml;&amp;ouml;.html"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;a href="&amp;ouml;&amp;ouml;.html"&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5750:1-5754:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](/f&amp;ouml;&amp;ouml; "f&amp;ouml;&amp;ouml;")</span>
+<pre data-sourcepos="5750:1-5754:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](/f&amp;ouml;&amp;ouml; "f&amp;ouml;&amp;ouml;")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/f%C3%B6%C3%B6" title="föö"&gt;foo&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5757:1-5763:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="5757:1-5763:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /f&amp;ouml;&amp;ouml; "f&amp;ouml;&amp;ouml;"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5141,7 +5141,7 @@ URLs, [link titles], and [fenced code block][] [info strings]:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5766:1-5773:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` f&amp;ouml;&amp;ouml;</span>
+<pre data-sourcepos="5766:1-5773:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``` f&amp;ouml;&amp;ouml;</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">```</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5152,13 +5152,13 @@ URLs, [link titles], and [fenced code block][] [info strings]:</p>
<p data-sourcepos="5776:1-5777:35" dir="auto">Entity and numeric character references are treated as literal
text in code spans and code blocks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5779:1-5783:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`f&amp;ouml;&amp;ouml;`</span>
+<pre data-sourcepos="5779:1-5783:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`f&amp;ouml;&amp;ouml;`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;f&amp;amp;ouml;&amp;amp;ouml;&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5786:1-5791:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> f&amp;ouml;f&amp;ouml;</span>
+<pre data-sourcepos="5786:1-5791:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> f&amp;ouml;f&amp;ouml;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;pre&gt;&lt;code&gt;f&amp;amp;ouml;f&amp;amp;ouml;</span>
<span id="LC4" class="line" lang="plaintext">&lt;/code&gt;&lt;/pre&gt;</span></code></pre>
@@ -5168,7 +5168,7 @@ text in code spans and code blocks:</p>
in place of symbols indicating structure in CommonMark
documents.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5798:1-5804:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#42;foo&amp;#42;</span>
+<pre data-sourcepos="5798:1-5804:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#42;foo&amp;#42;</span>
<span id="LC2" class="line" lang="plaintext">*foo*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;*foo*</span>
@@ -5176,7 +5176,7 @@ documents.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5806:1-5815:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#42; foo</span>
+<pre data-sourcepos="5806:1-5815:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#42; foo</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">* foo</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5187,7 +5187,7 @@ documents.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5817:1-5823:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo&amp;#10;&amp;#10;bar</span>
+<pre data-sourcepos="5817:1-5823:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo&amp;#10;&amp;#10;bar</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -5195,13 +5195,13 @@ documents.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5825:1-5829:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#9;foo</span>
+<pre data-sourcepos="5825:1-5829:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&amp;#9;foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;→foo&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5832:1-5836:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](url &amp;quot;tit&amp;quot;)</span>
+<pre data-sourcepos="5832:1-5836:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](url &amp;quot;tit&amp;quot;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[a](url &amp;quot;tit&amp;quot;)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5226,7 +5226,7 @@ whitespace from the opening or closing backtick strings.</li>
</ul>
<p data-sourcepos="5858:1-5858:27" dir="auto">This is a simple code span:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5860:1-5864:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo`</span>
+<pre data-sourcepos="5860:1-5864:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5235,7 +5235,7 @@ whitespace from the opening or closing backtick strings.</li>
This example also illustrates stripping of a single leading and
trailing space:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5871:1-5875:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`` foo ` bar ``</span>
+<pre data-sourcepos="5871:1-5875:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`` foo ` bar ``</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo ` bar&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5243,14 +5243,14 @@ trailing space:</p>
<p data-sourcepos="5878:1-5879:7" dir="auto">This example shows the motivation for stripping leading and trailing
spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5881:1-5885:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `` `</span>
+<pre data-sourcepos="5881:1-5885:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `` `</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;``&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5887:1-5887:39" dir="auto">Note that only <em>one</em> space is stripped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5889:1-5893:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `` `</span>
+<pre data-sourcepos="5889:1-5893:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `` `</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt; `` &lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5258,7 +5258,7 @@ spaces:</p>
<p data-sourcepos="5895:1-5896:20" dir="auto">The stripping only happens if the space is on both
sides of the string:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5898:1-5902:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` a`</span>
+<pre data-sourcepos="5898:1-5902:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` a`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt; a&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5266,14 +5266,14 @@ sides of the string:</p>
<p data-sourcepos="5904:1-5905:21" dir="auto">Only [spaces], and not [unicode whitespace] in general, are
stripped in this way:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5907:1-5911:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` b `</span>
+<pre data-sourcepos="5907:1-5911:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` b `</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt; b &lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5913:1-5913:58" dir="auto">No stripping occurs if the code span contains only spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5915:1-5921:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `</span>
+<pre data-sourcepos="5915:1-5921:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` `</span>
<span id="LC2" class="line" lang="plaintext">` `</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt; &lt;/code&gt;</span>
@@ -5282,7 +5282,7 @@ stripped in this way:</p>
</div>
<p data-sourcepos="5924:1-5924:39" dir="auto">[Line endings] are treated like spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5926:1-5934:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
+<pre data-sourcepos="5926:1-5934:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
<span id="LC2" class="line" lang="plaintext">foo</span>
<span id="LC3" class="line" lang="plaintext">bar </span>
<span id="LC4" class="line" lang="plaintext">baz</span>
@@ -5292,7 +5292,7 @@ stripped in this way:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5936:1-5942:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
+<pre data-sourcepos="5936:1-5942:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``</span>
<span id="LC2" class="line" lang="plaintext">foo </span>
<span id="LC3" class="line" lang="plaintext">``</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -5301,7 +5301,7 @@ stripped in this way:</p>
</div>
<p data-sourcepos="5945:1-5945:34" dir="auto">Interior spaces are not collapsed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5947:1-5952:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo bar </span>
+<pre data-sourcepos="5947:1-5952:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo bar </span>
<span id="LC2" class="line" lang="plaintext">baz`</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo bar baz&lt;/code&gt;&lt;/p&gt;</span></code></pre>
@@ -5311,13 +5311,13 @@ stripped in this way:</p>
when rendering <code>&lt;code&gt;</code> elements, so it is recommended that
the following CSS be used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5958:5-5960:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code{white-space: pre-wrap;}</span></code></pre>
+<pre data-sourcepos="5958:5-5960:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">code{white-space: pre-wrap;}</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="5961:1-5962:22" dir="auto">Note that backslash escapes do not work in code spans. All backslashes
are treated literally:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5964:1-5968:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo\`bar`</span>
+<pre data-sourcepos="5964:1-5968:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo\`bar`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo\&lt;/code&gt;bar`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5326,13 +5326,13 @@ are treated literally:</p>
string of <em>n</em> backtick characters as delimiters, where the code does
not contain any strings of exactly <em>n</em> backtick characters.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5975:1-5979:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``foo`bar``</span>
+<pre data-sourcepos="5975:1-5979:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">``foo`bar``</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo`bar&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5981:1-5985:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` foo `` bar `</span>
+<pre data-sourcepos="5981:1-5985:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">` foo `` bar `</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;foo `` bar&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5342,14 +5342,14 @@ constructs except HTML tags and autolinks. Thus, for example, this is
not parsed as emphasized text, since the second <code>*</code> is part of a code
span:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="5993:1-5997:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo`*`</span>
+<pre data-sourcepos="5993:1-5997:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo`*`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*foo&lt;code&gt;*&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6000:1-6000:33" dir="auto">And this is not parsed as a link:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6002:1-6006:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[not a `link](/foo`)</span>
+<pre data-sourcepos="6002:1-6006:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[not a `link](/foo`)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[not a &lt;code&gt;link](/foo&lt;/code&gt;)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5357,28 +5357,28 @@ span:</p>
<p data-sourcepos="6009:1-6010:19" dir="auto">Code spans, HTML tags, and autolinks have the same precedence.
Thus, this is code:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6012:1-6016:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`&lt;a href="`"&gt;`</span>
+<pre data-sourcepos="6012:1-6016:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`&lt;a href="`"&gt;`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;&lt;/code&gt;&amp;quot;&amp;gt;`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6019:1-6019:24" dir="auto">But this is an HTML tag:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6021:1-6025:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="`"&gt;`</span>
+<pre data-sourcepos="6021:1-6025:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="`"&gt;`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="`"&gt;`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6028:1-6028:17" dir="auto">And this is code:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6030:1-6034:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`&lt;http://foo.bar.`baz&gt;`</span>
+<pre data-sourcepos="6030:1-6034:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`&lt;http://foo.bar.`baz&gt;`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;&amp;lt;http://foo.bar.&lt;/code&gt;baz&amp;gt;`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6037:1-6037:24" dir="auto">But this is an autolink:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6039:1-6043:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.`baz&gt;`</span>
+<pre data-sourcepos="6039:1-6043:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.`baz&gt;`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://foo.bar.%60baz"&gt;http://foo.bar.`baz&lt;/a&gt;`&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5386,13 +5386,13 @@ Thus, this is code:</p>
<p data-sourcepos="6046:1-6047:31" dir="auto">When a backtick string is not closed by a matching backtick string,
we just have literal backticks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6049:1-6053:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```foo``</span>
+<pre data-sourcepos="6049:1-6053:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">```foo``</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;```foo``&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6056:1-6060:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo</span>
+<pre data-sourcepos="6056:1-6060:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;`foo&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5400,7 +5400,7 @@ we just have literal backticks:</p>
<p data-sourcepos="6062:1-6063:47" dir="auto">The following case also illustrates the need for opening and
closing backtick strings to be equal in length:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6065:1-6069:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo``bar``</span>
+<pre data-sourcepos="6065:1-6069:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`foo``bar``</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;`foo&lt;code&gt;bar&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5421,7 +5421,7 @@ especially when it comes to nested emphasis. The original
<code>___</code> delimiters can be used for strong emphasis, and most
implementations have also allowed the following patterns:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6088:1-6094:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gs">***strong emph**</span><span class="err">*</span></span>
+<pre data-sourcepos="6088:1-6094:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="gs">***strong emph**</span><span class="err">*</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gs">***strong**</span> in emph<span class="err">*</span></span>
<span id="LC3" class="line" lang="markdown"><span class="gs">***emph* in strong**</span></span>
<span id="LC4" class="line" lang="markdown"><span class="gs">**in strong *emph**</span><span class="err">*</span></span>
@@ -5432,7 +5432,7 @@ implementations have also allowed the following patterns:</p>
is clear and they are useful (especially in contexts like bibliography
entries):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6100:1-6103:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="ge">*emph *</span>with emph<span class="ge">* in it*</span></span>
+<pre data-sourcepos="6100:1-6103:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="ge">*emph *</span>with emph<span class="ge">* in it*</span></span>
<span id="LC2" class="line" lang="markdown"><span class="gs">**strong **</span>with strong<span class="gs">** in it**</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -5441,7 +5441,7 @@ the <code>*</code> forms, to avoid unwanted emphasis in words containing
internal underscores. (It is best practice to put these in code
spans, but users often do not.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6110:1-6113:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">internal emphasis: foo<span class="ge">*bar*</span>baz</span>
+<pre data-sourcepos="6110:1-6113:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">internal emphasis: foo<span class="ge">*bar*</span>baz</span>
<span id="LC2" class="line" lang="markdown">no emphasis: foo_bar_baz</span></code></pre>
<copy-code></copy-code>
</div>
@@ -5471,7 +5471,7 @@ the line count as Unicode whitespace.</p>
<li data-sourcepos="6142:3-6150:0">
<p data-sourcepos="6142:5-6142:41">left-flanking but not right-flanking:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6144:5-6149:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***abc</span>
+<pre data-sourcepos="6144:5-6149:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***abc</span>
<span id="LC2" class="line" lang="plaintext"> _abc</span>
<span id="LC3" class="line" lang="plaintext">**"abc"</span>
<span id="LC4" class="line" lang="plaintext"> _"abc"</span></code></pre>
@@ -5481,7 +5481,7 @@ the line count as Unicode whitespace.</p>
<li data-sourcepos="6151:3-6159:0">
<p data-sourcepos="6151:5-6151:41">right-flanking but not left-flanking:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6153:5-6158:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> abc***</span>
+<pre data-sourcepos="6153:5-6158:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> abc***</span>
<span id="LC2" class="line" lang="plaintext"> abc_</span>
<span id="LC3" class="line" lang="plaintext">"abc"**</span>
<span id="LC4" class="line" lang="plaintext">"abc"_</span></code></pre>
@@ -5491,7 +5491,7 @@ the line count as Unicode whitespace.</p>
<li data-sourcepos="6160:3-6166:0">
<p data-sourcepos="6160:5-6160:33">Both left and right-flanking:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6162:5-6165:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> abc***def</span>
+<pre data-sourcepos="6162:5-6165:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> abc***def</span>
<span id="LC2" class="line" lang="plaintext">"abc"_"def"</span></code></pre>
<copy-code></copy-code>
</div>
@@ -5499,7 +5499,7 @@ the line count as Unicode whitespace.</p>
<li data-sourcepos="6167:3-6173:0">
<p data-sourcepos="6167:5-6167:36">Neither left nor right-flanking:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6169:5-6172:7" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">abc *** def</span>
+<pre data-sourcepos="6169:5-6172:7" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">abc *** def</span>
<span id="LC2" class="line" lang="plaintext">a _ b</span></code></pre>
<copy-code></copy-code>
</div>
@@ -5630,7 +5630,7 @@ parsed as <code>*&lt;a href="bar"&gt;foo*&lt;/a&gt;</code> rather than as
<p data-sourcepos="6278:1-6278:60" dir="auto">These rules can be illustrated through a series of examples.</p>
<p data-sourcepos="6280:1-6280:7" dir="auto">Rule 1:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6282:1-6286:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar*</span>
+<pre data-sourcepos="6282:1-6286:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5638,7 +5638,7 @@ parsed as <code>*&lt;a href="bar"&gt;foo*&lt;/a&gt;</code> rather than as
<p data-sourcepos="6289:1-6290:66" dir="auto">This is not emphasis, because the opening <code>*</code> is followed by
whitespace, and hence not part of a [left-flanking delimiter run]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6292:1-6296:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a * foo bar*</span>
+<pre data-sourcepos="6292:1-6296:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a * foo bar*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;a * foo bar*&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5647,34 +5647,34 @@ whitespace, and hence not part of a [left-flanking delimiter run]:</p>
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6303:1-6307:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a*"foo"*</span>
+<pre data-sourcepos="6303:1-6307:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a*"foo"*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;a*&amp;quot;foo&amp;quot;*&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6310:1-6310:52" dir="auto">Unicode nonbreaking spaces count as whitespace, too:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6312:1-6316:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a *</span>
+<pre data-sourcepos="6312:1-6316:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">* a *</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;* a *&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6319:1-6319:41" dir="auto">Intraword emphasis with <code>*</code> is permitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6321:1-6325:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo*bar*</span>
+<pre data-sourcepos="6321:1-6325:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo*bar*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo&lt;em&gt;bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6328:1-6332:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5*6*78</span>
+<pre data-sourcepos="6328:1-6332:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5*6*78</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;5&lt;em&gt;6&lt;/em&gt;78&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6335:1-6335:7" dir="auto">Rule 2:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6337:1-6341:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo bar_</span>
+<pre data-sourcepos="6337:1-6341:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo bar_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5682,7 +5682,7 @@ not part of a [left-flanking delimiter run]:</p>
<p data-sourcepos="6344:1-6345:11" dir="auto">This is not emphasis, because the opening <code>_</code> is followed by
whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6347:1-6351:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_ foo bar_</span>
+<pre data-sourcepos="6347:1-6351:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_ foo bar_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_ foo bar_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5690,26 +5690,26 @@ whitespace:</p>
<p data-sourcepos="6354:1-6355:47" dir="auto">This is not emphasis, because the opening <code>_</code> is preceded
by an alphanumeric and followed by punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6357:1-6361:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a_"foo"_</span>
+<pre data-sourcepos="6357:1-6361:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a_"foo"_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;a_&amp;quot;foo&amp;quot;_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6364:1-6364:46" dir="auto">Emphasis with <code>_</code> is not allowed inside words:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6366:1-6370:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo_bar_</span>
+<pre data-sourcepos="6366:1-6370:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo_bar_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo_bar_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6373:1-6377:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5_6_78</span>
+<pre data-sourcepos="6373:1-6377:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5_6_78</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;5_6_78&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6380:1-6384:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">пристаням_стремятся_</span>
+<pre data-sourcepos="6380:1-6384:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">пристаням_стремятся_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;пристаням_стремятся_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5717,7 +5717,7 @@ by an alphanumeric and followed by punctuation:</p>
<p data-sourcepos="6387:1-6388:47" dir="auto">Here <code>_</code> does not generate emphasis, because the first delimiter run
is right-flanking and the second left-flanking:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6390:1-6394:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aa_"bb"_cc</span>
+<pre data-sourcepos="6390:1-6394:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">aa_"bb"_cc</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;aa_&amp;quot;bb&amp;quot;_cc&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5726,7 +5726,7 @@ is right-flanking and the second left-flanking:</p>
both left- and right-flanking, because it is preceded by
punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6401:1-6405:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo-_(bar)_</span>
+<pre data-sourcepos="6401:1-6405:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo-_(bar)_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo-&lt;em&gt;(bar)&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5735,7 +5735,7 @@ punctuation:</p>
<p data-sourcepos="6410:1-6411:32" dir="auto">This is not emphasis, because the closing delimiter does
not match the opening delimiter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6413:1-6417:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo*</span>
+<pre data-sourcepos="6413:1-6417:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_foo*&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5743,14 +5743,14 @@ not match the opening delimiter:</p>
<p data-sourcepos="6420:1-6421:11" dir="auto">This is not emphasis, because the closing <code>*</code> is preceded by
whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6423:1-6427:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar *</span>
+<pre data-sourcepos="6423:1-6427:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar *</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*foo bar *&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6430:1-6430:36" dir="auto">A newline also counts as whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6432:1-6438:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar</span>
+<pre data-sourcepos="6432:1-6438:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo bar</span>
<span id="LC2" class="line" lang="plaintext">*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;*foo bar</span>
@@ -5761,7 +5761,7 @@ whitespace:</p>
preceded by punctuation and followed by an alphanumeric
(hence it is not part of a [right-flanking delimiter run]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6445:1-6449:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(*foo)</span>
+<pre data-sourcepos="6445:1-6449:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(*foo)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*(*foo)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5769,14 +5769,14 @@ preceded by punctuation and followed by an alphanumeric
<p data-sourcepos="6452:1-6453:18" dir="auto">The point of this restriction is more easily appreciated
with this example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6455:1-6459:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(*foo*)*</span>
+<pre data-sourcepos="6455:1-6459:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(*foo*)*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;(&lt;em&gt;foo&lt;/em&gt;)&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6462:1-6462:39" dir="auto">Intraword emphasis with <code>*</code> is allowed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6464:1-6468:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo*bar</span>
+<pre data-sourcepos="6464:1-6468:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo*bar</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;/em&gt;bar&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5785,7 +5785,7 @@ with this example:</p>
<p data-sourcepos="6474:1-6475:11" dir="auto">This is not emphasis, because the closing <code>_</code> is preceded by
whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6477:1-6481:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo bar _</span>
+<pre data-sourcepos="6477:1-6481:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo bar _</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_foo bar _&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5793,33 +5793,33 @@ whitespace:</p>
<p data-sourcepos="6484:1-6485:56" dir="auto">This is not emphasis, because the second <code>_</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6487:1-6491:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(_foo)</span>
+<pre data-sourcepos="6487:1-6491:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(_foo)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_(_foo)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6494:1-6494:33" dir="auto">This is emphasis within emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6496:1-6500:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(_foo_)_</span>
+<pre data-sourcepos="6496:1-6500:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(_foo_)_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;(&lt;em&gt;foo&lt;/em&gt;)&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6503:1-6503:41" dir="auto">Intraword emphasis is disallowed for <code>_</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6505:1-6509:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo_bar</span>
+<pre data-sourcepos="6505:1-6509:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo_bar</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_foo_bar&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6512:1-6516:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_пристаням_стремятся</span>
+<pre data-sourcepos="6512:1-6516:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_пристаням_стремятся</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_пристаням_стремятся&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6519:1-6523:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo_bar_baz_</span>
+<pre data-sourcepos="6519:1-6523:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo_bar_baz_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo_bar_baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5828,14 +5828,14 @@ preceded by punctuation and followed by an alphanumeric:</p>
both left- and right-flanking, because it is followed by
punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6530:1-6534:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(bar)_.</span>
+<pre data-sourcepos="6530:1-6534:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(bar)_.</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;(bar)&lt;/em&gt;.&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6537:1-6537:7" dir="auto">Rule 5:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6539:1-6543:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo bar**</span>
+<pre data-sourcepos="6539:1-6543:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo bar**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo bar&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5843,7 +5843,7 @@ punctuation:</p>
<p data-sourcepos="6546:1-6547:23" dir="auto">This is not strong emphasis, because the opening delimiter is
followed by whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6549:1-6553:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">** foo bar**</span>
+<pre data-sourcepos="6549:1-6553:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">** foo bar**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;** foo bar**&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5852,21 +5852,21 @@ followed by whitespace:</p>
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6560:1-6564:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a**"foo"**</span>
+<pre data-sourcepos="6560:1-6564:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a**"foo"**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;a**&amp;quot;foo&amp;quot;**&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6567:1-6567:49" dir="auto">Intraword strong emphasis with <code>**</code> is permitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6569:1-6573:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo**bar**</span>
+<pre data-sourcepos="6569:1-6573:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo**bar**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo&lt;strong&gt;bar&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6576:1-6576:7" dir="auto">Rule 6:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6578:1-6582:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo bar__</span>
+<pre data-sourcepos="6578:1-6582:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo bar__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo bar&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5874,14 +5874,14 @@ not part of a [left-flanking delimiter run]:</p>
<p data-sourcepos="6585:1-6586:23" dir="auto">This is not strong emphasis, because the opening delimiter is
followed by whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6588:1-6592:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__ foo bar__</span>
+<pre data-sourcepos="6588:1-6592:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__ foo bar__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__ foo bar__&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6595:1-6595:31" dir="auto">A newline counts as whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6596:1-6602:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__</span>
+<pre data-sourcepos="6596:1-6602:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__</span>
<span id="LC2" class="line" lang="plaintext">foo bar__</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;__</span>
@@ -5891,32 +5891,32 @@ followed by whitespace:</p>
<p data-sourcepos="6605:1-6606:47" dir="auto">This is not strong emphasis, because the opening <code>__</code> is preceded
by an alphanumeric and followed by punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6608:1-6612:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a__"foo"__</span>
+<pre data-sourcepos="6608:1-6612:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a__"foo"__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;a__&amp;quot;foo&amp;quot;__&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6615:1-6615:49" dir="auto">Intraword strong emphasis is forbidden with <code>__</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6617:1-6621:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo__bar__</span>
+<pre data-sourcepos="6617:1-6621:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo__bar__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo__bar__&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6624:1-6628:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5__6__78</span>
+<pre data-sourcepos="6624:1-6628:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">5__6__78</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;5__6__78&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6631:1-6635:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">пристаням__стремятся__</span>
+<pre data-sourcepos="6631:1-6635:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">пристаням__стремятся__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;пристаням__стремятся__&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6638:1-6642:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo, __bar__, baz__</span>
+<pre data-sourcepos="6638:1-6642:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo, __bar__, baz__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo, &lt;strong&gt;bar&lt;/strong&gt;, baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5925,7 +5925,7 @@ by an alphanumeric and followed by punctuation:</p>
both left- and right-flanking, because it is preceded by
punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6649:1-6653:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo-__(bar)__</span>
+<pre data-sourcepos="6649:1-6653:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo-__(bar)__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo-&lt;strong&gt;(bar)&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5934,7 +5934,7 @@ punctuation:</p>
<p data-sourcepos="6659:1-6660:14" dir="auto">This is not strong emphasis, because the closing delimiter is preceded
by whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6662:1-6666:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo bar **</span>
+<pre data-sourcepos="6662:1-6666:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo bar **</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**foo bar **&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5944,7 +5944,7 @@ Rule 11.)</p>
<p data-sourcepos="6672:1-6673:56" dir="auto">This is not strong emphasis, because the second <code>**</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6675:1-6679:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**(**foo)</span>
+<pre data-sourcepos="6675:1-6679:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**(**foo)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**(**foo)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5952,13 +5952,13 @@ preceded by punctuation and followed by an alphanumeric:</p>
<p data-sourcepos="6682:1-6683:20" dir="auto">The point of this restriction is more easily appreciated
with these examples:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6685:1-6689:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(**foo**)*</span>
+<pre data-sourcepos="6685:1-6689:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*(**foo**)*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;(&lt;strong&gt;foo&lt;/strong&gt;)&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6692:1-6698:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**Gomphocarpus (*Gomphocarpus physocarpus*, syn.</span>
+<pre data-sourcepos="6692:1-6698:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**Gomphocarpus (*Gomphocarpus physocarpus*, syn.</span>
<span id="LC2" class="line" lang="plaintext">*Asclepias physocarpa*)**</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;Gomphocarpus (&lt;em&gt;Gomphocarpus physocarpus&lt;/em&gt;, syn.</span>
@@ -5966,14 +5966,14 @@ with these examples:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6701:1-6705:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo "*bar*" foo**</span>
+<pre data-sourcepos="6701:1-6705:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo "*bar*" foo**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &amp;quot;&lt;em&gt;bar&lt;/em&gt;&amp;quot; foo&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6708:1-6708:19" dir="auto">Intraword emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6710:1-6714:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo**bar</span>
+<pre data-sourcepos="6710:1-6714:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo**bar</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt;bar&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5982,7 +5982,7 @@ with these examples:</p>
<p data-sourcepos="6719:1-6720:23" dir="auto">This is not strong emphasis, because the closing delimiter is
preceded by whitespace:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6722:1-6726:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo bar __</span>
+<pre data-sourcepos="6722:1-6726:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo bar __</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__foo bar __&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5990,7 +5990,7 @@ preceded by whitespace:</p>
<p data-sourcepos="6729:1-6730:56" dir="auto">This is not strong emphasis, because the second <code>__</code> is
preceded by punctuation and followed by an alphanumeric:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6732:1-6736:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__(__foo)</span>
+<pre data-sourcepos="6732:1-6736:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__(__foo)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__(__foo)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -5998,26 +5998,26 @@ preceded by punctuation and followed by an alphanumeric:</p>
<p data-sourcepos="6739:1-6740:18" dir="auto">The point of this restriction is more easily appreciated
with this example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6742:1-6746:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(__foo__)_</span>
+<pre data-sourcepos="6742:1-6746:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_(__foo__)_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;(&lt;strong&gt;foo&lt;/strong&gt;)&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6749:1-6749:49" dir="auto">Intraword strong emphasis is forbidden with <code>__</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6751:1-6755:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__bar</span>
+<pre data-sourcepos="6751:1-6755:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__bar</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__foo__bar&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6758:1-6762:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__пристаням__стремятся</span>
+<pre data-sourcepos="6758:1-6762:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__пристаням__стремятся</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__пристаням__стремятся&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6765:1-6769:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__bar__baz__</span>
+<pre data-sourcepos="6765:1-6769:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__bar__baz__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo__bar__baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6026,7 +6026,7 @@ with this example:</p>
both left- and right-flanking, because it is followed by
punctuation:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6776:1-6780:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__(bar)__.</span>
+<pre data-sourcepos="6776:1-6780:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__(bar)__.</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;(bar)&lt;/strong&gt;.&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6035,13 +6035,13 @@ punctuation:</p>
<p data-sourcepos="6785:1-6786:16" dir="auto">Any nonempty sequence of inline elements can be the contents of an
emphasized span.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6788:1-6792:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [bar](/url)*</span>
+<pre data-sourcepos="6788:1-6792:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [bar](/url)*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;a href="/url"&gt;bar&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6795:1-6801:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo</span>
+<pre data-sourcepos="6795:1-6801:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo</span>
<span id="LC2" class="line" lang="plaintext">bar*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo</span>
@@ -6051,44 +6051,44 @@ emphasized span.</p>
<p data-sourcepos="6804:1-6805:16" dir="auto">In particular, emphasis and strong emphasis can be nested
inside emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6807:1-6811:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo __bar__ baz_</span>
+<pre data-sourcepos="6807:1-6811:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo __bar__ baz_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;strong&gt;bar&lt;/strong&gt; baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6814:1-6818:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo _bar_ baz_</span>
+<pre data-sourcepos="6814:1-6818:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo _bar_ baz_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;em&gt;bar&lt;/em&gt; baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6821:1-6825:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo_ bar_</span>
+<pre data-sourcepos="6821:1-6825:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo_ bar_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;em&gt;foo&lt;/em&gt; bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6828:1-6832:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo *bar**</span>
+<pre data-sourcepos="6828:1-6832:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo *bar**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;em&gt;bar&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6835:1-6839:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar** baz*</span>
+<pre data-sourcepos="6835:1-6839:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar** baz*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;strong&gt;bar&lt;/strong&gt; baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6841:1-6845:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar**baz*</span>
+<pre data-sourcepos="6841:1-6845:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar**baz*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;strong&gt;bar&lt;/strong&gt;baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6847:1-6847:51" dir="auto">Note that in the preceding case, the interpretation</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6849:1-6851:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="nt">&lt;p&gt;&lt;em&gt;</span>foo<span class="nt">&lt;/em&gt;&lt;em&gt;</span>bar<span class="nt">&lt;em&gt;&lt;/em&gt;</span>baz<span class="nt">&lt;/em&gt;&lt;/p&gt;</span></span></code></pre>
+<pre data-sourcepos="6849:1-6851:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown"><span class="nt">&lt;p&gt;&lt;em&gt;</span>foo<span class="nt">&lt;/em&gt;&lt;em&gt;</span>bar<span class="nt">&lt;em&gt;&lt;/em&gt;</span>baz<span class="nt">&lt;/em&gt;&lt;/p&gt;</span></span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6854:1-6859:32" dir="auto">is precluded by the condition that a delimiter that
@@ -6100,7 +6100,7 @@ both lengths are multiples of 3.</p>
<p data-sourcepos="6862:1-6863:34" dir="auto">For the same reason, we don't get two consecutive
emphasis sections in this example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6865:1-6869:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar*</span>
+<pre data-sourcepos="6865:1-6869:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo**bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6110,19 +6110,19 @@ cases are all strong emphasis nested inside
emphasis, even when the interior spaces are
omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6878:1-6882:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo** bar*</span>
+<pre data-sourcepos="6878:1-6882:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo** bar*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;strong&gt;foo&lt;/strong&gt; bar&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6885:1-6889:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar***</span>
+<pre data-sourcepos="6885:1-6889:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;strong&gt;bar&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6892:1-6896:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar***</span>
+<pre data-sourcepos="6892:1-6896:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**bar***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;strong&gt;bar&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6131,39 +6131,39 @@ omitted:</p>
delimiter runs are <em>both</em> multiples of 3, though,
they can match to create emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6903:1-6907:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo***bar***baz</span>
+<pre data-sourcepos="6903:1-6907:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo***bar***baz</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo&lt;em&gt;&lt;strong&gt;bar&lt;/strong&gt;&lt;/em&gt;baz&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6909:1-6913:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo******bar*********baz</span>
+<pre data-sourcepos="6909:1-6913:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo******bar*********baz</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;bar&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;***baz&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6916:1-6916:42" dir="auto">Indefinite levels of nesting are possible:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6918:1-6922:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar *baz* bim** bop*</span>
+<pre data-sourcepos="6918:1-6922:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo **bar *baz* bim** bop*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;strong&gt;bar &lt;em&gt;baz&lt;/em&gt; bim&lt;/strong&gt; bop&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6925:1-6929:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [*bar*](/url)*</span>
+<pre data-sourcepos="6925:1-6929:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [*bar*](/url)*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;a href="/url"&gt;&lt;em&gt;bar&lt;/em&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="6932:1-6932:50" dir="auto">There can be no empty emphasis or strong emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6934:1-6938:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">** is not an empty emphasis</span>
+<pre data-sourcepos="6934:1-6938:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">** is not an empty emphasis</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;** is not an empty emphasis&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6941:1-6945:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**** is not an empty strong emphasis</span>
+<pre data-sourcepos="6941:1-6945:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**** is not an empty strong emphasis</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**** is not an empty strong emphasis&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6172,13 +6172,13 @@ they can match to create emphasis:</p>
<p data-sourcepos="6951:1-6952:25" dir="auto">Any nonempty sequence of inline elements can be the contents of an
strongly emphasized span.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6954:1-6958:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo [bar](/url)**</span>
+<pre data-sourcepos="6954:1-6958:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo [bar](/url)**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;a href="/url"&gt;bar&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6961:1-6967:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo</span>
+<pre data-sourcepos="6961:1-6967:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo</span>
<span id="LC2" class="line" lang="plaintext">bar**</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo</span>
@@ -6188,56 +6188,56 @@ strongly emphasized span.</p>
<p data-sourcepos="6970:1-6971:23" dir="auto">In particular, emphasis and strong emphasis can be nested
inside strong emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6973:1-6977:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo _bar_ baz__</span>
+<pre data-sourcepos="6973:1-6977:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo _bar_ baz__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;em&gt;bar&lt;/em&gt; baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6980:1-6984:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo __bar__ baz__</span>
+<pre data-sourcepos="6980:1-6984:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo __bar__ baz__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;strong&gt;bar&lt;/strong&gt; baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6987:1-6991:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo__ bar__</span>
+<pre data-sourcepos="6987:1-6991:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo__ bar__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;&lt;strong&gt;foo&lt;/strong&gt; bar&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="6994:1-6998:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo **bar****</span>
+<pre data-sourcepos="6994:1-6998:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo **bar****</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;strong&gt;bar&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7001:1-7005:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar* baz**</span>
+<pre data-sourcepos="7001:1-7005:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar* baz**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;em&gt;bar&lt;/em&gt; baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7008:1-7012:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo*bar*baz**</span>
+<pre data-sourcepos="7008:1-7012:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo*bar*baz**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;em&gt;bar&lt;/em&gt;baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7015:1-7019:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo* bar**</span>
+<pre data-sourcepos="7015:1-7019:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo* bar**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;&lt;em&gt;foo&lt;/em&gt; bar&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7022:1-7026:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar***</span>
+<pre data-sourcepos="7022:1-7026:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;em&gt;bar&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7029:1-7029:42" dir="auto">Indefinite levels of nesting are possible:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7031:1-7037:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar **baz**</span>
+<pre data-sourcepos="7031:1-7037:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo *bar **baz**</span>
<span id="LC2" class="line" lang="plaintext">bim* bop**</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;em&gt;bar &lt;strong&gt;baz&lt;/strong&gt;</span>
@@ -6245,57 +6245,57 @@ inside strong emphasis:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7040:1-7044:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo [*bar*](/url)**</span>
+<pre data-sourcepos="7040:1-7044:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo [*bar*](/url)**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo &lt;a href="/url"&gt;&lt;em&gt;bar&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7047:1-7047:50" dir="auto">There can be no empty emphasis or strong emphasis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7049:1-7053:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__ is not an empty emphasis</span>
+<pre data-sourcepos="7049:1-7053:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__ is not an empty emphasis</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__ is not an empty emphasis&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7056:1-7060:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____ is not an empty strong emphasis</span>
+<pre data-sourcepos="7056:1-7060:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____ is not an empty strong emphasis</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;____ is not an empty strong emphasis&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7064:1-7064:8" dir="auto">Rule 11:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7066:1-7070:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo ***</span>
+<pre data-sourcepos="7066:1-7070:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo ***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo ***&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7073:1-7077:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *\**</span>
+<pre data-sourcepos="7073:1-7077:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *\**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;em&gt;*&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7080:1-7084:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *_*</span>
+<pre data-sourcepos="7080:1-7084:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *_*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;em&gt;_&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7087:1-7091:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *****</span>
+<pre data-sourcepos="7087:1-7091:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo *****</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo *****&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7094:1-7098:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo **\***</span>
+<pre data-sourcepos="7094:1-7098:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo **\***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;strong&gt;*&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7101:1-7105:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo **_**</span>
+<pre data-sourcepos="7101:1-7105:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo **_**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;strong&gt;_&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6304,80 +6304,80 @@ inside strong emphasis:</p>
that the excess literal <code>*</code> characters will appear outside of the
emphasis, rather than inside it:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7112:1-7116:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo*</span>
+<pre data-sourcepos="7112:1-7116:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*&lt;em&gt;foo&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7119:1-7123:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**</span>
+<pre data-sourcepos="7119:1-7123:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;/em&gt;*&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7126:1-7130:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo**</span>
+<pre data-sourcepos="7126:1-7130:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*&lt;strong&gt;foo&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7133:1-7137:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****foo*</span>
+<pre data-sourcepos="7133:1-7137:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****foo*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;***&lt;em&gt;foo&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7140:1-7144:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo***</span>
+<pre data-sourcepos="7140:1-7144:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt;*&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7147:1-7151:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo****</span>
+<pre data-sourcepos="7147:1-7151:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo****</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;/em&gt;***&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7155:1-7155:8" dir="auto">Rule 12:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7157:1-7161:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo ___</span>
+<pre data-sourcepos="7157:1-7161:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo ___</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo ___&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7164:1-7168:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _\__</span>
+<pre data-sourcepos="7164:1-7168:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _\__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;em&gt;_&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7171:1-7175:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _*_</span>
+<pre data-sourcepos="7171:1-7175:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _*_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;em&gt;*&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7178:1-7182:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _____</span>
+<pre data-sourcepos="7178:1-7182:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo _____</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo _____&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7185:1-7189:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo __\___</span>
+<pre data-sourcepos="7185:1-7189:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo __\___</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;strong&gt;_&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7192:1-7196:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo __*__</span>
+<pre data-sourcepos="7192:1-7196:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo __*__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;strong&gt;*&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7199:1-7203:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo_</span>
+<pre data-sourcepos="7199:1-7203:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_&lt;em&gt;foo&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6386,31 +6386,31 @@ emphasis, rather than inside it:</p>
that the excess literal <code>_</code> characters will appear outside of the
emphasis, rather than inside it:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7210:1-7214:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo__</span>
+<pre data-sourcepos="7210:1-7214:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;/em&gt;_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7217:1-7221:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">___foo__</span>
+<pre data-sourcepos="7217:1-7221:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">___foo__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_&lt;strong&gt;foo&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7224:1-7228:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo_</span>
+<pre data-sourcepos="7224:1-7228:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;___&lt;em&gt;foo&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7231:1-7235:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo___</span>
+<pre data-sourcepos="7231:1-7235:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo___</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt;_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7238:1-7242:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo____</span>
+<pre data-sourcepos="7238:1-7242:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo____</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;/em&gt;___&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6418,25 +6418,25 @@ emphasis, rather than inside it:</p>
<p data-sourcepos="7245:1-7246:44" dir="auto">Rule 13 implies that if you want emphasis nested directly inside
emphasis, you must use different delimiters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7248:1-7252:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo**</span>
+<pre data-sourcepos="7248:1-7252:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7255:1-7259:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*_foo_*</span>
+<pre data-sourcepos="7255:1-7259:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*_foo_*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;em&gt;foo&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7262:1-7266:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__</span>
+<pre data-sourcepos="7262:1-7266:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__foo__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7269:1-7273:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_*foo*_</span>
+<pre data-sourcepos="7269:1-7273:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_*foo*_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;em&gt;foo&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6444,13 +6444,13 @@ emphasis, you must use different delimiters:</p>
<p data-sourcepos="7276:1-7277:21" dir="auto">However, strong emphasis within strong emphasis is possible without
switching delimiters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7279:1-7283:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****foo****</span>
+<pre data-sourcepos="7279:1-7283:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">****foo****</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7286:1-7290:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo____</span>
+<pre data-sourcepos="7286:1-7290:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">____foo____</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6458,101 +6458,101 @@ switching delimiters:</p>
<p data-sourcepos="7294:1-7295:11" dir="auto">Rule 13 can be applied to arbitrarily long sequences of
delimiters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7297:1-7301:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">******foo******</span>
+<pre data-sourcepos="7297:1-7301:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">******foo******</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7304:1-7304:8" dir="auto">Rule 14:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7306:1-7310:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo***</span>
+<pre data-sourcepos="7306:1-7310:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">***foo***</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7313:1-7317:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_____foo_____</span>
+<pre data-sourcepos="7313:1-7317:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_____foo_____</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;strong&gt;foo&lt;/strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7320:1-7320:8" dir="auto">Rule 15:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7322:1-7326:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo _bar* baz_</span>
+<pre data-sourcepos="7322:1-7326:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo _bar* baz_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo _bar&lt;/em&gt; baz_&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7329:1-7333:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo __bar *baz bim__ bam*</span>
+<pre data-sourcepos="7329:1-7333:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo __bar *baz bim__ bam*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo &lt;strong&gt;bar *baz bim&lt;/strong&gt; bam&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7336:1-7336:8" dir="auto">Rule 16:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7338:1-7342:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo **bar baz**</span>
+<pre data-sourcepos="7338:1-7342:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**foo **bar baz**</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**foo &lt;strong&gt;bar baz&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7345:1-7349:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo *bar baz*</span>
+<pre data-sourcepos="7345:1-7349:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo *bar baz*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*foo &lt;em&gt;bar baz&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7352:1-7352:8" dir="auto">Rule 17:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7354:1-7358:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[bar*](/url)</span>
+<pre data-sourcepos="7354:1-7358:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[bar*](/url)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*&lt;a href="/url"&gt;bar*&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7361:1-7365:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo [bar_](/url)</span>
+<pre data-sourcepos="7361:1-7365:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_foo [bar_](/url)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;_foo &lt;a href="/url"&gt;bar_&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7368:1-7372:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*&lt;img src="foo" title="*"/&gt;</span>
+<pre data-sourcepos="7368:1-7372:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*&lt;img src="foo" title="*"/&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*&lt;img src="foo" title="*"/&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7375:1-7379:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**&lt;a href="**"&gt;</span>
+<pre data-sourcepos="7375:1-7379:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**&lt;a href="**"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**&lt;a href="**"&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7382:1-7386:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__&lt;a href="__"&gt;</span>
+<pre data-sourcepos="7382:1-7386:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__&lt;a href="__"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__&lt;a href="__"&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7389:1-7393:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*a `*`*</span>
+<pre data-sourcepos="7389:1-7393:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*a `*`*</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;a &lt;code&gt;*&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7396:1-7400:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_a `_`_</span>
+<pre data-sourcepos="7396:1-7400:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">_a `_`_</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;a &lt;code&gt;_&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7403:1-7407:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**a&lt;http://foo.bar/?q=**&gt;</span>
+<pre data-sourcepos="7403:1-7407:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">**a&lt;http://foo.bar/?q=**&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;**a&lt;a href="http://foo.bar/?q=**"&gt;http://foo.bar/?q=**&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7410:1-7414:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__a&lt;http://foo.bar/?q=__&gt;</span>
+<pre data-sourcepos="7410:1-7414:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__a&lt;http://foo.bar/?q=__&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;__a&lt;a href="http://foo.bar/?q=__"&gt;http://foo.bar/?q=__&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6564,7 +6564,7 @@ delimiters:</p>
available.</p>
<p data-sourcepos="7424:1-7424:59">Strikethrough text is any text wrapped in two tildes (<code>~</code>).</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7426:1-7430:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~Hi~~ Hello, world!</span>
+<pre data-sourcepos="7426:1-7430:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">~~Hi~~ Hello, world!</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;del&gt;Hi&lt;/del&gt; Hello, world!&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6572,7 +6572,7 @@ available.</p>
<p data-sourcepos="7432:1-7433:17">As with regular emphasis delimiters, a new paragraph will cause strikethrough
parsing to cease:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7435:1-7442:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This ~~has a</span>
+<pre data-sourcepos="7435:1-7442:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This ~~has a</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">new paragraph~~.</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -6665,27 +6665,27 @@ enclosing delimiters, with backslash-escapes in effect as described
above.</p>
<p data-sourcepos="7519:1-7519:29" dir="auto">Here is a simple inline link:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7521:1-7525:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/uri "title")</span>
+<pre data-sourcepos="7521:1-7525:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/uri "title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri" title="title"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7528:1-7528:25" dir="auto">The title may be omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7530:1-7534:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/uri)</span>
+<pre data-sourcepos="7530:1-7534:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7537:1-7537:50" dir="auto">Both the title and the destination may be omitted:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7539:1-7543:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]()</span>
+<pre data-sourcepos="7539:1-7543:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]()</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href=""&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7546:1-7550:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;&gt;)</span>
+<pre data-sourcepos="7546:1-7550:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href=""&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6693,13 +6693,13 @@ above.</p>
<p data-sourcepos="7552:1-7553:28" dir="auto">The destination can only contain spaces if it is
enclosed in pointy brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7555:1-7559:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/my uri)</span>
+<pre data-sourcepos="7555:1-7559:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/my uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link](/my uri)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7561:1-7565:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;/my uri&gt;)</span>
+<pre data-sourcepos="7561:1-7565:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;/my uri&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/my%20uri"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6707,7 +6707,7 @@ enclosed in pointy brackets:</p>
<p data-sourcepos="7567:1-7568:36" dir="auto">The destination cannot contain line breaks,
even if enclosed in pointy brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7570:1-7576:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo</span>
+<pre data-sourcepos="7570:1-7576:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo</span>
<span id="LC2" class="line" lang="plaintext">bar)</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;[link](foo</span>
@@ -6715,7 +6715,7 @@ even if enclosed in pointy brackets:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7578:1-7584:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo</span>
+<pre data-sourcepos="7578:1-7584:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo</span>
<span id="LC2" class="line" lang="plaintext">bar&gt;)</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;[link](&lt;foo</span>
@@ -6725,14 +6725,14 @@ even if enclosed in pointy brackets:</p>
<p data-sourcepos="7586:1-7587:19" dir="auto">The destination can contain <code>)</code> if it is enclosed
in pointy brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7589:1-7593:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](&lt;b)c&gt;)</span>
+<pre data-sourcepos="7589:1-7593:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](&lt;b)c&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="b)c"&gt;a&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7595:1-7595:53" dir="auto">Pointy brackets that enclose links must be unescaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7597:1-7601:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo\&gt;)</span>
+<pre data-sourcepos="7597:1-7601:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo\&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link](&amp;lt;foo&amp;gt;)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6740,7 +6740,7 @@ in pointy brackets:</p>
<p data-sourcepos="7603:1-7604:24" dir="auto">These are not links, because the opening pointy bracket
is not matched properly:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7606:1-7614:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](&lt;b)c</span>
+<pre data-sourcepos="7606:1-7614:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[a](&lt;b)c</span>
<span id="LC2" class="line" lang="plaintext">[a](&lt;b)c&gt;</span>
<span id="LC3" class="line" lang="plaintext">[a](&lt;b&gt;c)</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -6751,7 +6751,7 @@ is not matched properly:</p>
</div>
<p data-sourcepos="7616:1-7616:55" dir="auto">Parentheses inside the link destination may be escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7618:1-7622:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](\(foo\))</span>
+<pre data-sourcepos="7618:1-7622:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](\(foo\))</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="(foo)"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6759,7 +6759,7 @@ is not matched properly:</p>
<p data-sourcepos="7624:1-7625:9" dir="auto">Any number of parentheses are allowed without escaping, as long as they are
balanced:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7627:1-7631:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo(and(bar)))</span>
+<pre data-sourcepos="7627:1-7631:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo(and(bar)))</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo(and(bar))"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6767,13 +6767,13 @@ balanced:</p>
<p data-sourcepos="7633:1-7634:13" dir="auto">However, if you have unbalanced parentheses, you need to escape or use the
<code>&lt;...&gt;</code> form:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7636:1-7640:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\(and\(bar\))</span>
+<pre data-sourcepos="7636:1-7640:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\(and\(bar\))</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo(and(bar)"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7643:1-7647:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo(and(bar)&gt;)</span>
+<pre data-sourcepos="7643:1-7647:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](&lt;foo(and(bar)&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo(and(bar)"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6781,14 +6781,14 @@ balanced:</p>
<p data-sourcepos="7650:1-7651:12" dir="auto">Parentheses and other symbols can also be escaped, as usual
in Markdown:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7653:1-7657:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\)\:)</span>
+<pre data-sourcepos="7653:1-7657:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\)\:)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo):"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7660:1-7660:52" dir="auto">A link can contain fragment identifiers and queries:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7662:1-7672:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](#fragment)</span>
+<pre data-sourcepos="7662:1-7672:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](#fragment)</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[link](http://example.com#fragment)</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -6802,7 +6802,7 @@ in Markdown:</p>
<p data-sourcepos="7675:1-7676:17" dir="auto">Note that a backslash before a non-escapable character is
just a backslash:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7678:1-7682:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\bar)</span>
+<pre data-sourcepos="7678:1-7682:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo\bar)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo%5Cbar"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6816,7 +6816,7 @@ does not enforce any particular policy for rendering URLs in
HTML or other formats. Renderers may make different decisions
about how to escape or normalize URLs in the output.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7694:1-7698:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo%20b&amp;auml;)</span>
+<pre data-sourcepos="7694:1-7698:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](foo%20b&amp;auml;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo%20b%C3%A4"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6825,14 +6825,14 @@ about how to escape or normalize URLs in the output.</p>
if you try to omit the destination and keep the title, you'll
get unexpected results:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7705:1-7709:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]("title")</span>
+<pre data-sourcepos="7705:1-7709:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]("title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="%22title%22"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7712:1-7712:62" dir="auto">Titles may be in single quotes, double quotes, or parentheses:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7714:1-7722:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title")</span>
+<pre data-sourcepos="7714:1-7722:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title")</span>
<span id="LC2" class="line" lang="plaintext">[link](/url 'title')</span>
<span id="LC3" class="line" lang="plaintext">[link](/url (title))</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -6844,7 +6844,7 @@ get unexpected results:</p>
<p data-sourcepos="7725:1-7726:22" dir="auto">Backslash escapes and entity and numeric character references
may be used in titles:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7728:1-7732:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title \"&amp;quot;")</span>
+<pre data-sourcepos="7728:1-7732:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title \"&amp;quot;")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/url" title="title &amp;quot;&amp;quot;"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6852,21 +6852,21 @@ may be used in titles:</p>
<p data-sourcepos="7735:1-7736:64" dir="auto">Titles must be separated from the link using a [whitespace].
Other [Unicode whitespace] like non-breaking space doesn't work.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7738:1-7742:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title")</span>
+<pre data-sourcepos="7738:1-7742:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/url%C2%A0%22title%22"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7745:1-7745:56" dir="auto">Nested balanced quotes are not allowed without escaping:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7747:1-7751:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title "and" title")</span>
+<pre data-sourcepos="7747:1-7751:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url "title "and" title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link](/url &amp;quot;title &amp;quot;and&amp;quot; title&amp;quot;)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7754:1-7754:67" dir="auto">But it is easy to work around this by using a different quote type:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7756:1-7760:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url 'title "and" title')</span>
+<pre data-sourcepos="7756:1-7760:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link](/url 'title "and" title')</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/url" title="title &amp;quot;and&amp;quot; title"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6887,7 +6887,7 @@ It seems preferable to adopt a simple, rational rule that works
the same way in inline links and link reference definitions.)</p>
<p data-sourcepos="7778:1-7778:57" dir="auto">[Whitespace] is allowed around the destination and title:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7780:1-7785:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]( /uri</span>
+<pre data-sourcepos="7780:1-7785:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link]( /uri</span>
<span id="LC2" class="line" lang="plaintext"> "title" )</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri" title="title"&gt;link&lt;/a&gt;&lt;/p&gt;</span></code></pre>
@@ -6896,7 +6896,7 @@ the same way in inline links and link reference definitions.)</p>
<p data-sourcepos="7788:1-7789:22" dir="auto">But it is not allowed between the link text and the
following parenthesis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7791:1-7795:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link] (/uri)</span>
+<pre data-sourcepos="7791:1-7795:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link] (/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link] (/uri)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6904,57 +6904,57 @@ following parenthesis:</p>
<p data-sourcepos="7798:1-7799:24" dir="auto">The link text may contain balanced brackets, but not unbalanced ones,
unless they are escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7801:1-7805:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [foo [bar]]](/uri)</span>
+<pre data-sourcepos="7801:1-7805:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [foo [bar]]](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri"&gt;link [foo [bar]]&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7808:1-7812:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link] bar](/uri)</span>
+<pre data-sourcepos="7808:1-7812:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link] bar](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link] bar](/uri)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7815:1-7819:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [bar](/uri)</span>
+<pre data-sourcepos="7815:1-7819:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [bar](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[link &lt;a href="/uri"&gt;bar&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7822:1-7826:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link \[bar](/uri)</span>
+<pre data-sourcepos="7822:1-7826:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link \[bar](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri"&gt;link [bar&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7829:1-7829:41" dir="auto">The link text may contain inline content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7831:1-7835:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link *foo **bar** `#`*](/uri)</span>
+<pre data-sourcepos="7831:1-7835:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link *foo **bar** `#`*](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri"&gt;link &lt;em&gt;foo &lt;strong&gt;bar&lt;/strong&gt; &lt;code&gt;#&lt;/code&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7838:1-7842:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[![moon](moon.jpg)](/uri)</span>
+<pre data-sourcepos="7838:1-7842:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[![moon](moon.jpg)](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="/uri"&gt;&lt;img src="moon.jpg" alt="moon" /&gt;&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="7845:1-7845:68" dir="auto">However, links may not contain other links, at any level of nesting.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7847:1-7851:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo [bar](/uri)](/uri)</span>
+<pre data-sourcepos="7847:1-7851:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo [bar](/uri)](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo &lt;a href="/uri"&gt;bar&lt;/a&gt;](/uri)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7854:1-7858:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *[bar [baz](/uri)](/uri)*](/uri)</span>
+<pre data-sourcepos="7854:1-7858:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *[bar [baz](/uri)](/uri)*](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo &lt;em&gt;[bar &lt;a href="/uri"&gt;baz&lt;/a&gt;](/uri)&lt;/em&gt;](/uri)&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7861:1-7865:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![[[foo](uri1)](uri2)](uri3)</span>
+<pre data-sourcepos="7861:1-7865:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![[[foo](uri1)](uri2)](uri3)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="uri3" alt="[foo](uri2)" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6962,13 +6962,13 @@ unless they are escaped:</p>
<p data-sourcepos="7868:1-7869:18" dir="auto">These cases illustrate the precedence of link text grouping over
emphasis grouping:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7871:1-7875:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[foo*](/uri)</span>
+<pre data-sourcepos="7871:1-7875:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[foo*](/uri)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;*&lt;a href="/uri"&gt;foo*&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7878:1-7882:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar](baz*)</span>
+<pre data-sourcepos="7878:1-7882:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar](baz*)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="baz*"&gt;foo *bar&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6976,7 +6976,7 @@ emphasis grouping:</p>
<p data-sourcepos="7885:1-7886:11" dir="auto">Note that brackets that <em>aren't</em> part of links do not take
precedence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7888:1-7892:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [bar* baz]</span>
+<pre data-sourcepos="7888:1-7892:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo [bar* baz]</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo [bar&lt;/em&gt; baz]&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -6984,19 +6984,19 @@ precedence:</p>
<p data-sourcepos="7895:1-7896:33" dir="auto">These cases illustrate the precedence of HTML tags, code spans,
and autolinks over link grouping:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7898:1-7902:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo &lt;bar attr="](baz)"&gt;</span>
+<pre data-sourcepos="7898:1-7902:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo &lt;bar attr="](baz)"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo &lt;bar attr="](baz)"&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7905:1-7909:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo`](/uri)`</span>
+<pre data-sourcepos="7905:1-7909:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo`](/uri)`</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo&lt;code&gt;](/uri)&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7912:1-7916:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo&lt;http://example.com/?search=](uri)&gt;</span>
+<pre data-sourcepos="7912:1-7916:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo&lt;http://example.com/?search=](uri)&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;[foo&lt;a href="http://example.com/?search=%5D(uri)"&gt;http://example.com/?search=](uri)&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7027,7 +7027,7 @@ used as the link's text. The link's URI and title are provided by the
matching [link reference definition].</p>
<p data-sourcepos="7948:1-7948:25" dir="auto">Here is a simple example:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7950:1-7956:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar]</span>
+<pre data-sourcepos="7950:1-7956:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7039,7 +7039,7 @@ matching [link reference definition].</p>
<p data-sourcepos="7962:1-7963:24" dir="auto">The link text may contain balanced brackets, but not unbalanced ones,
unless they are escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7965:1-7971:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [foo [bar]]][ref]</span>
+<pre data-sourcepos="7965:1-7971:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link [foo [bar]]][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7047,7 +7047,7 @@ unless they are escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7974:1-7980:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link \[bar][ref]</span>
+<pre data-sourcepos="7974:1-7980:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link \[bar][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7056,7 +7056,7 @@ unless they are escaped:</p>
</div>
<p data-sourcepos="7983:1-7983:41" dir="auto">The link text may contain inline content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7985:1-7991:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link *foo **bar** `#`*][ref]</span>
+<pre data-sourcepos="7985:1-7991:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[link *foo **bar** `#`*][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7064,7 +7064,7 @@ unless they are escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="7994:1-8000:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[![moon](moon.jpg)][ref]</span>
+<pre data-sourcepos="7994:1-8000:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[![moon](moon.jpg)][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7073,7 +7073,7 @@ unless they are escaped:</p>
</div>
<p data-sourcepos="8003:1-8003:68" dir="auto">However, links may not contain other links, at any level of nesting.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8005:1-8011:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo [bar](/uri)][ref]</span>
+<pre data-sourcepos="8005:1-8011:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo [bar](/uri)][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7081,7 +7081,7 @@ unless they are escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8014:1-8020:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar [baz][ref]*][ref]</span>
+<pre data-sourcepos="8014:1-8020:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar [baz][ref]*][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7093,7 +7093,7 @@ instead of one [full reference link].)</p>
<p data-sourcepos="8026:1-8027:18" dir="auto">The following cases illustrate the precedence of link text grouping over
emphasis grouping:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8029:1-8035:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[foo*][ref]</span>
+<pre data-sourcepos="8029:1-8035:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*[foo*][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7101,7 +7101,7 @@ emphasis grouping:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8038:1-8044:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar][ref]</span>
+<pre data-sourcepos="8038:1-8044:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo *bar][ref]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7111,7 +7111,7 @@ emphasis grouping:</p>
<p data-sourcepos="8047:1-8048:33" dir="auto">These cases illustrate the precedence of HTML tags, code spans,
and autolinks over link grouping:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8050:1-8056:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo &lt;bar attr="][ref]"&gt;</span>
+<pre data-sourcepos="8050:1-8056:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo &lt;bar attr="][ref]"&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7119,7 +7119,7 @@ and autolinks over link grouping:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8059:1-8065:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo`][ref]`</span>
+<pre data-sourcepos="8059:1-8065:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo`][ref]`</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7127,7 +7127,7 @@ and autolinks over link grouping:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8068:1-8074:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo&lt;http://example.com/?search=][ref]&gt;</span>
+<pre data-sourcepos="8068:1-8074:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo&lt;http://example.com/?search=][ref]&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7136,7 +7136,7 @@ and autolinks over link grouping:</p>
</div>
<p data-sourcepos="8077:1-8077:29" dir="auto">Matching is case-insensitive:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8079:1-8085:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][BaR]</span>
+<pre data-sourcepos="8079:1-8085:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][BaR]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7145,7 +7145,7 @@ and autolinks over link grouping:</p>
</div>
<p data-sourcepos="8088:1-8088:26" dir="auto">Unicode case fold is used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8090:1-8096:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Толпой][Толпой] is a Russian word.</span>
+<pre data-sourcepos="8090:1-8096:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Толпой][Толпой] is a Russian word.</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ТОЛПОЙ]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7155,7 +7155,7 @@ and autolinks over link grouping:</p>
<p data-sourcepos="8099:1-8100:33" dir="auto">Consecutive internal [whitespace] is treated as one space for
purposes of determining matching:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8102:1-8109:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo</span>
+<pre data-sourcepos="8102:1-8109:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo</span>
<span id="LC2" class="line" lang="plaintext"> bar]: /url</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[Baz][Foo bar]</span>
@@ -7166,7 +7166,7 @@ purposes of determining matching:</p>
<p data-sourcepos="8112:1-8113:13" dir="auto">No [whitespace] is allowed between the [link text] and the
[link label]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8115:1-8121:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] [bar]</span>
+<pre data-sourcepos="8115:1-8121:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] [bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7174,7 +7174,7 @@ purposes of determining matching:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8124:1-8132:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="8124:1-8132:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext">[bar]</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[bar]: /url "title"</span>
@@ -7194,7 +7194,7 @@ link text and the link label, then in the following we will have
a single reference link, not two shortcut reference links, as
intended:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8146:1-8152:3" class="code highlight js-syntax-highlight language-markdown" lang="markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">[foo]</span>
+<pre data-sourcepos="8146:1-8152:3" lang="markdown" class="code highlight js-syntax-highlight language-markdown" v-pre="true"><code><span id="LC1" class="line" lang="markdown">[foo]</span>
<span id="LC2" class="line" lang="markdown">[bar]</span>
<span id="LC3" class="line" lang="markdown"></span>
<span id="LC4" class="line" lang="markdown"><span class="p">[</span><span class="ss">foo</span><span class="p">]:</span> <span class="sx">/url1</span></span>
@@ -7211,7 +7211,7 @@ unintended results.)</p>
<p data-sourcepos="8162:1-8163:18" dir="auto">When there are multiple matching [link reference definitions],
the first is used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8165:1-8173:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url1</span>
+<pre data-sourcepos="8165:1-8173:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]: /url1</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url2</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -7224,7 +7224,7 @@ the first is used:</p>
inline content. So the following does not match, even though the
labels define equivalent inline content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8180:1-8186:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[bar][foo\!]</span>
+<pre data-sourcepos="8180:1-8186:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[bar][foo\!]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo!]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7234,7 +7234,7 @@ labels define equivalent inline content:</p>
<p data-sourcepos="8189:1-8190:18" dir="auto">[Link labels] cannot contain brackets, unless they are
backslash-escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8192:1-8199:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref[]</span>
+<pre data-sourcepos="8192:1-8199:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref[]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref[]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7243,7 +7243,7 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8202:1-8209:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref[bar]]</span>
+<pre data-sourcepos="8202:1-8209:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref[bar]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref[bar]]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7252,7 +7252,7 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8212:1-8219:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[[foo]]]</span>
+<pre data-sourcepos="8212:1-8219:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[[foo]]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[[[foo]]]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7261,7 +7261,7 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8222:1-8228:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref\[]</span>
+<pre data-sourcepos="8222:1-8228:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][ref\[]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[ref\[]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7270,7 +7270,7 @@ backslash-escaped:</p>
</div>
<p data-sourcepos="8231:1-8231:55" dir="auto">Note that in this example <code>]</code> is not backslash-escaped:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8233:1-8239:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[bar\\]: /uri</span>
+<pre data-sourcepos="8233:1-8239:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[bar\\]: /uri</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[bar\\]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7279,7 +7279,7 @@ backslash-escaped:</p>
</div>
<p data-sourcepos="8242:1-8242:68" dir="auto">A [link label] must contain at least one [non-whitespace character]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8244:1-8251:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[]</span>
+<pre data-sourcepos="8244:1-8251:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[]: /uri</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7288,7 +7288,7 @@ backslash-escaped:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8254:1-8265:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[</span>
+<pre data-sourcepos="8254:1-8265:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[</span>
<span id="LC2" class="line" lang="plaintext"> ]</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[</span>
@@ -7309,7 +7309,7 @@ which are used as the link's text. The link's URI and title are
provided by the matching reference link definition. Thus,
<code>[foo][]</code> is equivalent to <code>[foo][foo]</code>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8277:1-8283:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][]</span>
+<pre data-sourcepos="8277:1-8283:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7317,7 +7317,7 @@ provided by the matching reference link definition. Thus,
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8286:1-8292:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[*foo* bar][]</span>
+<pre data-sourcepos="8286:1-8292:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[*foo* bar][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[*foo* bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7326,7 +7326,7 @@ provided by the matching reference link definition. Thus,
</div>
<p data-sourcepos="8295:1-8295:37" dir="auto">The link labels are case-insensitive:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8297:1-8303:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo][]</span>
+<pre data-sourcepos="8297:1-8303:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7336,7 +7336,7 @@ provided by the matching reference link definition. Thus,
<p data-sourcepos="8307:1-8308:41" dir="auto">As with full reference links, [whitespace] is not
allowed between the two sets of brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8310:1-8318:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] </span>
+<pre data-sourcepos="8310:1-8318:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] </span>
<span id="LC2" class="line" lang="plaintext">[]</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[foo]: /url "title"</span>
@@ -7354,7 +7354,7 @@ which are used as the link's text. The link's URI and title
are provided by the matching link reference definition.
Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8330:1-8336:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
+<pre data-sourcepos="8330:1-8336:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7362,7 +7362,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8339:1-8345:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[*foo* bar]</span>
+<pre data-sourcepos="8339:1-8345:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[*foo* bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[*foo* bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7370,7 +7370,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8348:1-8354:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[*foo* bar]]</span>
+<pre data-sourcepos="8348:1-8354:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[*foo* bar]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[*foo* bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7378,7 +7378,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8357:1-8363:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[bar [foo]</span>
+<pre data-sourcepos="8357:1-8363:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[bar [foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7387,7 +7387,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
</div>
<p data-sourcepos="8366:1-8366:37" dir="auto">The link labels are case-insensitive:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8368:1-8374:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo]</span>
+<pre data-sourcepos="8368:1-8374:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[Foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7396,7 +7396,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
</div>
<p data-sourcepos="8377:1-8377:48" dir="auto">A space after the link text should be preserved:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8379:1-8385:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] bar</span>
+<pre data-sourcepos="8379:1-8385:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo] bar</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7406,7 +7406,7 @@ Thus, <code>[foo]</code> is equivalent to <code>[foo][]</code>.</p>
<p data-sourcepos="8388:1-8389:31" dir="auto">If you just want bracketed text, you can backslash-escape the
opening bracket to avoid links:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8391:1-8397:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[foo]</span>
+<pre data-sourcepos="8391:1-8397:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7416,7 +7416,7 @@ opening bracket to avoid links:</p>
<p data-sourcepos="8400:1-8401:26" dir="auto">Note that this is a link, because a link label ends with the first
following closing bracket:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8403:1-8409:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo*]: /url</span>
+<pre data-sourcepos="8403:1-8409:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo*]: /url</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">*[foo*]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7426,7 +7426,7 @@ following closing bracket:</p>
<p data-sourcepos="8412:1-8413:11" dir="auto">Full and compact references take precedence over shortcut
references:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8415:1-8422:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar]</span>
+<pre data-sourcepos="8415:1-8422:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url1</span>
<span id="LC4" class="line" lang="plaintext">[bar]: /url2</span>
@@ -7435,7 +7435,7 @@ references:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8424:1-8430:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][]</span>
+<pre data-sourcepos="8424:1-8430:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url1</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7444,7 +7444,7 @@ references:</p>
</div>
<p data-sourcepos="8432:1-8432:34" dir="auto">Inline links also take precedence:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8434:1-8440:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]()</span>
+<pre data-sourcepos="8434:1-8440:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo]()</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url1</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7452,7 +7452,7 @@ references:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8442:1-8448:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](not a link)</span>
+<pre data-sourcepos="8442:1-8448:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo](not a link)</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url1</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7462,7 +7462,7 @@ references:</p>
<p data-sourcepos="8450:1-8451:23" dir="auto">In the following case <code>[bar][baz]</code> is parsed as a reference,
<code>[foo]</code> as normal text:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8453:1-8459:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
+<pre data-sourcepos="8453:1-8459:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[baz]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7472,7 +7472,7 @@ references:</p>
<p data-sourcepos="8462:1-8463:19" dir="auto">Here, though, <code>[foo][bar]</code> is parsed as a reference, since
<code>[bar]</code> is defined:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8465:1-8472:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
+<pre data-sourcepos="8465:1-8472:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[baz]: /url1</span>
<span id="LC4" class="line" lang="plaintext">[bar]: /url2</span>
@@ -7483,7 +7483,7 @@ references:</p>
<p data-sourcepos="8475:1-8476:65" dir="auto">Here <code>[foo]</code> is not parsed as a shortcut reference, because it
is followed by a link label (even though <code>[bar]</code> is not defined):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8478:1-8485:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
+<pre data-sourcepos="8478:1-8485:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[foo][bar][baz]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[baz]: /url1</span>
<span id="LC4" class="line" lang="plaintext">[foo]: /url2</span>
@@ -7503,13 +7503,13 @@ An image description has inline elements
as its contents. When an image is rendered to HTML,
this is standardly used as the image's <code>alt</code> attribute.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8501:1-8505:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](/url "title")</span>
+<pre data-sourcepos="8501:1-8505:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](/url "title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="/url" alt="foo" title="title" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8508:1-8514:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*]</span>
+<pre data-sourcepos="8508:1-8514:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo *bar*]: train.jpg "train &amp; tracks"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7517,13 +7517,13 @@ this is standardly used as the image's <code>alt</code> attribute.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8517:1-8521:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo ![bar](/url)](/url2)</span>
+<pre data-sourcepos="8517:1-8521:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo ![bar](/url)](/url2)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="/url2" alt="foo bar" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8524:1-8528:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo [bar](/url)](/url2)</span>
+<pre data-sourcepos="8524:1-8528:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo [bar](/url)](/url2)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="/url2" alt="foo bar" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7534,7 +7534,7 @@ of the [image description] be used. Note that in
the above example, the alt attribute's value is <code>foo bar</code>, not <code>foo [bar](/url)</code> or <code>foo &lt;a href="/url"&gt;bar&lt;/a&gt;</code>. Only the plain string
content is rendered, without formatting.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8538:1-8544:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*][]</span>
+<pre data-sourcepos="8538:1-8544:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo *bar*]: train.jpg "train &amp; tracks"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7542,7 +7542,7 @@ content is rendered, without formatting.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8547:1-8553:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*][foobar]</span>
+<pre data-sourcepos="8547:1-8553:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo *bar*][foobar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[FOOBAR]: train.jpg "train &amp; tracks"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7550,32 +7550,32 @@ content is rendered, without formatting.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8556:1-8560:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](train.jpg)</span>
+<pre data-sourcepos="8556:1-8560:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](train.jpg)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="train.jpg" alt="foo" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8563:1-8567:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">My ![foo bar](/path/to/train.jpg "title" )</span>
+<pre data-sourcepos="8563:1-8567:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">My ![foo bar](/path/to/train.jpg "title" )</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;My &lt;img src="/path/to/train.jpg" alt="foo bar" title="title" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8570:1-8574:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](&lt;url&gt;)</span>
+<pre data-sourcepos="8570:1-8574:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo](&lt;url&gt;)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="url" alt="foo" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8577:1-8581:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![](/url)</span>
+<pre data-sourcepos="8577:1-8581:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![](/url)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;img src="/url" alt="" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8584:1-8584:16" dir="auto">Reference-style:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8586:1-8592:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][bar]</span>
+<pre data-sourcepos="8586:1-8592:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[bar]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7583,7 +7583,7 @@ content is rendered, without formatting.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8595:1-8601:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][bar]</span>
+<pre data-sourcepos="8595:1-8601:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[BAR]: /url</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7592,7 +7592,7 @@ content is rendered, without formatting.</p>
</div>
<p data-sourcepos="8604:1-8604:10" dir="auto">Collapsed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8606:1-8612:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][]</span>
+<pre data-sourcepos="8606:1-8612:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7600,7 +7600,7 @@ content is rendered, without formatting.</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8615:1-8621:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![*foo* bar][]</span>
+<pre data-sourcepos="8615:1-8621:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![*foo* bar][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[*foo* bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7609,7 +7609,7 @@ content is rendered, without formatting.</p>
</div>
<p data-sourcepos="8624:1-8624:32" dir="auto">The labels are case-insensitive:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8626:1-8632:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![Foo][]</span>
+<pre data-sourcepos="8626:1-8632:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![Foo][]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7619,7 +7619,7 @@ content is rendered, without formatting.</p>
<p data-sourcepos="8635:1-8636:33" dir="auto">As with reference links, [whitespace] is not allowed
between the two sets of brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8638:1-8646:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo] </span>
+<pre data-sourcepos="8638:1-8646:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo] </span>
<span id="LC2" class="line" lang="plaintext">[]</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">[foo]: /url "title"</span>
@@ -7630,7 +7630,7 @@ between the two sets of brackets:</p>
</div>
<p data-sourcepos="8649:1-8649:9" dir="auto">Shortcut:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8651:1-8657:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo]</span>
+<pre data-sourcepos="8651:1-8657:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7638,7 +7638,7 @@ between the two sets of brackets:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8660:1-8666:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![*foo* bar]</span>
+<pre data-sourcepos="8660:1-8666:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![*foo* bar]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[*foo* bar]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7647,7 +7647,7 @@ between the two sets of brackets:</p>
</div>
<p data-sourcepos="8669:1-8669:56" dir="auto">Note that link labels cannot contain unescaped brackets:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8671:1-8678:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![[foo]]</span>
+<pre data-sourcepos="8671:1-8678:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![[foo]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[[foo]]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7657,7 +7657,7 @@ between the two sets of brackets:</p>
</div>
<p data-sourcepos="8681:1-8681:37" dir="auto">The link labels are case-insensitive:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8683:1-8689:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![Foo]</span>
+<pre data-sourcepos="8683:1-8689:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![Foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7667,7 +7667,7 @@ between the two sets of brackets:</p>
<p data-sourcepos="8692:1-8693:33" dir="auto">If you just want a literal <code>!</code> followed by bracketed text, you can
backslash-escape the opening <code>[</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8695:1-8701:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">!\[foo]</span>
+<pre data-sourcepos="8695:1-8701:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">!\[foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7677,7 +7677,7 @@ backslash-escape the opening <code>[</code>:</p>
<p data-sourcepos="8704:1-8705:4" dir="auto">If you want a link after a literal <code>!</code>, backslash-escape the
<code>!</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8707:1-8713:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\![foo]</span>
+<pre data-sourcepos="8707:1-8713:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">\![foo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[foo]: /url "title"</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7704,26 +7704,26 @@ by any combination of ASCII letters, digits, or the symbols plus
("+"), period ("."), or hyphen ("-").</p>
<p data-sourcepos="8738:1-8738:30" dir="auto">Here are some valid autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8740:1-8744:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.baz&gt;</span>
+<pre data-sourcepos="8740:1-8744:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.baz&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://foo.bar.baz"&gt;http://foo.bar.baz&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8747:1-8751:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean&gt;</span>
+<pre data-sourcepos="8747:1-8751:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://foo.bar.baz/test?q=hello&amp;amp;id=22&amp;amp;boolean"&gt;http://foo.bar.baz/test?q=hello&amp;amp;id=22&amp;amp;boolean&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8754:1-8758:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;irc://foo.bar:2233/baz&gt;</span>
+<pre data-sourcepos="8754:1-8758:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;irc://foo.bar:2233/baz&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="irc://foo.bar:2233/baz"&gt;irc://foo.bar:2233/baz&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8761:1-8761:23" dir="auto">Uppercase is also fine:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8763:1-8767:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;MAILTO:FOO@BAR.BAZ&gt;</span>
+<pre data-sourcepos="8763:1-8767:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;MAILTO:FOO@BAR.BAZ&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="MAILTO:FOO@BAR.BAZ"&gt;MAILTO:FOO@BAR.BAZ&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7733,39 +7733,39 @@ purposes of this spec are not valid URIs, because their
schemes are not registered or because of other problems
with their syntax:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8775:1-8779:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a+b+c:d&gt;</span>
+<pre data-sourcepos="8775:1-8779:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a+b+c:d&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="a+b+c:d"&gt;a+b+c:d&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8782:1-8786:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;made-up-scheme://foo,bar&gt;</span>
+<pre data-sourcepos="8782:1-8786:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;made-up-scheme://foo,bar&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="made-up-scheme://foo,bar"&gt;made-up-scheme://foo,bar&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8789:1-8793:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://../&gt;</span>
+<pre data-sourcepos="8789:1-8793:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://../&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://../"&gt;http://../&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8796:1-8800:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;localhost:5001/foo&gt;</span>
+<pre data-sourcepos="8796:1-8800:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;localhost:5001/foo&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="localhost:5001/foo"&gt;localhost:5001/foo&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8803:1-8803:36" dir="auto">Spaces are not allowed in autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8805:1-8809:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar/baz bim&gt;</span>
+<pre data-sourcepos="8805:1-8809:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://foo.bar/baz bim&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;http://foo.bar/baz bim&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8812:1-8812:47" dir="auto">Backslash-escapes do not work inside autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8814:1-8818:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://example.com/\[\&gt;</span>
+<pre data-sourcepos="8814:1-8818:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;http://example.com/\[\&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://example.com/%5C%5B%5C"&gt;http://example.com/\[\&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7779,63 +7779,63 @@ for these purposes, is anything that matches
the <a href="https://html.spec.whatwg.org/multipage/forms.html#e-mail-state-(type=email)" rel="nofollow noreferrer noopener" target="_blank">non-normative regex from the HTML5
spec</a>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8831:5-8833:0" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">/^[a-zA-Z0-9.!#$%&amp;'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?</span>
+<pre data-sourcepos="8831:5-8833:0" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">/^[a-zA-Z0-9.!#$%&amp;'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?</span>
<span id="LC2" class="line" lang="plaintext">(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8834:1-8834:28" dir="auto">Examples of email autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8836:1-8840:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo@bar.example.com&gt;</span>
+<pre data-sourcepos="8836:1-8840:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo@bar.example.com&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="mailto:foo@bar.example.com"&gt;foo@bar.example.com&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8843:1-8847:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo+special@Bar.baz-bar0.com&gt;</span>
+<pre data-sourcepos="8843:1-8847:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo+special@Bar.baz-bar0.com&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="mailto:foo+special@Bar.baz-bar0.com"&gt;foo+special@Bar.baz-bar0.com&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8850:1-8850:53" dir="auto">Backslash-escapes do not work inside email autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8852:1-8856:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo\+@bar.example.com&gt;</span>
+<pre data-sourcepos="8852:1-8856:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo\+@bar.example.com&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;foo+@bar.example.com&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8859:1-8859:24" dir="auto">These are not autolinks:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8861:1-8865:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;&gt;</span>
+<pre data-sourcepos="8861:1-8865:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8868:1-8872:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt; http://foo.bar &gt;</span>
+<pre data-sourcepos="8868:1-8872:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt; http://foo.bar &gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt; http://foo.bar &amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8875:1-8879:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;m:abc&gt;</span>
+<pre data-sourcepos="8875:1-8879:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;m:abc&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;m:abc&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8882:1-8886:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo.bar.baz&gt;</span>
+<pre data-sourcepos="8882:1-8886:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;foo.bar.baz&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;foo.bar.baz&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8889:1-8893:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">http://example.com</span>
+<pre data-sourcepos="8889:1-8893:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">http://example.com</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;http://example.com&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8896:1-8900:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo@bar.example.com</span>
+<pre data-sourcepos="8896:1-8900:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo@bar.example.com</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo@bar.example.com&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7859,14 +7859,14 @@ There must be at least one period,
and no underscores may be present in the last two segments of the domain.</p>
<p data-sourcepos="8923:1-8923:49">The scheme <code>http</code> will be inserted automatically:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8925:1-8929:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.commonmark.org</span>
+<pre data-sourcepos="8925:1-8929:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.commonmark.org</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://www.commonmark.org"&gt;www.commonmark.org&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="8931:1-8931:77">After a [valid domain], zero or more non-space non-<code>&lt;</code> characters may follow:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8933:1-8937:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Visit www.commonmark.org/help for more information.</span>
+<pre data-sourcepos="8933:1-8937:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Visit www.commonmark.org/help for more information.</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;Visit &lt;a href="http://www.commonmark.org/help"&gt;www.commonmark.org/help&lt;/a&gt; for more information.&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7876,7 +7876,7 @@ and no underscores may be present in the last two segments of the domain.</p>
will not be considered part of the autolink, though they may be included in the
interior of the link:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8945:1-8952:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Visit www.commonmark.org.</span>
+<pre data-sourcepos="8945:1-8952:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Visit www.commonmark.org.</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">Visit www.commonmark.org/a.b.</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7889,7 +7889,7 @@ of parentheses. If there is a greater number of closing parentheses than
opening ones, we don't consider the unmatched trailing parentheses part of the
autolink, in order to facilitate including an autolink inside a parenthesis:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8959:1-8972:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=Markup+(business)</span>
+<pre data-sourcepos="8959:1-8972:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=Markup+(business)</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">www.google.com/search?q=Markup+(business)))</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -7907,7 +7907,7 @@ autolink, in order to facilitate including an autolink inside a parenthesis:</p>
the only parentheses are in the interior of the autolink, no special rules are
applied:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8978:1-8982:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=(business))+ok</span>
+<pre data-sourcepos="8978:1-8982:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=(business))+ok</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://www.google.com/search?q=(business))+ok"&gt;www.google.com/search?q=(business))+ok&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7917,7 +7917,7 @@ resemble an [entity reference][entity references]; if the preceding text is <cod
followed by one or more alphanumeric characters. If so, it is excluded from
the autolink:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="8989:1-8996:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=commonmark&amp;hl=en</span>
+<pre data-sourcepos="8989:1-8996:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.google.com/search?q=commonmark&amp;hl=en</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">www.google.com/search?q=commonmark&amp;hl;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -7927,7 +7927,7 @@ the autolink:</p>
</div>
<p data-sourcepos="8998:1-8998:33"><code>&lt;</code> immediately ends an autolink.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9000:1-9004:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.commonmark.org/he&lt;lp</span>
+<pre data-sourcepos="9000:1-9004:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">www.commonmark.org/he&lt;lp</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="http://www.commonmark.org/he"&gt;www.commonmark.org/he&lt;/a&gt;&amp;lt;lp&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7937,7 +7937,7 @@ the autolink:</p>
more non-space non-<code>&lt;</code> characters according to
[extended autolink path validation]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9011:1-9021:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">http://commonmark.org</span>
+<pre data-sourcepos="9011:1-9021:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">http://commonmark.org</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">(Visit https://encrypted.google.com/search?q=Markup+(business))</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -7961,14 +7961,14 @@ The last character must not be one of <code>-</code> or <code>_</code>.</li>
</ul>
<p data-sourcepos="9035:1-9035:71">The scheme <code>mailto:</code> will automatically be added to the generated link:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9037:1-9041:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo@bar.baz</span>
+<pre data-sourcepos="9037:1-9041:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo@bar.baz</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="mailto:foo@bar.baz"&gt;foo@bar.baz&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9043:1-9043:44"><code>+</code> can occur before the <code>@</code>, but not after.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9045:1-9049:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">hello@mail+xyz.example isn't valid, but hello+xyz@mail.example is.</span>
+<pre data-sourcepos="9045:1-9049:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">hello@mail+xyz.example isn't valid, but hello+xyz@mail.example is.</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;hello@mail+xyz.example isn't valid, but &lt;a href="mailto:hello+xyz@mail.example"&gt;hello+xyz@mail.example&lt;/a&gt; is.&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -7977,7 +7977,7 @@ The last character must not be one of <code>-</code> or <code>_</code>.</li>
the end of the email address, in which case it will not be considered part of
the address:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9055:1-9068:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a.b-c_d@a.b</span>
+<pre data-sourcepos="9055:1-9068:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">a.b-c_d@a.b</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">a.b-c_d@a.b.</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -8050,21 +8050,21 @@ an [HTML comment], a [processing instruction], a [declaration],
or a [CDATA section].</p>
<p data-sourcepos="9145:1-9145:31" dir="auto">Here are some simple open tags:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9147:1-9151:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a&gt;&lt;bab&gt;&lt;c2c&gt;</span>
+<pre data-sourcepos="9147:1-9151:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a&gt;&lt;bab&gt;&lt;c2c&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a&gt;&lt;bab&gt;&lt;c2c&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9154:1-9154:15" dir="auto">Empty elements:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9156:1-9160:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a/&gt;&lt;b2/&gt;</span>
+<pre data-sourcepos="9156:1-9160:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a/&gt;&lt;b2/&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a/&gt;&lt;b2/&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9163:1-9163:24" dir="auto">[Whitespace] is allowed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9165:1-9171:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a /&gt;&lt;b2</span>
+<pre data-sourcepos="9165:1-9171:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a /&gt;&lt;b2</span>
<span id="LC2" class="line" lang="plaintext">data="foo" &gt;</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;a /&gt;&lt;b2</span>
@@ -8073,7 +8073,7 @@ or a [CDATA section].</p>
</div>
<p data-sourcepos="9174:1-9174:16" dir="auto">With attributes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9176:1-9182:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a foo="bar" bam = 'baz &lt;em&gt;"&lt;/em&gt;'</span>
+<pre data-sourcepos="9176:1-9182:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a foo="bar" bam = 'baz &lt;em&gt;"&lt;/em&gt;'</span>
<span id="LC2" class="line" lang="plaintext">_boolean zoop:33=zoop:33 /&gt;</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;a foo="bar" bam = 'baz &lt;em&gt;"&lt;/em&gt;'</span>
@@ -8082,35 +8082,35 @@ or a [CDATA section].</p>
</div>
<p data-sourcepos="9185:1-9185:29" dir="auto">Custom tag names can be used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9187:1-9191:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo &lt;responsive-image src="foo.jpg" /&gt;</span>
+<pre data-sourcepos="9187:1-9191:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo &lt;responsive-image src="foo.jpg" /&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;Foo &lt;responsive-image src="foo.jpg" /&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9194:1-9194:38" dir="auto">Illegal tag names, not parsed as HTML:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9196:1-9200:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;33&gt; &lt;__&gt;</span>
+<pre data-sourcepos="9196:1-9200:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;33&gt; &lt;__&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;33&amp;gt; &amp;lt;__&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9203:1-9203:24" dir="auto">Illegal attribute names:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9205:1-9209:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a h*#ref="hi"&gt;</span>
+<pre data-sourcepos="9205:1-9209:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a h*#ref="hi"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;a h*#ref=&amp;quot;hi&amp;quot;&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9212:1-9212:25" dir="auto">Illegal attribute values:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9214:1-9218:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="hi'&gt; &lt;a href=hi'&gt;</span>
+<pre data-sourcepos="9214:1-9218:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="hi'&gt; &lt;a href=hi'&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;a href=&amp;quot;hi'&amp;gt; &amp;lt;a href=hi'&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9221:1-9221:21" dir="auto">Illegal [whitespace]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9223:1-9233:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt; a&gt;&lt;</span>
+<pre data-sourcepos="9223:1-9233:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt; a&gt;&lt;</span>
<span id="LC2" class="line" lang="plaintext">foo&gt;&lt;bar/ &gt;</span>
<span id="LC3" class="line" lang="plaintext">&lt;foo bar=baz</span>
<span id="LC4" class="line" lang="plaintext">bim!bop /&gt;</span>
@@ -8123,28 +8123,28 @@ or a [CDATA section].</p>
</div>
<p data-sourcepos="9236:1-9236:21" dir="auto">Missing [whitespace]:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9238:1-9242:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href='bar'title=title&gt;</span>
+<pre data-sourcepos="9238:1-9242:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href='bar'title=title&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;a href='bar'title=title&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9245:1-9245:13" dir="auto">Closing tags:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9247:1-9251:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/a&gt;&lt;/foo &gt;</span>
+<pre data-sourcepos="9247:1-9251:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/a&gt;&lt;/foo &gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;/a&gt;&lt;/foo &gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9254:1-9254:34" dir="auto">Illegal attributes in closing tag:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9256:1-9260:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/a href="foo"&gt;</span>
+<pre data-sourcepos="9256:1-9260:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;/a href="foo"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;/a href=&amp;quot;foo&amp;quot;&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9263:1-9263:9" dir="auto">Comments:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9265:1-9271:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!-- this is a</span>
+<pre data-sourcepos="9265:1-9271:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!-- this is a</span>
<span id="LC2" class="line" lang="plaintext">comment - with hyphen --&gt;</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo &lt;!-- this is a</span>
@@ -8152,14 +8152,14 @@ or a [CDATA section].</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9274:1-9278:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!-- not a comment -- two hyphens --&gt;</span>
+<pre data-sourcepos="9274:1-9278:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!-- not a comment -- two hyphens --&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &amp;lt;!-- not a comment -- two hyphens --&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9281:1-9281:13" dir="auto">Not comments:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9283:1-9290:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!--&gt; foo --&gt;</span>
+<pre data-sourcepos="9283:1-9290:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!--&gt; foo --&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">foo &lt;!-- foo---&gt;</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8169,21 +8169,21 @@ or a [CDATA section].</p>
</div>
<p data-sourcepos="9293:1-9293:24" dir="auto">Processing instructions:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9295:1-9299:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;?php echo $a; ?&gt;</span>
+<pre data-sourcepos="9295:1-9299:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;?php echo $a; ?&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;?php echo $a; ?&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9302:1-9302:13" dir="auto">Declarations:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9304:1-9308:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!ELEMENT br EMPTY&gt;</span>
+<pre data-sourcepos="9304:1-9308:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;!ELEMENT br EMPTY&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;!ELEMENT br EMPTY&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9311:1-9311:15" dir="auto">CDATA sections:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9313:1-9317:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;![CDATA[&gt;&amp;&lt;]]&gt;</span>
+<pre data-sourcepos="9313:1-9317:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;![CDATA[&gt;&amp;&lt;]]&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;![CDATA[&gt;&amp;&lt;]]&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8191,20 +8191,20 @@ or a [CDATA section].</p>
<p data-sourcepos="9320:1-9321:11" dir="auto">Entity and numeric character references are preserved in HTML
attributes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9323:1-9327:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;a href="&amp;ouml;"&gt;</span>
+<pre data-sourcepos="9323:1-9327:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;a href="&amp;ouml;"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;a href="&amp;ouml;"&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9330:1-9330:49" dir="auto">Backslash escapes do not work in HTML attributes:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9332:1-9336:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;a href="\*"&gt;</span>
+<pre data-sourcepos="9332:1-9336:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo &lt;a href="\*"&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo &lt;a href="\*"&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9339:1-9343:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="\""&gt;</span>
+<pre data-sourcepos="9339:1-9343:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="\""&gt;</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&amp;lt;a href=&amp;quot;&amp;quot;&amp;quot;&amp;gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8231,7 +8231,7 @@ unique to them (i.e. nested HTML is interpreted differently), and this is
usually undesireable in the context of other rendered Markdown content.</p>
<p data-sourcepos="9368:1-9368:39">All other HTML tags are left untouched.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9370:1-9381:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;strong&gt; &lt;title&gt; &lt;style&gt; &lt;em&gt;</span>
+<pre data-sourcepos="9370:1-9381:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;strong&gt; &lt;title&gt; &lt;style&gt; &lt;em&gt;</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">&lt;blockquote&gt;</span>
<span id="LC4" class="line" lang="plaintext"> &lt;xmp&gt; is disallowed. &lt;XMP&gt; is also disallowed.</span>
@@ -8251,7 +8251,7 @@ by two or more spaces and does not occur at the end of a block
is parsed as a <a href="@">hard line break</a> (rendered
in HTML as a <code>&lt;br /&gt;</code> tag):</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9392:1-9398:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
+<pre data-sourcepos="9392:1-9398:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -8261,7 +8261,7 @@ in HTML as a <code>&lt;br /&gt;</code> tag):</p>
<p data-sourcepos="9401:1-9402:48" dir="auto">For a more visible alternative, a backslash before the
[line ending] may be used instead of two spaces:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9404:1-9410:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
+<pre data-sourcepos="9404:1-9410:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -8270,7 +8270,7 @@ in HTML as a <code>&lt;br /&gt;</code> tag):</p>
</div>
<p data-sourcepos="9413:1-9413:33" dir="auto">More than two spaces can be used:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9415:1-9421:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
+<pre data-sourcepos="9415:1-9421:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -8279,7 +8279,7 @@ in HTML as a <code>&lt;br /&gt;</code> tag):</p>
</div>
<p data-sourcepos="9424:1-9424:61" dir="auto">Leading spaces at the beginning of the next line are ignored:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9426:1-9432:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
+<pre data-sourcepos="9426:1-9432:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
<span id="LC2" class="line" lang="plaintext"> bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -8287,7 +8287,7 @@ in HTML as a <code>&lt;br /&gt;</code> tag):</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9435:1-9441:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
+<pre data-sourcepos="9435:1-9441:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
<span id="LC2" class="line" lang="plaintext"> bar</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo&lt;br /&gt;</span>
@@ -8297,7 +8297,7 @@ in HTML as a <code>&lt;br /&gt;</code> tag):</p>
<p data-sourcepos="9444:1-9445:26" dir="auto">Line breaks can occur inside emphasis, links, and other constructs
that allow inline content:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9447:1-9453:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo </span>
+<pre data-sourcepos="9447:1-9453:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo </span>
<span id="LC2" class="line" lang="plaintext">bar*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;br /&gt;</span>
@@ -8305,7 +8305,7 @@ that allow inline content:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9456:1-9462:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo\</span>
+<pre data-sourcepos="9456:1-9462:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">*foo\</span>
<span id="LC2" class="line" lang="plaintext">bar*</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;em&gt;foo&lt;br /&gt;</span>
@@ -8314,14 +8314,14 @@ that allow inline content:</p>
</div>
<p data-sourcepos="9465:1-9465:42" dir="auto">Line breaks do not occur inside code spans</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9467:1-9472:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`code </span>
+<pre data-sourcepos="9467:1-9472:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`code </span>
<span id="LC2" class="line" lang="plaintext">span`</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;code span&lt;/code&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9475:1-9480:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`code\</span>
+<pre data-sourcepos="9475:1-9480:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">`code\</span>
<span id="LC2" class="line" lang="plaintext">span`</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;code&gt;code\ span&lt;/code&gt;&lt;/p&gt;</span></code></pre>
@@ -8329,7 +8329,7 @@ that allow inline content:</p>
</div>
<p data-sourcepos="9483:1-9483:13" dir="auto">or HTML tags:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9485:1-9491:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo </span>
+<pre data-sourcepos="9485:1-9491:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo </span>
<span id="LC2" class="line" lang="plaintext">bar"&gt;</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo </span>
@@ -8337,7 +8337,7 @@ that allow inline content:</p>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9494:1-9500:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo\</span>
+<pre data-sourcepos="9494:1-9500:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">&lt;a href="foo\</span>
<span id="LC2" class="line" lang="plaintext">bar"&gt;</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;&lt;a href="foo\</span>
@@ -8348,25 +8348,25 @@ that allow inline content:</p>
Neither syntax for hard line breaks works at the end of a paragraph or
other block element:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9507:1-9511:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
+<pre data-sourcepos="9507:1-9511:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo\</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo\&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9514:1-9518:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
+<pre data-sourcepos="9514:1-9518:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;foo&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9521:1-9525:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo\</span>
+<pre data-sourcepos="9521:1-9525:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo\</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h3&gt;foo\&lt;/h3&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9528:1-9532:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo </span>
+<pre data-sourcepos="9528:1-9532:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">### foo </span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;h3&gt;foo&lt;/h3&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8379,7 +8379,7 @@ preceded by two or more spaces or a backslash is parsed as a
[line ending] or as a space. The result will be the same in
browsers. In the examples here, a [line ending] will be used.)</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9543:1-9549:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
+<pre data-sourcepos="9543:1-9549:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo</span>
<span id="LC2" class="line" lang="plaintext">baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo</span>
@@ -8389,7 +8389,7 @@ browsers. In the examples here, a [line ending] will be used.)</p>
<p data-sourcepos="9552:1-9553:8" dir="auto">Spaces at the end of the line and beginning of the next line are
removed:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9555:1-9561:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
+<pre data-sourcepos="9555:1-9561:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">foo </span>
<span id="LC2" class="line" lang="plaintext"> baz</span>
<span id="LC3" class="line" lang="plaintext">.</span>
<span id="LC4" class="line" lang="plaintext">&lt;p&gt;foo</span>
@@ -8405,20 +8405,20 @@ as hard line breaks.</p>
<p data-sourcepos="9572:1-9573:35" dir="auto">Any characters not given an interpretation by the above rules will
be parsed as plain textual content.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9575:1-9579:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">hello $.;'there</span>
+<pre data-sourcepos="9575:1-9579:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">hello $.;'there</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;hello $.;'there&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9582:1-9586:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo χρῆν</span>
+<pre data-sourcepos="9582:1-9586:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Foo χρῆν</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;Foo χρῆν&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9589:1-9589:39" dir="auto">Internal spaces are preserved verbatim:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9591:1-9595:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Multiple spaces</span>
+<pre data-sourcepos="9591:1-9595:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">Multiple spaces</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;Multiple spaces&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8436,7 +8436,7 @@ examples may be split into multiple top-level headings in the future.</p>
<p data-sourcepos="9610:1-9611:143" dir="auto">See
<a href="https://docs.gitlab.com/ee/user/markdown.html#footnotes" rel="nofollow noreferrer noopener" target="_blank">the footnotes section of the user-facing documentation for GitLab Flavored Markdown</a>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9613:1-9637:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">footnote reference tag [^fortytwo]</span>
+<pre data-sourcepos="9613:1-9637:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">footnote reference tag [^fortytwo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[^fortytwo]: footnote text</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8473,7 +8473,7 @@ GitLab Flavored Markdown specification.</p>
<p data-sourcepos="9651:1-9651:80" dir="auto">The following are some basic examples; more examples may be added in the future.</p>
<p data-sourcepos="9653:1-9653:16" dir="auto">Incomplete task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9655:1-9665:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] incomplete</span>
+<pre data-sourcepos="9655:1-9665:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] incomplete</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -8486,7 +8486,7 @@ GitLab Flavored Markdown specification.</p>
</div>
<p data-sourcepos="9667:1-9667:15" dir="auto">Completed task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9669:1-9679:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] completed</span>
+<pre data-sourcepos="9669:1-9679:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] completed</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -8499,7 +8499,7 @@ GitLab Flavored Markdown specification.</p>
</div>
<p data-sourcepos="9681:1-9681:18" dir="auto">Inapplicable task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9683:1-9695:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
+<pre data-sourcepos="9683:1-9695:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -8515,7 +8515,7 @@ GitLab Flavored Markdown specification.</p>
<p data-sourcepos="9697:1-9698:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code>&lt;del&gt;</code> tag is not applied to the
loose text; it has strikethrough applied with CSS.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9700:1-9719:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
+<pre data-sourcepos="9700:1-9719:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> text in loose list</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8543,7 +8543,7 @@ loose text; it has strikethrough applied with CSS.</p>
This data can be used by static site generators like Jekyll, Hugo, and many other applications.</p>
<p data-sourcepos="9729:1-9729:18" dir="auto">YAML front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9731:1-9741:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
+<pre data-sourcepos="9731:1-9741:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
<span id="LC2" class="line" lang="plaintext">title: YAML front matter</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8556,7 +8556,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="9743:1-9743:18" dir="auto">TOML front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9745:1-9755:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
+<pre data-sourcepos="9745:1-9755:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
<span id="LC2" class="line" lang="plaintext">title: TOML front matter</span>
<span id="LC3" class="line" lang="plaintext">+++</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8569,7 +8569,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="9757:1-9757:18" dir="auto">JSON front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9759:1-9773:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">;;;</span>
+<pre data-sourcepos="9759:1-9773:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">;;;</span>
<span id="LC2" class="line" lang="plaintext">{</span>
<span id="LC3" class="line" lang="plaintext"> "title": "JSON front matter"</span>
<span id="LC4" class="line" lang="plaintext">}</span>
@@ -8586,7 +8586,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="9775:1-9775:66" dir="auto">Front matter blocks should be inserted at the top of the document:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9777:1-9787:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">text</span>
+<pre data-sourcepos="9777:1-9787:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">text</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">title: YAML front matter</span>
@@ -8599,7 +8599,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="9789:1-9789:74" dir="auto">Front matter block delimiters shouldn’t be preceded by space characters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9791:1-9798:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ---</span>
+<pre data-sourcepos="9791:1-9798:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ---</span>
<span id="LC2" class="line" lang="plaintext">title: YAML front matter</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8686,7 +8686,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
</li>
</ul> tag on its own line.
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9809:1-9826:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[TOC]</span>
+<pre data-sourcepos="9809:1-9826:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[TOC]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -8705,7 +8705,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9828:1-9845:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
+<pre data-sourcepos="9828:1-9845:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -8726,7 +8726,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
<p data-sourcepos="9847:1-9848:5" dir="auto">A table of contents is a block element. It should preceded and followed by a blank
line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9850:1-9859:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
+<pre data-sourcepos="9850:1-9859:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext">text</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">text</span>
@@ -8738,7 +8738,7 @@ line.</p>
</div>
<p data-sourcepos="9861:1-9861:60" dir="auto">A table of contents can be indented with up to three spaces.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9863:1-9874:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [[_TOC_]]</span>
+<pre data-sourcepos="9863:1-9874:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8760,14 +8760,14 @@ line.</p>
one of the following supported audio extensions <code>.mp3</code>, <code>.oga</code>, <code>.ogg</code>, <code>.spx</code>, and <code>.wav</code>.
Audio ignore the alternative text part of an image declaration.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9887:1-9891:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![audio](audio.oga "audio title")</span>
+<pre data-sourcepos="9887:1-9891:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![audio](audio.oga "audio title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;audio src="audio.oga" title="audio title"&gt;&lt;/audio&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9893:1-9893:41" dir="auto">Reference definitions work audio as well:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9895:1-9901:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[audio]: audio.oga "audio title"</span>
+<pre data-sourcepos="9895:1-9901:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[audio]: audio.oga "audio title"</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">![audio][audio]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8782,14 +8782,14 @@ Audio ignore the alternative text part of an image declaration.</p>
one of the following supported video extensions <code>.mp4</code>, <code>.m4v</code>, <code>.mov</code>, <code>.webm</code>, and <code>.ogv</code>.
Videos ignore the alternative text part of an image declaration.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9913:1-9917:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![video](video.m4v "video title")</span>
+<pre data-sourcepos="9913:1-9917:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">![video](video.m4v "video title")</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;video src="video.m4v" title="video title"&gt;&lt;/video&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9919:1-9919:41" dir="auto">Reference definitions work video as well:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9921:1-9927:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[video]: video.mov "video title"</span>
+<pre data-sourcepos="9921:1-9927:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[video]: video.mov "video title"</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">![video][video]</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -8803,21 +8803,21 @@ and use different <code>markdown_context_params</code>. They exercise the variou
endpoints via <code>glfm_example_metadata.yml</code>.</p>
<p data-sourcepos="9936:1-9936:75" dir="auto"><code>preview_markdown</code> exercising <code>groups</code> API endpoint and <code>UploadLinkFilter</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9938:1-9942:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[groups-test-file](/uploads/groups-test-file)</span>
+<pre data-sourcepos="9938:1-9942:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[groups-test-file](/uploads/groups-test-file)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="groups-test-file"&gt;groups-test-file&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9944:1-9944:81" dir="auto"><code>preview_markdown</code> exercising <code>projects</code> API endpoint and <code>RepositoryLinkFilter</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9946:1-9950:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[projects-test-file](projects-test-file)</span>
+<pre data-sourcepos="9946:1-9950:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[projects-test-file](projects-test-file)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="projects-test-file"&gt;projects-test-file&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9952:1-9952:83" dir="auto"><code>preview_markdown</code> exercising <code>projects</code> API endpoint and <code>SnippetReferenceFilter</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9954:1-9958:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This project snippet ID reference IS filtered: $88888</span>
+<pre data-sourcepos="9954:1-9958:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This project snippet ID reference IS filtered: $88888</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;This project snippet ID reference IS filtered: $88888&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8827,14 +8827,14 @@ only used by the comment field on personal snippets. It has no unique custom mar
extension behavior, and specifically does not render snippet references via
<code>SnippetReferenceFilter</code>, even if the ID is valid.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9965:1-9969:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This personal snippet ID reference is not filtered: $99999</span>
+<pre data-sourcepos="9965:1-9969:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This personal snippet ID reference is not filtered: $99999</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;This personal snippet ID reference is not filtered: $99999&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
</div>
<p data-sourcepos="9971:1-9971:80" dir="auto"><code>preview_markdown</code> exercising project <code>wikis</code> API endpoint and <code>WikiLinkFilter</code>:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9973:1-9977:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[project-wikis-test-file](project-wikis-test-file)</span>
+<pre data-sourcepos="9973:1-9977:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[project-wikis-test-file](project-wikis-test-file)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="project-wikis-test-file"&gt;project-wikis-test-file&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
@@ -8842,7 +8842,7 @@ extension behavior, and specifically does not render snippet references via
<p data-sourcepos="9979:1-9980:63" dir="auto"><code>preview_markdown</code> exercising group <code>wikis</code> API endpoint and <code>WikiLinkFilter</code>. This example
also requires an EE license enabling the <code>group_wikis</code> feature:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="9982:1-9986:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[group-wikis-test-file](group-wikis-test-file)</span>
+<pre data-sourcepos="9982:1-9986:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[group-wikis-test-file](group-wikis-test-file)</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;a href="group-wikis-test-file"&gt;group-wikis-test-file&lt;/a&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>
diff --git a/glfm_specification/output_spec/spec.html b/glfm_specification/output_spec/spec.html
index 3a7b08e0a5e..04838465f0f 100644
--- a/glfm_specification/output_spec/spec.html
+++ b/glfm_specification/output_spec/spec.html
@@ -1,5 +1,5 @@
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
+<pre data-sourcepos="1:1-4:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="s">alpha</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -20,7 +20,7 @@ examples may be split into multiple top-level headings in the future.</p>
<p data-sourcepos="22:1-23:143" dir="auto">See
<a href="https://docs.gitlab.com/ee/user/markdown.html#footnotes" rel="nofollow noreferrer noopener" target="_blank">the footnotes section of the user-facing documentation for GitLab Flavored Markdown</a>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="25:1-49:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">footnote reference tag [^fortytwo]</span>
+<pre data-sourcepos="25:1-49:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">footnote reference tag [^fortytwo]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">[^fortytwo]: footnote text</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -57,7 +57,7 @@ GitLab Flavored Markdown specification.</p>
<p data-sourcepos="63:1-63:80" dir="auto">The following are some basic examples; more examples may be added in the future.</p>
<p data-sourcepos="65:1-65:16" dir="auto">Incomplete task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="67:1-77:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] incomplete</span>
+<pre data-sourcepos="67:1-77:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [ ] incomplete</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -70,7 +70,7 @@ GitLab Flavored Markdown specification.</p>
</div>
<p data-sourcepos="79:1-79:15" dir="auto">Completed task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="81:1-91:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] completed</span>
+<pre data-sourcepos="81:1-91:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [x] completed</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -83,7 +83,7 @@ GitLab Flavored Markdown specification.</p>
</div>
<p data-sourcepos="93:1-93:18" dir="auto">Inapplicable task:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="95:1-107:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
+<pre data-sourcepos="95:1-107:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;ul&gt;</span>
<span id="LC4" class="line" lang="plaintext">&lt;li&gt;</span>
@@ -99,7 +99,7 @@ GitLab Flavored Markdown specification.</p>
<p data-sourcepos="109:1-110:50" dir="auto">Inapplicable task in a "loose" list. Note that the <code>&lt;del&gt;</code> tag is not applied to the
loose text; it has strikethrough applied with CSS.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="112:1-131:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
+<pre data-sourcepos="112:1-131:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">- [~] inapplicable</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"> text in loose list</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -127,7 +127,7 @@ loose text; it has strikethrough applied with CSS.</p>
This data can be used by static site generators like Jekyll, Hugo, and many other applications.</p>
<p data-sourcepos="141:1-141:18" dir="auto">YAML front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="143:1-153:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
+<pre data-sourcepos="143:1-153:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">---</span>
<span id="LC2" class="line" lang="plaintext">title: YAML front matter</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -140,7 +140,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="155:1-155:18" dir="auto">TOML front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="157:1-167:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
+<pre data-sourcepos="157:1-167:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">+++</span>
<span id="LC2" class="line" lang="plaintext">title: TOML front matter</span>
<span id="LC3" class="line" lang="plaintext">+++</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -153,7 +153,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="169:1-169:18" dir="auto">JSON front matter:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="171:1-185:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">;;;</span>
+<pre data-sourcepos="171:1-185:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">;;;</span>
<span id="LC2" class="line" lang="plaintext">{</span>
<span id="LC3" class="line" lang="plaintext"> "title": "JSON front matter"</span>
<span id="LC4" class="line" lang="plaintext">}</span>
@@ -170,7 +170,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="187:1-187:66" dir="auto">Front matter blocks should be inserted at the top of the document:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="189:1-199:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">text</span>
+<pre data-sourcepos="189:1-199:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">text</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">title: YAML front matter</span>
@@ -183,7 +183,7 @@ This data can be used by static site generators like Jekyll, Hugo, and many othe
</div>
<p data-sourcepos="201:1-201:74" dir="auto">Front matter block delimiters shouldn’t be preceded by space characters:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="203:1-210:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ---</span>
+<pre data-sourcepos="203:1-210:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> ---</span>
<span id="LC2" class="line" lang="plaintext">title: YAML front matter</span>
<span id="LC3" class="line" lang="plaintext">---</span>
<span id="LC4" class="line" lang="plaintext">.</span>
@@ -209,7 +209,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
</li>
</ul> tag on its own line.
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="221:1-238:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[TOC]</span>
+<pre data-sourcepos="221:1-238:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[TOC]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -228,7 +228,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
<copy-code></copy-code>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="240:1-257:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
+<pre data-sourcepos="240:1-257:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext"></span>
@@ -249,7 +249,7 @@ Add either the <code>[[_TOC_]]</code> or </p><ul class="section-nav">
<p data-sourcepos="259:1-260:5" dir="auto">A table of contents is a block element. It should preceded and followed by a blank
line.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="262:1-271:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
+<pre data-sourcepos="262:1-271:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">[[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext">text</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">text</span>
@@ -261,7 +261,7 @@ line.</p>
</div>
<p data-sourcepos="273:1-273:60" dir="auto">A table of contents can be indented with up to three spaces.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
-<pre data-sourcepos="275:1-286:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [[_TOC_]]</span>
+<pre data-sourcepos="275:1-286:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> [[_TOC_]]</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext"># Heading 1</span>
<span id="LC4" class="line" lang="plaintext">.</span>
diff --git a/lib/banzai/filter/math_filter.rb b/lib/banzai/filter/math_filter.rb
index ca13a8d6474..ac009008040 100644
--- a/lib/banzai/filter/math_filter.rb
+++ b/lib/banzai/filter/math_filter.rb
@@ -10,7 +10,7 @@ module Banzai
# HTML filter that implements our math syntax, adding class="code math"
#
class MathFilter < HTML::Pipeline::Filter
- CSS_MATH = 'pre.code.language-math'
+ CSS_MATH = 'pre[lang="math"] > code'
XPATH_MATH = Gitlab::Utils::Nokogiri.css_to_xpath(CSS_MATH).freeze
CSS_CODE = 'code'
XPATH_CODE = Gitlab::Utils::Nokogiri.css_to_xpath(CSS_CODE).freeze
@@ -125,9 +125,10 @@ module Banzai
# corresponds to the "```math...```" syntax
def process_math_codeblock
- doc.xpath(XPATH_MATH).each do |el|
- el[STYLE_ATTRIBUTE] = 'display'
- el[:class] += " #{TAG_CLASS}"
+ doc.xpath(XPATH_MATH).each do |node|
+ pre_node = node.parent
+ pre_node[STYLE_ATTRIBUTE] = 'display'
+ pre_node[:class] = TAG_CLASS
end
end
diff --git a/lib/banzai/filter/syntax_highlight_filter.rb b/lib/banzai/filter/syntax_highlight_filter.rb
index 7837959257b..b68f2dbdcad 100644
--- a/lib/banzai/filter/syntax_highlight_filter.rb
+++ b/lib/banzai/filter/syntax_highlight_filter.rb
@@ -14,8 +14,9 @@ module Banzai
LANG_PARAMS_DELIMITER = ':'
LANG_PARAMS_ATTR = 'data-lang-params'
+ CSS_CLASSES = 'code highlight js-syntax-highlight'
- CSS = 'pre:not([data-math-style]):not([data-mermaid-style]):not([data-kroki-style]) > code:only-child'
+ CSS = 'pre:not([data-kroki-style]) > code:only-child'
XPATH = Gitlab::Utils::Nokogiri.css_to_xpath(CSS).freeze
def call
@@ -27,9 +28,7 @@ module Banzai
end
def highlight_node(node)
- css_classes = +'code highlight js-syntax-highlight'
lang, lang_params = parse_lang_params(node)
- sourcepos = node.parent.attr('data-sourcepos')
retried = false
if use_rouge?(lang)
@@ -42,7 +41,6 @@ module Banzai
begin
code = Rouge::Formatters::HTMLGitlab.format(lex(lexer, node.text), tag: language)
- css_classes << " language-#{language}" if language
rescue StandardError
# Gracefully handle syntax highlighter bugs/errors to ensure users can
# still access an issue/comment/etc. First, retry with the plain text
@@ -57,16 +55,26 @@ module Banzai
retry
end
- sourcepos_attr = sourcepos ? "data-sourcepos=\"#{escape_once(sourcepos)}\"" : ''
+ # maintain existing attributes already added. e.g math and mermaid nodes
+ node.children = code
+ pre_node = node.parent
- highlighted = %(<div class="gl-relative markdown-code-block js-markdown-code"><pre #{sourcepos_attr} class="#{css_classes}"
- lang="#{language}"
- #{lang != language ? "data-canonical-lang=\"#{escape_once(lang)}\"" : ""}
- #{lang_params}
- v-pre="true"><code>#{code}</code></pre><copy-code></copy-code></div>)
+ # ensure there are no extra children, such as a text node that might
+ # show up from an XSS attack
+ pre_node.children = node
+
+ pre_node[:lang] = language
+ pre_node.add_class(CSS_CLASSES)
+ pre_node.add_class("language-#{language}") if language
+ pre_node.set_attribute('data-canonical-lang', escape_once(lang)) if lang != language
+ pre_node.set_attribute(LANG_PARAMS_ATTR, escape_once(lang_params)) if lang_params.present?
+ pre_node.set_attribute('v-pre', 'true')
+ pre_node.remove_attribute('data-meta')
+
+ highlighted = %(<div class="gl-relative markdown-code-block js-markdown-code">#{pre_node.to_html}<copy-code></copy-code></div>)
# Extracted to a method to measure it
- replace_parent_pre_element(node, highlighted)
+ replace_pre_element(pre_node, highlighted)
end
private
@@ -94,9 +102,8 @@ module Banzai
language, language_params = language.split(LANG_PARAMS_DELIMITER, 2)
language_params = [node.attr('data-meta'), language_params].compact.join(' ')
- formatted_language_params = format_language_params(language_params)
- [language, formatted_language_params]
+ [language, language_params]
end
# Separate method so it can be instrumented.
@@ -108,20 +115,14 @@ module Banzai
(Rouge::Lexer.find(language) || Rouge::Lexers::PlainText).new
end
- # Replace the parent `pre` element with the entire highlighted block
- def replace_parent_pre_element(node, highlighted)
- node.parent.replace(highlighted)
+ # Replace the `pre` element with the entire highlighted block
+ def replace_pre_element(pre_node, highlighted)
+ pre_node.replace(highlighted)
end
def use_rouge?(language)
(%w(math suggestion) + ::AsciidoctorExtensions::Kroki::SUPPORTED_DIAGRAM_NAMES).exclude?(language)
end
-
- def format_language_params(language_params)
- return if language_params.blank?
-
- %(#{LANG_PARAMS_ATTR}="#{escape_once(language_params)}")
- end
end
end
end
diff --git a/lib/banzai/pipeline/ascii_doc_pipeline.rb b/lib/banzai/pipeline/ascii_doc_pipeline.rb
index b652d8d89cf..afd5802de22 100644
--- a/lib/banzai/pipeline/ascii_doc_pipeline.rb
+++ b/lib/banzai/pipeline/ascii_doc_pipeline.rb
@@ -7,13 +7,13 @@ module Banzai
FilterArray[
Filter::AsciiDocSanitizationFilter,
Filter::AssetProxyFilter,
- Filter::SyntaxHighlightFilter,
Filter::ExternalLinkFilter,
Filter::PlantumlFilter,
Filter::ColorFilter,
Filter::ImageLazyLoadFilter,
Filter::ImageLinkFilter,
Filter::WikiLinkFilter,
+ Filter::SyntaxHighlightFilter,
Filter::AsciiDocPostProcessingFilter
]
end
diff --git a/lib/banzai/pipeline/gfm_pipeline.rb b/lib/banzai/pipeline/gfm_pipeline.rb
index 5e7c2f64c92..9b73e413d44 100644
--- a/lib/banzai/pipeline/gfm_pipeline.rb
+++ b/lib/banzai/pipeline/gfm_pipeline.rb
@@ -17,7 +17,6 @@ module Banzai
Filter::SanitizationFilter,
Filter::KrokiFilter,
Filter::AssetProxyFilter,
- Filter::SyntaxHighlightFilter,
Filter::MathFilter,
Filter::ColorFilter,
Filter::MermaidFilter,
@@ -37,7 +36,8 @@ module Banzai
Filter::CustomEmojiFilter,
Filter::TaskListFilter,
Filter::InlineDiffFilter,
- Filter::SetDirectionFilter
+ Filter::SetDirectionFilter,
+ Filter::SyntaxHighlightFilter
]
end
diff --git a/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml
index d1018f1e769..fcf2ac7de7a 100644
--- a/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml
@@ -1,4 +1,4 @@
-# Read more about the feature here: https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html
+# Read more about the feature here: https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html
browser_performance:
stage: performance
diff --git a/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml
index bb7e020b159..04b7dacf2dd 100644
--- a/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml
@@ -1,4 +1,4 @@
-# Read more about the feature here: https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html
+# Read more about the feature here: https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html
browser_performance:
stage: performance
diff --git a/lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml b/lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml
index 2349c37c130..c3113ffebf3 100644
--- a/lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml
@@ -3,7 +3,7 @@
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Browser-Performance.gitlab-ci.yml
-# Read more about the feature here: https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html
+# Read more about the feature here: https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html
stages:
- build
diff --git a/lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml
index 73ab5fcbe44..c9f0c173692 100644
--- a/lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml
@@ -3,7 +3,7 @@
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Browser-Performance.latest.gitlab-ci.yml
-# Read more about the feature here: https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html
+# Read more about the feature here: https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html
stages:
- build
diff --git a/lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml b/lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml
index 53fabcfc721..cee8e3345c8 100644
--- a/lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml
@@ -3,7 +3,7 @@
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Load-Performance-Testing.gitlab-ci.yml
-# Read more about the feature here: https://docs.gitlab.com/ee/user/project/merge_requests/load_performance_testing.html
+# Read more about the feature here: https://docs.gitlab.com/ee/ci/testing/code_quality.html
stages:
- build
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index b81b725b5cf..847a020aeba 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -24783,6 +24783,9 @@ msgstr ""
msgid "March"
msgstr ""
+msgid "MardownDrawer|Could not fetch help contents."
+msgstr ""
+
msgid "Mark as done"
msgstr ""
@@ -39618,6 +39621,9 @@ msgstr ""
msgid "Switch branch/tag"
msgstr ""
+msgid "Switch editors"
+msgstr ""
+
msgid "Switch to GitLab Next"
msgstr ""
@@ -45286,6 +45292,9 @@ msgstr ""
msgid "WebAuthn only works with HTTPS-enabled websites. Contact your administrator for more details."
msgstr ""
+msgid "WebIDE|Are you sure you want to switch editors? You will lose any unsaved changes."
+msgstr ""
+
msgid "WebIDE|Fork project"
msgstr ""
@@ -45301,12 +45310,24 @@ msgstr ""
msgid "WebIDE|Quickly and easily edit multiple files in your project. Press . to open"
msgstr ""
+msgid "WebIDE|Ready for something new?"
+msgstr ""
+
+msgid "WebIDE|Something went wrong while updating the user preferences. Please see developer console for details."
+msgstr ""
+
+msgid "WebIDE|Switch to new Web IDE"
+msgstr ""
+
msgid "WebIDE|This project does not accept unsigned commits."
msgstr ""
msgid "WebIDE|This project does not accept unsigned commits. You can’t commit changes through the Web IDE."
msgstr ""
+msgid "WebIDE|You are invited to experience the new Web IDE."
+msgstr ""
+
msgid "WebIDE|You can’t edit files directly in this project. Fork this project and submit a merge request with your changes."
msgstr ""
diff --git a/spec/features/ide_spec.rb b/spec/features/ide_spec.rb
index c7c740c2293..1f6d34efc0f 100644
--- a/spec/features/ide_spec.rb
+++ b/spec/features/ide_spec.rb
@@ -3,47 +3,90 @@
require 'spec_helper'
RSpec.describe 'IDE', :js do
- describe 'sub-groups' do
- let(:ide_iframe_selector) { '#ide iframe' }
- let(:user) { create(:user) }
- let(:group) { create(:group) }
- let(:subgroup) { create(:group, parent: group) }
- let(:subgroup_project) { create(:project, :repository, namespace: subgroup) }
+ include WebIdeSpecHelpers
+
+ let_it_be(:ide_iframe_selector) { '#ide iframe' }
+ let_it_be(:normal_project) { create(:project, :repository) }
+
+ let(:project) { normal_project }
+ let(:vscode_ff) { false }
+ let(:user) { create(:user) }
+
+ before do
+ project.add_maintainer(user)
+ stub_feature_flags(vscode_web_ide: vscode_ff)
+
+ sign_in(user)
+ end
+
+ shared_examples "legacy Web IDE" do
+ it 'loads legacy Web IDE', :aggregate_failures do
+ expect(page).to have_selector('.context-header', text: project.name)
+
+ # Assert new Web IDE is not loaded
+ expect(page).not_to have_selector(ide_iframe_selector)
+ end
+ end
+
+ shared_examples "new Web IDE" do
+ it 'loads new Web IDE', :aggregate_failures do
+ expect(page).not_to have_selector('.context-header')
+
+ iframe = find(ide_iframe_selector)
+
+ page.within_frame(iframe) do
+ expect(page).to have_selector('.title', text: project.name.upcase)
+ end
+ end
+ end
+ context 'with vscode feature flag off' do
before do
- stub_feature_flags(vscode_web_ide: vscode_ff)
- subgroup_project.add_maintainer(user)
- sign_in(user)
+ ide_visit(project)
+ end
- visit project_path(subgroup_project)
+ it_behaves_like 'legacy Web IDE'
- click_link('Web IDE')
+ it 'does not show switch button' do
+ expect(page).not_to have_button('Switch to new Web IDE')
+ end
+ end
+
+ context 'with vscode feature flag on and use_legacy_web_ide=true' do
+ let(:vscode_ff) { true }
+ let(:user) { create(:user, use_legacy_web_ide: true) }
- wait_for_requests
+ before do
+ ide_visit(project)
end
- context 'with vscode feature flag on' do
- let(:vscode_ff) { true }
+ it_behaves_like 'legacy Web IDE'
- it 'loads project in Web IDE' do
- iframe = find(ide_iframe_selector)
+ describe 'when user switches to new Web IDE' do
+ before do
+ click_button('Switch to new Web IDE')
- page.within_frame(iframe) do
- expect(page).to have_selector('.title', text: subgroup_project.name.upcase)
+ # Confirm modal
+ page.within('#confirmationModal') do
+ click_button('Switch editors')
end
end
+
+ it_behaves_like 'new Web IDE'
end
+ end
- context 'with vscode feature flag off' do
- let(:vscode_ff) { false }
+ describe 'sub-groups' do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:subgroup) { create(:group, parent: group) }
+ let_it_be(:subgroup_project) { create(:project, :repository, namespace: subgroup) }
- it 'loads project in legacy Web IDE' do
- expect(page).to have_selector('.context-header', text: subgroup_project.name)
- end
+ let(:project) { subgroup_project }
- it 'does not load new Web IDE' do
- expect(page).not_to have_selector(ide_iframe_selector)
- end
+ before do
+ ide_visit(project)
end
+
+ it_behaves_like 'legacy Web IDE'
end
end
diff --git a/spec/fixtures/markdown/markdown_golden_master_examples.yml b/spec/fixtures/markdown/markdown_golden_master_examples.yml
index 6a1e75348cf..0c7e6ab5cd2 100644
--- a/spec/fixtures/markdown/markdown_golden_master_examples.yml
+++ b/spec/fixtures/markdown/markdown_golden_master_examples.yml
@@ -297,7 +297,7 @@
```
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-javascript" lang="javascript" v-pre="true"><code><span id="LC1" class="line" lang="javascript"> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">hello world</span><span class="dl">'</span><span class="p">)</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="javascript" class="code highlight js-syntax-highlight language-javascript" v-pre="true"><code><span id="LC1" class="line" lang="javascript"> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">hello world</span><span class="dl">'</span><span class="p">)</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -308,7 +308,7 @@
```
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> plaintext</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> plaintext</span></code></pre>
<copy-code></copy-code>
</div>
@@ -319,7 +319,7 @@
```
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="foobar" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> custom_language = &gt;&gt; this &lt;&lt;</span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="foobar" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> custom_language = &gt;&gt; this &lt;&lt;</span></code></pre>
<copy-code></copy-code>
</div>
@@ -531,7 +531,7 @@
;;;
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-5:3" class="code highlight js-syntax-highlight language-json" lang="json" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="json"><span class="p">{</span></span>
+ <pre data-sourcepos="1:1-5:3" lang="json" class="code highlight js-syntax-highlight language-json" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="json"><span class="p">{</span></span>
<span id="LC2" class="line" lang="json"><span class="w"> </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Page title"</span></span>
<span id="LC3" class="line" lang="json"><span class="p">}</span></span></code></pre>
<copy-code></copy-code>
@@ -544,7 +544,7 @@
+++
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-toml" lang="toml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="toml"><span class="py">title</span> <span class="p">=</span> <span class="s">"Page title"</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="toml" class="code highlight js-syntax-highlight language-toml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="toml"><span class="py">title</span> <span class="p">=</span> <span class="s">"Page title"</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -555,7 +555,7 @@
---
html: |-
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">Page title</span></span></code></pre>
+ <pre data-sourcepos="1:1-3:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">Page title</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -690,7 +690,7 @@
<p data-sourcepos="1:1-1:36" dir="auto">This math is inline <code class="code math js-render-math" data-math-style="inline">a^2+b^2=c^2</code>.</p>
<p data-sourcepos="3:1-3:27" dir="auto">This is on a separate line:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="5:1-7:3" class="code highlight js-syntax-highlight language-math js-render-math" lang="math" v-pre="true" data-math-style="display"><code><span id="LC1" class="line" lang="math">a^2+b^2=c^2</span></code></pre>
+ <pre data-sourcepos="5:1-7:3" lang="math" data-math-style="display" class="js-render-math code highlight js-syntax-highlight language-math" v-pre="true"><code><span id="LC1" class="line" lang="math">a^2+b^2=c^2</span></code></pre>
<copy-code></copy-code>
</div>
diff --git a/spec/frontend/ide/components/ide_spec.js b/spec/frontend/ide/components/ide_spec.js
index 48c670757a2..a575f428a69 100644
--- a/spec/frontend/ide/components/ide_spec.js
+++ b/spec/frontend/ide/components/ide_spec.js
@@ -3,9 +3,11 @@ import Vue from 'vue';
import Vuex from 'vuex';
import waitForPromises from 'helpers/wait_for_promises';
import { stubPerformanceWebAPI } from 'helpers/performance';
+import { __ } from '~/locale';
import CannotPushCodeAlert from '~/ide/components/cannot_push_code_alert.vue';
import ErrorMessage from '~/ide/components/error_message.vue';
import Ide from '~/ide/components/ide.vue';
+import eventHub from '~/ide/eventhub';
import { MSG_CANNOT_PUSH_CODE_GO_TO_FORK, MSG_GO_TO_FORK } from '~/ide/messages';
import { createStore } from '~/ide/stores';
import { file } from '../helpers';
@@ -14,6 +16,7 @@ import { projectData } from '../mock_data';
Vue.use(Vuex);
const TEST_FORK_IDE_PATH = '/test/ide/path';
+const MSG_ARE_YOU_SURE = __('Are you sure you want to lose unsaved changes?');
describe('WebIDE', () => {
const emptyProjData = { ...projectData, empty_repo: true, branches: {} };
@@ -40,6 +43,8 @@ describe('WebIDE', () => {
const findAlert = () => wrapper.findComponent(CannotPushCodeAlert);
+ const callOnBeforeUnload = (e = {}) => window.onbeforeunload(e);
+
beforeEach(() => {
stubPerformanceWebAPI();
@@ -49,6 +54,7 @@ describe('WebIDE', () => {
afterEach(() => {
wrapper.destroy();
wrapper = null;
+ window.onbeforeunload = null;
});
describe('ide component, empty repo', () => {
@@ -90,7 +96,8 @@ describe('WebIDE', () => {
describe('onBeforeUnload', () => {
it('returns undefined when no staged files or changed files', () => {
createComponent();
- expect(wrapper.vm.onBeforeUnload()).toBe(undefined);
+
+ expect(callOnBeforeUnload()).toBe(undefined);
});
it('returns warning text when their are changed files', () => {
@@ -100,7 +107,10 @@ describe('WebIDE', () => {
},
});
- expect(wrapper.vm.onBeforeUnload()).toBe('Are you sure you want to lose unsaved changes?');
+ const e = {};
+
+ expect(callOnBeforeUnload(e)).toBe(MSG_ARE_YOU_SURE);
+ expect(e.returnValue).toBe(MSG_ARE_YOU_SURE);
});
it('returns warning text when their are staged files', () => {
@@ -110,20 +120,27 @@ describe('WebIDE', () => {
},
});
- expect(wrapper.vm.onBeforeUnload()).toBe('Are you sure you want to lose unsaved changes?');
+ const e = {};
+
+ expect(callOnBeforeUnload(e)).toBe(MSG_ARE_YOU_SURE);
+ expect(e.returnValue).toBe(MSG_ARE_YOU_SURE);
});
- it('updates event object', () => {
- const event = {};
+ it('returns undefined once after "skip-beforeunload" was emitted', () => {
createComponent({
state: {
stagedFiles: [file()],
},
});
- wrapper.vm.onBeforeUnload(event);
+ eventHub.$emit('skip-beforeunload');
+ const e = {};
+
+ expect(callOnBeforeUnload()).toBe(undefined);
+ expect(e.returnValue).toBe(undefined);
- expect(event.returnValue).toBe('Are you sure you want to lose unsaved changes?');
+ expect(callOnBeforeUnload(e)).toBe(MSG_ARE_YOU_SURE);
+ expect(e.returnValue).toBe(MSG_ARE_YOU_SURE);
});
});
diff --git a/spec/frontend/ide/components/panes/collapsible_sidebar_spec.js b/spec/frontend/ide/components/panes/collapsible_sidebar_spec.js
index 1d38231a767..e92f843ae6e 100644
--- a/spec/frontend/ide/components/panes/collapsible_sidebar_spec.js
+++ b/spec/frontend/ide/components/panes/collapsible_sidebar_spec.js
@@ -1,5 +1,5 @@
import { shallowMount } from '@vue/test-utils';
-import Vue from 'vue';
+import Vue, { nextTick } from 'vue';
import Vuex from 'vuex';
import IdeSidebarNav from '~/ide/components/ide_sidebar_nav.vue';
import CollapsibleSidebar from '~/ide/components/panes/collapsible_sidebar.vue';
@@ -127,5 +127,29 @@ describe('ide/components/panes/collapsible_sidebar.vue', () => {
});
});
});
+
+ describe('with initOpenView that does not exist', () => {
+ beforeEach(async () => {
+ createComponent({ extensionTabs, initOpenView: 'does-not-exist' });
+
+ await nextTick();
+ });
+
+ it('nothing is dispatched', () => {
+ expect(store.dispatch).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('with initOpenView that does exist', () => {
+ beforeEach(async () => {
+ createComponent({ extensionTabs, initOpenView: fakeView.name });
+
+ await nextTick();
+ });
+
+ it('dispatches open with view on create', () => {
+ expect(store.dispatch).toHaveBeenCalledWith('rightPane/open', fakeView);
+ });
+ });
});
});
diff --git a/spec/frontend/ide/components/panes/right_spec.js b/spec/frontend/ide/components/panes/right_spec.js
index 4555f519bc2..b7349b8fed1 100644
--- a/spec/frontend/ide/components/panes/right_spec.js
+++ b/spec/frontend/ide/components/panes/right_spec.js
@@ -3,12 +3,16 @@ import Vue, { nextTick } from 'vue';
import Vuex from 'vuex';
import CollapsibleSidebar from '~/ide/components/panes/collapsible_sidebar.vue';
import RightPane from '~/ide/components/panes/right.vue';
+import SwitchEditorsView from '~/ide/components/switch_editors/switch_editors_view.vue';
import { rightSidebarViews } from '~/ide/constants';
import { createStore } from '~/ide/stores';
import extendStore from '~/ide/stores/extend';
+import { __ } from '~/locale';
Vue.use(Vuex);
+const SWITCH_EDITORS_VIEW_NAME = 'switch-editors';
+
describe('ide/components/panes/right.vue', () => {
let wrapper;
let store;
@@ -33,6 +37,19 @@ describe('ide/components/panes/right.vue', () => {
wrapper = null;
});
+ describe('default', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('renders collapsible-sidebar', () => {
+ expect(wrapper.findComponent(CollapsibleSidebar).props()).toMatchObject({
+ side: 'right',
+ initOpenView: SWITCH_EDITORS_VIEW_NAME,
+ });
+ });
+ });
+
describe('pipelines tab', () => {
it('is always shown', () => {
createComponent();
@@ -113,4 +130,32 @@ describe('ide/components/panes/right.vue', () => {
);
});
});
+
+ describe('switch editors tab', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it.each`
+ desc | canUseNewWebIde | expectedShow
+ ${'is shown'} | ${true} | ${true}
+ ${'is not shown'} | ${false} | ${false}
+ `('with canUseNewWebIde=$canUseNewWebIde, $desc', async ({ canUseNewWebIde, expectedShow }) => {
+ Object.assign(store.state, { canUseNewWebIde });
+
+ await nextTick();
+
+ expect(wrapper.findComponent(CollapsibleSidebar).props('extensionTabs')).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ show: expectedShow,
+ title: __('Switch editors'),
+ views: [
+ { component: SwitchEditorsView, name: SWITCH_EDITORS_VIEW_NAME, keepAlive: true },
+ ],
+ }),
+ ]),
+ );
+ });
+ });
});
diff --git a/spec/frontend/ide/components/switch_editors/switch_editors_view_spec.js b/spec/frontend/ide/components/switch_editors/switch_editors_view_spec.js
new file mode 100644
index 00000000000..7a958391fea
--- /dev/null
+++ b/spec/frontend/ide/components/switch_editors/switch_editors_view_spec.js
@@ -0,0 +1,214 @@
+import { GlButton, GlEmptyState, GlLink } from '@gitlab/ui';
+import { shallowMount } from '@vue/test-utils';
+import MockAdapter from 'axios-mock-adapter';
+import waitForPromises from 'helpers/wait_for_promises';
+import { useMockLocationHelper } from 'helpers/mock_window_location_helper';
+import { createAlert } from '~/flash';
+import axios from '~/lib/utils/axios_utils';
+import { logError } from '~/lib/logger';
+import { __ } from '~/locale';
+import { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';
+import SwitchEditorsView, {
+ MSG_ERROR_ALERT,
+ MSG_CONFIRM,
+ MSG_TITLE,
+ MSG_LEARN_MORE,
+ MSG_DESCRIPTION,
+} from '~/ide/components/switch_editors/switch_editors_view.vue';
+import eventHub from '~/ide/eventhub';
+import { createStore } from '~/ide/stores';
+
+jest.mock('~/flash');
+jest.mock('~/lib/logger');
+jest.mock('~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal');
+
+const TEST_USER_PREFERENCES_PATH = '/test/user-pref/path';
+const TEST_SWITCH_EDITOR_SVG_PATH = '/test/switch/editor/path.svg';
+const TEST_HREF = '/test/new/web/ide/href';
+
+describe('~/ide/components/switch_editors/switch_editors_view.vue', () => {
+ useMockLocationHelper();
+
+ let store;
+ let wrapper;
+ let confirmResolve;
+ let requestSpy;
+ let skipBeforeunloadSpy;
+ let axiosMock;
+
+ // region: finders ------------------
+ const findButton = () => wrapper.findComponent(GlButton);
+ const findEmptyState = () => wrapper.findComponent(GlEmptyState);
+
+ // region: actions ------------------
+ const triggerSwitchPreference = () => findButton().vm.$emit('click');
+ const submitConfirm = async (val) => {
+ confirmResolve(val);
+
+ // why: We need to wait for promises for the immediate next lines to be executed
+ await waitForPromises();
+ };
+
+ const createComponent = () => {
+ wrapper = shallowMount(SwitchEditorsView, {
+ store,
+ stubs: {
+ GlEmptyState,
+ },
+ });
+ };
+
+ // region: test setup ------------------
+ beforeEach(() => {
+ // Setup skip-beforeunload side-effect
+ skipBeforeunloadSpy = jest.fn();
+ eventHub.$on('skip-beforeunload', skipBeforeunloadSpy);
+
+ // Setup request side-effect
+ requestSpy = jest.fn().mockImplementation(() => new Promise(() => {}));
+ axiosMock = new MockAdapter(axios);
+ axiosMock.onPut(TEST_USER_PREFERENCES_PATH).reply(({ data }) => requestSpy(data));
+
+ // Setup store
+ store = createStore();
+ store.state.userPreferencesPath = TEST_USER_PREFERENCES_PATH;
+ store.state.switchEditorSvgPath = TEST_SWITCH_EDITOR_SVG_PATH;
+ store.state.links = {
+ newWebIDEHelpPagePath: TEST_HREF,
+ };
+
+ // Setup user confirm side-effect
+ confirmAction.mockImplementation(
+ () =>
+ new Promise((resolve) => {
+ confirmResolve = resolve;
+ }),
+ );
+ });
+
+ afterEach(() => {
+ eventHub.$off('skip-beforeunload', skipBeforeunloadSpy);
+
+ axiosMock.restore();
+ });
+
+ // region: tests ------------------
+ describe('default', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('render empty state', () => {
+ expect(findEmptyState().props()).toMatchObject({
+ svgPath: TEST_SWITCH_EDITOR_SVG_PATH,
+ svgHeight: 150,
+ title: MSG_TITLE,
+ });
+ });
+
+ it('render link', () => {
+ expect(wrapper.findComponent(GlLink).attributes('href')).toBe(TEST_HREF);
+ expect(wrapper.findComponent(GlLink).text()).toBe(MSG_LEARN_MORE);
+ });
+
+ it('renders description', () => {
+ expect(findEmptyState().text()).toContain(MSG_DESCRIPTION);
+ });
+
+ it('is not loading', () => {
+ expect(findButton().props('loading')).toBe(false);
+ });
+ });
+
+ describe('when user triggers switch preference', () => {
+ beforeEach(() => {
+ createComponent();
+
+ triggerSwitchPreference();
+ });
+
+ it('creates a single confirm', () => {
+ // Call again to ensure that we only show 1 confirm action
+ triggerSwitchPreference();
+
+ expect(confirmAction).toHaveBeenCalledTimes(1);
+ expect(confirmAction).toHaveBeenCalledWith(MSG_CONFIRM, {
+ primaryBtnText: __('Switch editors'),
+ cancelBtnText: __('Cancel'),
+ });
+ });
+
+ it('starts loading', () => {
+ expect(findButton().props('loading')).toBe(true);
+ });
+
+ describe('when user cancels confirm', () => {
+ beforeEach(async () => {
+ await submitConfirm(false);
+ });
+
+ it('does not make request', () => {
+ expect(requestSpy).not.toHaveBeenCalled();
+ });
+
+ it('can be triggered again', () => {
+ triggerSwitchPreference();
+
+ expect(confirmAction).toHaveBeenCalledTimes(2);
+ });
+ });
+
+ describe('when user accepts confirm and response success', () => {
+ beforeEach(async () => {
+ requestSpy.mockReturnValue([200, {}]);
+ await submitConfirm(true);
+ });
+
+ it('does not handle error', () => {
+ expect(logError).not.toHaveBeenCalled();
+ expect(createAlert).not.toHaveBeenCalled();
+ });
+
+ it('emits "skip-beforeunload" and reloads', () => {
+ expect(skipBeforeunloadSpy).toHaveBeenCalledTimes(1);
+ expect(window.location.reload).toHaveBeenCalledTimes(1);
+ });
+
+ it('calls request', () => {
+ expect(requestSpy).toHaveBeenCalledTimes(1);
+ expect(requestSpy).toHaveBeenCalledWith(
+ JSON.stringify({ user: { use_legacy_web_ide: false } }),
+ );
+ });
+
+ it('is not loading', () => {
+ expect(findButton().props('loading')).toBe(false);
+ });
+ });
+
+ describe('when user accepts confirm and response fails', () => {
+ beforeEach(async () => {
+ requestSpy.mockReturnValue([400, {}]);
+ await submitConfirm(true);
+ });
+
+ it('handles error', () => {
+ expect(logError).toHaveBeenCalledTimes(1);
+ expect(logError).toHaveBeenCalledWith(
+ 'Error while updating user preferences',
+ expect.any(Error),
+ );
+
+ expect(createAlert).toHaveBeenCalledTimes(1);
+ expect(createAlert).toHaveBeenCalledWith({
+ message: MSG_ERROR_ALERT,
+ });
+ });
+
+ it('does not reload', () => {
+ expect(skipBeforeunloadSpy).not.toHaveBeenCalled();
+ expect(window.location.reload).not.toHaveBeenCalled();
+ });
+ });
+ });
+});
diff --git a/spec/frontend/ide/stores/mutations_spec.js b/spec/frontend/ide/stores/mutations_spec.js
index 4117f2648bd..ae21d257bb2 100644
--- a/spec/frontend/ide/stores/mutations_spec.js
+++ b/spec/frontend/ide/stores/mutations_spec.js
@@ -87,11 +87,13 @@ describe('Multi-file store mutations', () => {
emptyStateSvgPath: 'emptyState',
noChangesStateSvgPath: 'noChanges',
committedStateSvgPath: 'committed',
+ switchEditorSvgPath: 'switchEditorSvg',
});
expect(localState.emptyStateSvgPath).toBe('emptyState');
expect(localState.noChangesStateSvgPath).toBe('noChanges');
expect(localState.committedStateSvgPath).toBe('committed');
+ expect(localState.switchEditorSvgPath).toBe('switchEditorSvg');
});
});
diff --git a/spec/frontend/vue_shared/components/markdown_drawer/markdown_drawer_spec.js b/spec/frontend/vue_shared/components/markdown_drawer/markdown_drawer_spec.js
new file mode 100644
index 00000000000..8edcb905096
--- /dev/null
+++ b/spec/frontend/vue_shared/components/markdown_drawer/markdown_drawer_spec.js
@@ -0,0 +1,205 @@
+import { GlDrawer, GlAlert, GlSkeletonLoader } from '@gitlab/ui';
+import { nextTick } from 'vue';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import MarkdownDrawer, { cache } from '~/vue_shared/components/markdown_drawer/markdown_drawer.vue';
+import { getRenderedMarkdown } from '~/vue_shared/components/markdown_drawer/utils/fetch';
+import { contentTop } from '~/lib/utils/common_utils';
+
+jest.mock('~/vue_shared/components/markdown_drawer/utils/fetch', () => ({
+ getRenderedMarkdown: jest.fn().mockReturnValue({
+ title: 'test title test',
+ body: `<div id="content-body">
+ <div class="documentation md gl-mt-3">
+ test body
+ </div>
+ </div>`,
+ }),
+}));
+
+jest.mock('~/lib/utils/common_utils', () => ({
+ contentTop: jest.fn(),
+}));
+
+describe('MarkdownDrawer', () => {
+ let wrapper;
+ const defaultProps = {
+ documentPath: 'user/search/global_search/advanced_search_syntax.json',
+ };
+
+ const createComponent = (props) => {
+ wrapper = shallowMountExtended(MarkdownDrawer, {
+ propsData: {
+ ...defaultProps,
+ ...props,
+ },
+ });
+ };
+
+ afterEach(() => {
+ wrapper.destroy();
+ wrapper = null;
+ Object.keys(cache).forEach((key) => delete cache[key]);
+ });
+
+ const findDrawer = () => wrapper.findComponent(GlDrawer);
+ const findAlert = () => wrapper.findComponent(GlAlert);
+ const findSkeleton = () => wrapper.findComponent(GlSkeletonLoader);
+ const findDrawerTitle = () => wrapper.findComponent('[data-testid="title-element"]');
+ const findDrawerBody = () => wrapper.findComponent({ ref: 'content-element' });
+
+ describe('component', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('renders correctly', () => {
+ expect(findDrawer().exists()).toBe(true);
+ expect(findDrawerTitle().text()).toBe('test title test');
+ expect(findDrawerBody().text()).toBe('test body');
+ });
+ });
+
+ describe.each`
+ hasNavbar | navbarHeight
+ ${false} | ${0}
+ ${true} | ${100}
+ `('computes offsetTop', ({ hasNavbar, navbarHeight }) => {
+ beforeEach(() => {
+ global.document.querySelector = jest.fn(() =>
+ hasNavbar
+ ? {
+ dataset: {
+ page: 'test',
+ },
+ }
+ : undefined,
+ );
+ contentTop.mockReturnValue(navbarHeight);
+ createComponent();
+ });
+
+ afterEach(() => {
+ contentTop.mockClear();
+ });
+
+ it(`computes offsetTop ${hasNavbar ? 'with' : 'without'} .navbar-gitlab`, () => {
+ expect(findDrawer().attributes('headerheight')).toBe(`${navbarHeight}px`);
+ });
+ });
+
+ describe('watcher', () => {
+ let renderGLFMSpy;
+ let fetchMarkdownSpy;
+
+ beforeEach(async () => {
+ renderGLFMSpy = jest.spyOn(MarkdownDrawer.methods, 'renderGLFM');
+ fetchMarkdownSpy = jest.spyOn(MarkdownDrawer.methods, 'fetchMarkdown');
+ global.document.querySelector = jest.fn(() => ({
+ getBoundingClientRect: jest.fn(() => ({ bottom: 100 })),
+ dataset: {
+ page: 'test',
+ },
+ }));
+ createComponent();
+ await nextTick();
+ });
+
+ afterEach(() => {
+ renderGLFMSpy.mockClear();
+ fetchMarkdownSpy.mockClear();
+ });
+
+ it('for documentPath triggers fetch', async () => {
+ expect(fetchMarkdownSpy).toHaveBeenCalledTimes(1);
+
+ await wrapper.setProps({ documentPath: '/test/me' });
+ await nextTick();
+
+ expect(fetchMarkdownSpy).toHaveBeenCalledTimes(2);
+ });
+
+ it('for open triggers renderGLFM', async () => {
+ wrapper.vm.fetchMarkdown();
+ wrapper.vm.openDrawer();
+ await nextTick();
+ expect(renderGLFMSpy).toHaveBeenCalled();
+ });
+ });
+
+ describe('Markdown fetching', () => {
+ let renderGLFMSpy;
+
+ beforeEach(async () => {
+ renderGLFMSpy = jest.spyOn(MarkdownDrawer.methods, 'renderGLFM');
+ createComponent();
+ await nextTick();
+ });
+
+ afterEach(() => {
+ renderGLFMSpy.mockClear();
+ });
+
+ it('fetches the Markdown and caches it', async () => {
+ expect(getRenderedMarkdown).toHaveBeenCalledTimes(1);
+ expect(Object.keys(cache)).toHaveLength(1);
+ });
+
+ it('when the document changes, fetches it and caches it as well', async () => {
+ expect(getRenderedMarkdown).toHaveBeenCalledTimes(1);
+ expect(Object.keys(cache)).toHaveLength(1);
+
+ await wrapper.setProps({ documentPath: '/test/me2' });
+ await nextTick();
+
+ expect(getRenderedMarkdown).toHaveBeenCalledTimes(2);
+ expect(Object.keys(cache)).toHaveLength(2);
+ });
+
+ it('when re-using an already fetched document, gets it from the cache', async () => {
+ await wrapper.setProps({ documentPath: '/test/me2' });
+ await nextTick();
+
+ expect(getRenderedMarkdown).toHaveBeenCalledTimes(2);
+ expect(Object.keys(cache)).toHaveLength(2);
+
+ await wrapper.setProps({ documentPath: defaultProps.documentPath });
+ await nextTick();
+
+ expect(getRenderedMarkdown).toHaveBeenCalledTimes(2);
+ expect(Object.keys(cache)).toHaveLength(2);
+ });
+ });
+
+ describe('Markdown fetching returns error', () => {
+ beforeEach(async () => {
+ getRenderedMarkdown.mockReturnValue({
+ hasFetchError: true,
+ });
+
+ createComponent();
+ await nextTick();
+ });
+ afterEach(() => {
+ getRenderedMarkdown.mockClear();
+ });
+ it('shows alert', () => {
+ expect(findAlert().exists()).toBe(true);
+ });
+ });
+
+ describe('While Markdown is fetching', () => {
+ beforeEach(async () => {
+ getRenderedMarkdown.mockReturnValue(new Promise(() => {}));
+
+ createComponent();
+ });
+
+ afterEach(() => {
+ getRenderedMarkdown.mockClear();
+ });
+
+ it('shows skeleton', async () => {
+ expect(findSkeleton().exists()).toBe(true);
+ });
+ });
+});
diff --git a/spec/frontend/vue_shared/components/markdown_drawer/mock_data.js b/spec/frontend/vue_shared/components/markdown_drawer/mock_data.js
new file mode 100644
index 00000000000..53b40407556
--- /dev/null
+++ b/spec/frontend/vue_shared/components/markdown_drawer/mock_data.js
@@ -0,0 +1,42 @@
+export const MOCK_HTML = `<!DOCTYPE html>
+<html>
+<body>
+ <div id="content-body">
+ <h1>test title <strong>test</strong></h1>
+ <div class="documentation md gl-mt-3">
+ <a href="../advanced_search.md">Advanced Search</a>
+ <a href="../advanced_search2.md">Advanced Search2</a>
+ <h2>test header h2</h2>
+ <table class="testClass">
+ <tr>
+ <td>Emil</td>
+ <td>Tobias</td>
+ <td>Linus</td>
+ </tr>
+ <tr>
+ <td>16</td>
+ <td>14</td>
+ <td>10</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</body>
+</html>`.replace(/\n/g, '');
+
+export const MOCK_DRAWER_DATA = {
+ hasFetchError: false,
+ title: 'test title test',
+ body: ` <div id="content-body"> <div class="documentation md gl-mt-3"> <a href="../advanced_search.md">Advanced Search</a> <a href="../advanced_search2.md">Advanced Search2</a> <h2>test header h2</h2> <table class="testClass"> <tbody><tr> <td>Emil</td> <td>Tobias</td> <td>Linus</td> </tr> <tr> <td>16</td> <td>14</td> <td>10</td> </tr> </tbody></table> </div> </div>`,
+};
+
+export const MOCK_DRAWER_DATA_ERROR = {
+ hasFetchError: true,
+};
+
+export const MOCK_TABLE_DATA_BEFORE = `<head></head><body><h1>test</h1></test><table><tbody><tr><td></td></tr></tbody></table></body>`;
+
+export const MOCK_HTML_DATA_AFTER = {
+ body: '<table><tbody><tr><td></td></tr></tbody></table>',
+ title: 'test',
+};
diff --git a/spec/frontend/vue_shared/components/markdown_drawer/utils/fetch_spec.js b/spec/frontend/vue_shared/components/markdown_drawer/utils/fetch_spec.js
new file mode 100644
index 00000000000..ff07b2cf838
--- /dev/null
+++ b/spec/frontend/vue_shared/components/markdown_drawer/utils/fetch_spec.js
@@ -0,0 +1,43 @@
+import MockAdapter from 'axios-mock-adapter';
+import {
+ getRenderedMarkdown,
+ splitDocument,
+} from '~/vue_shared/components/markdown_drawer/utils/fetch';
+import axios from '~/lib/utils/axios_utils';
+import {
+ MOCK_HTML,
+ MOCK_DRAWER_DATA,
+ MOCK_DRAWER_DATA_ERROR,
+ MOCK_TABLE_DATA_BEFORE,
+ MOCK_HTML_DATA_AFTER,
+} from '../mock_data';
+
+describe('utils/fetch', () => {
+ let mock;
+
+ afterEach(() => {
+ mock.restore();
+ });
+
+ describe.each`
+ axiosMock | type | toExpect
+ ${{ code: 200, res: { html: MOCK_HTML } }} | ${'success'} | ${MOCK_DRAWER_DATA}
+ ${{ code: 500, res: null }} | ${'error'} | ${MOCK_DRAWER_DATA_ERROR}
+ `('process markdown data', ({ axiosMock, type, toExpect }) => {
+ describe(`if api fetch responds with ${type}`, () => {
+ beforeEach(() => {
+ mock = new MockAdapter(axios);
+ mock.onGet().reply(axiosMock.code, axiosMock.res);
+ });
+ it(`should update drawer correctly`, async () => {
+ expect(await getRenderedMarkdown('/any/path')).toStrictEqual(toExpect);
+ });
+ });
+ });
+
+ describe('splitDocument', () => {
+ it(`should update tables correctly`, () => {
+ expect(splitDocument(MOCK_TABLE_DATA_BEFORE)).toStrictEqual(MOCK_HTML_DATA_AFTER);
+ });
+ });
+});
diff --git a/spec/helpers/ide_helper_spec.rb b/spec/helpers/ide_helper_spec.rb
index e750379f62d..447967fd345 100644
--- a/spec/helpers/ide_helper_spec.rb
+++ b/spec/helpers/ide_helper_spec.rb
@@ -26,6 +26,8 @@ RSpec.describe IdeHelper do
'can-use-new-web-ide' => 'true',
'use-new-web-ide' => 'true',
'user-preferences-path' => profile_preferences_path,
+ 'new-web-ide-help-page-path' =>
+ help_page_path('user/project/web_ide/index.md', anchor: 'vscode-reimplementation'),
'branch-name' => 'master',
'project-path' => project.path_with_namespace,
'csp-nonce' => 'test-csp-nonce'
diff --git a/spec/lib/banzai/filter/math_filter_spec.rb b/spec/lib/banzai/filter/math_filter_spec.rb
index 350ac1edbe1..c5d2bcd5363 100644
--- a/spec/lib/banzai/filter/math_filter_spec.rb
+++ b/spec/lib/banzai/filter/math_filter_spec.rb
@@ -111,35 +111,35 @@ RSpec.describe Banzai::Filter::MathFilter do
describe 'display math using ```math...``` syntax' do
it 'adds data-math-style display attribute to display math' do
- doc = filter('<pre class="code highlight js-syntax-highlight language-math" v-pre="true"><code>2+2</code></pre>')
+ doc = filter('<pre lang="math"><code>2+2</code></pre>')
pre = doc.xpath('descendant-or-self::pre').first
expect(pre['data-math-style']).to eq 'display'
end
it 'adds js-render-math class to display math' do
- doc = filter('<pre class="code highlight js-syntax-highlight language-math" v-pre="true"><code>2+2</code></pre>')
+ doc = filter('<pre lang="math"><code>2+2</code></pre>')
pre = doc.xpath('descendant-or-self::pre').first
expect(pre[:class]).to include("js-render-math")
end
it 'ignores code blocks that are not math' do
- input = '<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true"><code>2+2</code></pre>'
+ input = '<pre lang="plaintext"><code>2+2</code></pre>'
doc = filter(input)
expect(doc.to_s).to eq input
end
it 'requires the pre to contain both code and math' do
- input = '<pre class="highlight js-syntax-highlight language-plaintext language-math" v-pre="true"><code>2+2</code></pre>'
+ input = '<pre lang="math">something</pre>'
doc = filter(input)
expect(doc.to_s).to eq input
end
it 'dollar signs around to display math' do
- doc = filter('$<pre class="code highlight js-syntax-highlight language-math" v-pre="true"><code>2+2</code></pre>$')
+ doc = filter('$<pre lang="math"><code>2+2</code></pre>$')
before = doc.xpath('descendant-or-self::text()[1]').first
after = doc.xpath('descendant-or-self::text()[3]').first
diff --git a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
index 33adca0ddfc..d188a40c53e 100644
--- a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
+++ b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
@@ -23,7 +23,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "highlights as plaintext" do
result = filter('<pre><code>def fun end</code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">def fun end</span></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">def fun end</span></code></pre><copy-code></copy-code></div>')
end
include_examples "XSS prevention", ""
@@ -31,9 +31,9 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
context "when contains mermaid diagrams" do
it "ignores mermaid blocks" do
- result = filter('<pre data-mermaid-style="display"><code>mermaid code</code></pre>')
+ result = filter('<pre data-mermaid-style="display" lang="mermaid"><code class="js-render-mermaid">mermaid code</code></pre>')
- expect(result.to_html).to eq('<pre data-mermaid-style="display"><code>mermaid code</code></pre>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre data-mermaid-style="display" lang="mermaid" class="code highlight js-syntax-highlight language-mermaid" v-pre="true"><code class="js-render-mermaid"><span id="LC1" class="line" lang="mermaid">mermaid code</span></code></pre><copy-code></copy-code></div>')
end
end
@@ -49,7 +49,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "highlights as that language" do
result = filter('<pre lang="ruby"><code>def fun end</code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-ruby" lang="ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">fun</span> <span class="k">end</span></span></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="ruby" class="code highlight js-syntax-highlight language-ruby" v-pre="true"><code><span id="LC1" class="line" lang="ruby"><span class="k">def</span> <span class="nf">fun</span> <span class="k">end</span></span></code></pre><copy-code></copy-code></div>')
end
include_examples "XSS prevention", "ruby"
@@ -59,7 +59,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "highlights as plaintext" do
result = filter('<pre lang="gnuplot"><code>This is a test</code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="gnuplot" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This is a test</span></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="gnuplot" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This is a test</span></code></pre><copy-code></copy-code></div>')
end
include_examples "XSS prevention", "gnuplot"
@@ -74,7 +74,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "highlights as plaintext but with the correct language attribute and class" do
result = filter(%{<pre lang="#{lang}"><code>This is a test</code></pre>})
- expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>})
+ expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>})
end
include_examples "XSS prevention", lang
@@ -87,7 +87,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "includes data-lang-params tag with extra information" do
result = filter(%{<pre lang="#{lang}" data-meta="#{lang_params}"><code>This is a test</code></pre>})
- expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" #{data_attr}="#{lang_params}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>})
+ expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" #{data_attr}="#{lang_params}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>})
end
include_examples "XSS prevention", lang
@@ -105,7 +105,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
let(:lang_params) { '-1+10' }
let(:expected_result) do
- %{<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" #{data_attr}="#{lang_params} more-things" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>}
+ %{<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" #{data_attr}="#{lang_params} more-things" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre><copy-code></copy-code></div>}
end
context 'when delimiter is space' do
@@ -130,13 +130,13 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "includes it in the highlighted code block" do
result = filter('<pre data-sourcepos="1:1-3:3"><code lang="plaintext">This is a test</code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre data-sourcepos="1:1-3:3" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">This is a test</span></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre data-sourcepos="1:1-3:3" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code lang="plaintext"><span id="LC1" class="line" lang="plaintext">This is a test</span></code></pre><copy-code></copy-code></div>')
end
it "escape sourcepos metadata to prevent XSS" do
result = filter('<pre data-sourcepos="&#34;%22 href=&#34;x&#34;></pre><base href=http://unsafe-website.com/><pre x=&#34;"><code></code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre data-sourcepos=\'"%22 href="x"&gt;&lt;/pre&gt;&lt;base href=http://unsafe-website.com/&gt;&lt;pre x="\' class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="" v-pre="true"><code></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre data-sourcepos=\'"%22 href="x"&gt;&lt;/pre&gt;&lt;base href=http://unsafe-website.com/&gt;&lt;pre x="\' lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="" v-pre="true"><code></code></pre><copy-code></copy-code></div>')
end
end
@@ -150,7 +150,7 @@ RSpec.describe Banzai::Filter::SyntaxHighlightFilter do
it "highlights as plaintext" do
result = filter('<pre lang="ruby"><code>This is a test</code></pre>')
- expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre class="code highlight js-syntax-highlight" lang="" data-canonical-lang="ruby" v-pre="true"><code><span id="LC1" class="line" lang="">This is a test</span></code></pre><copy-code></copy-code></div>')
+ expect(result.to_html.delete("\n")).to eq('<div class="gl-relative markdown-code-block js-markdown-code"><pre lang="" class="code highlight js-syntax-highlight" data-canonical-lang="ruby" v-pre="true"><code><span id="LC1" class="line" lang="">This is a test</span></code></pre><copy-code></copy-code></div>')
end
include_examples "XSS prevention", "ruby"
diff --git a/spec/lib/gitlab/asciidoc_spec.rb b/spec/lib/gitlab/asciidoc_spec.rb
index 6dfc6abe965..d2eb9209f42 100644
--- a/spec/lib/gitlab/asciidoc_spec.rb
+++ b/spec/lib/gitlab/asciidoc_spec.rb
@@ -94,9 +94,18 @@ module Gitlab
# Move this test back to the items hash when removing `use_cmark_renderer` feature flag.
it "does not convert dangerous fenced code with inline script into HTML" do
input = '```mypre"><script>alert(3)</script>'
- output = "<div>\n<div>\n<div class=\"gl-relative markdown-code-block js-markdown-code\">\n<pre class=\"code highlight js-syntax-highlight language-plaintext\" lang=\"plaintext\" data-canonical-lang=\"mypre\" v-pre=\"true\"><code></code></pre>\n<copy-code></copy-code>\n</div>\n</div>\n</div>"
+ output = <<~HTML
+ <div>
+ <div>
+ <div class=\"gl-relative markdown-code-block js-markdown-code\">
+ <pre lang=\"plaintext\" class=\"code highlight js-syntax-highlight language-plaintext\" data-canonical-lang=\"mypre\" v-pre=\"true\"><code></code></pre>
+ <copy-code></copy-code>
+ </div>
+ </div>
+ </div>
+ HTML
- expect(render(input, context)).to include(output)
+ expect(render(input, context)).to include(output.strip)
end
it 'does not allow locked attributes to be overridden' do
@@ -360,7 +369,7 @@ module Gitlab
<div>
<div>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre class="code highlight js-syntax-highlight language-javascript" lang="javascript" data-canonical-lang="js" v-pre="true"><code><span id="LC1" class="line" lang="javascript"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">hello world</span><span class="dl">'</span><span class="p">)</span></span></code></pre>
+ <pre lang="javascript" class="code highlight js-syntax-highlight language-javascript" data-canonical-lang="js" v-pre="true"><code><span id="LC1" class="line" lang="javascript"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">hello world</span><span class="dl">'</span><span class="p">)</span></span></code></pre>
<copy-code></copy-code>
</div>
</div>
@@ -390,7 +399,7 @@ module Gitlab
<div>class.cpp</div>
<div>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre class="code highlight js-syntax-highlight language-cpp" lang="cpp" data-canonical-lang="c++" v-pre="true"><code><span id="LC1" class="line" lang="cpp"><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span></span>
+ <pre lang="cpp" class="code highlight js-syntax-highlight language-cpp" data-canonical-lang="c++" v-pre="true"><code><span id="LC1" class="line" lang="cpp"><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span></span>
<span id="LC2" class="line" lang="cpp"></span>
<span id="LC3" class="line" lang="cpp"><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></span>
<span id="LC4" class="line" lang="cpp"> <span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"*"</span><span class="o">&lt;&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span></span>
@@ -448,7 +457,7 @@ module Gitlab
stem:[2+2] is 4
MD
- expect(render(input, context)).to include('<pre data-math-style="display" class="code math js-render-math"><code>eta_x gamma</code></pre>')
+ expect(render(input, context)).to include('<pre data-math-style="display" lang="plaintext" class="code math js-render-math" data-canonical-lang="" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">eta_x gamma</span></code></pre>')
expect(render(input, context)).to include('<p><code data-math-style="inline" class="code math js-render-math">2+2</code> is 4</p>')
end
end
diff --git a/spec/models/ci/processable_spec.rb b/spec/models/ci/processable_spec.rb
index a199111b1e3..261eba73424 100644
--- a/spec/models/ci/processable_spec.rb
+++ b/spec/models/ci/processable_spec.rb
@@ -52,7 +52,11 @@ RSpec.describe Ci::Processable do
let_it_be(:internal_job_variable) { create(:ci_job_variable, job: processable) }
- let(:clone_accessors) { ::Ci::Build.clone_accessors.without(::Ci::Build.extra_accessors) }
+ let(:clone_accessors) do
+ %i[pipeline project ref tag options name allow_failure stage stage_idx trigger_request yaml_variables
+ when environment coverage_regex description tag_list protected needs_attributes job_variables_attributes
+ resource_group scheduling_type ci_stage partition_id id_tokens]
+ end
let(:reject_accessors) do
%i[id status user token_encrypted coverage runner artifacts_expire_at
@@ -83,7 +87,8 @@ RSpec.describe Ci::Processable do
resource resource_group_id processed security_scans author
pipeline_id report_results pending_state pages_deployments
queuing_entry runtime_metadata trace_metadata
- dast_site_profile dast_scanner_profile stage_id].freeze
+ dast_site_profile dast_scanner_profile stage_id dast_site_profiles_build
+ dast_scanner_profiles_build].freeze
end
before_all do
@@ -177,10 +182,7 @@ RSpec.describe Ci::Processable do
Ci::Build.attribute_names.map(&:to_sym) +
Ci::Build.attribute_aliases.keys.map(&:to_sym) +
Ci::Build.reflect_on_all_associations.map(&:name) +
- [:tag_list, :needs_attributes, :job_variables_attributes, :id_tokens] -
- # ToDo: Move EE accessors to ee/
- ::Ci::Build.extra_accessors -
- [:dast_site_profiles_build, :dast_scanner_profiles_build]
+ [:tag_list, :needs_attributes, :job_variables_attributes, :id_tokens]
current_accessors.uniq!
diff --git a/spec/scripts/lib/glfm/update_specification_spec.rb b/spec/scripts/lib/glfm/update_specification_spec.rb
index 8a7d7100363..3798286c0c4 100644
--- a/spec/scripts/lib/glfm/update_specification_spec.rb
+++ b/spec/scripts/lib/glfm/update_specification_spec.rb
@@ -292,7 +292,7 @@ RSpec.describe Glfm::UpdateSpecification, '#process' do
expected_spec_html = <<~RENDERED_HTML
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
+ <pre data-sourcepos="1:1-4:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="s">alpha</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -311,7 +311,7 @@ RSpec.describe Glfm::UpdateSpecification, '#process' do
expected_snapshot_spec_html = <<~RENDERED_HTML
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="1:1-4:3" class="code highlight js-syntax-highlight language-yaml" lang="yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
+ <pre data-sourcepos="1:1-4:3" lang="yaml" class="code highlight js-syntax-highlight language-yaml" data-lang-params="frontmatter" v-pre="true"><code><span id="LC1" class="line" lang="yaml"><span class="na">title</span><span class="pi">:</span> <span class="s">GitLab Flavored Markdown (GLFM) Spec</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="s">alpha</span></span></code></pre>
<copy-code></copy-code>
</div>
@@ -320,7 +320,7 @@ RSpec.describe Glfm::UpdateSpecification, '#process' do
<h2 data-sourcepos="7:1-7:9" dir="auto">
<a id="user-content-strong" class="anchor" href="#strong" aria-hidden="true"></a>Strong</h2>
<div class="gl-relative markdown-code-block js-markdown-code">
- <pre data-sourcepos="9:1-13:32" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__bold__</span>
+ <pre data-sourcepos="9:1-13:32" lang="plaintext" class="code highlight js-syntax-highlight language-plaintext" data-canonical-lang="example" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">__bold__</span>
<span id="LC2" class="line" lang="plaintext">.</span>
<span id="LC3" class="line" lang="plaintext">&lt;p&gt;&lt;strong&gt;bold&lt;/strong&gt;&lt;/p&gt;</span></code></pre>
<copy-code></copy-code>