From b9fa3188866517abc6955d4d0bc97501783df718 Mon Sep 17 00:00:00 2001 From: Tim-Siu Date: Sun, 11 Feb 2024 21:55:14 +0800 Subject: [PATCH 1/2] Automatically add line numbers when wrapping --- .../core/src/plugins/codeBlockWrapButtons.ts | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/core/src/plugins/codeBlockWrapButtons.ts b/packages/core/src/plugins/codeBlockWrapButtons.ts index 4d98c61319..16b43584cb 100644 --- a/packages/core/src/plugins/codeBlockWrapButtons.ts +++ b/packages/core/src/plugins/codeBlockWrapButtons.ts @@ -37,16 +37,25 @@ function getButtonHTML() { } const wrapCodeBlockScript = ``; + } +} +`; export = { getScripts: () => [wrapCodeBlockScript], From d9497d627d2ea731e4973e9b717098384b872d19 Mon Sep 17 00:00:00 2001 From: Tim-Siu Date: Sun, 11 Feb 2024 22:11:24 +0800 Subject: [PATCH 2/2] Fix bug that the attribute is not stored --- packages/core/src/plugins/codeBlockWrapButtons.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/core/src/plugins/codeBlockWrapButtons.ts b/packages/core/src/plugins/codeBlockWrapButtons.ts index 16b43584cb..3ebe226cc3 100644 --- a/packages/core/src/plugins/codeBlockWrapButtons.ts +++ b/packages/core/src/plugins/codeBlockWrapButtons.ts @@ -42,16 +42,19 @@ function toggleCodeBlockWrap(element) { const code = pre.querySelector('code'); const classList = code.classList; + if (code.dataset.originalLineNumbers === undefined) { + code.dataset.originalLineNumbers = classList.contains('line-numbers').toString(); + } + if (classList.contains('wrap')) { classList.remove('wrap'); - if (code.dataset.addedLineNumbers) { + if (code.dataset.originalLineNumbers === 'false') { classList.remove('line-numbers'); } } else { classList.add('wrap'); - if (!code.dataset.originalLineNumbers) { - classList.add('line-numbers'); - code.dataset.addedLineNumbers = true; + if (code.dataset.originalLineNumbers === 'false') { + classList.add('line-numbers'); } } }