diff --git a/docusaurus.config.js b/docusaurus.config.js index a85a2d6..3e8da5d 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -559,6 +559,16 @@ ${content}`, prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, + magicComments: [ + { + className: 'code-block-diff-add-line', + line: 'diff-add' + }, + { + className: 'code-block-diff-remove-line', + line: 'diff-remove' + } + ] }, }), }; diff --git a/src/css/custom.css b/src/css/custom.css index da9cac9..e2ab607 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -85,4 +85,52 @@ .button--secondary:hover { background-color: var(--ifm-color-secondary-light); -} \ No newline at end of file +} + +/* Code diff highlighting start */ +.code-block-diff-add-line { + background-color: #ccffd8; + display: block; + margin: 0 -40px; + padding: 0 40px; +} + +.code-block-diff-add-line::before { + position: absolute; + left: 8px; + padding-right: 8px; + content: '+'; +} + +.code-block-diff-remove-line { + background-color: #ffebe9; + display: block; + margin: 0 -40px; + padding: 0 40px; +} + +.code-block-diff-remove-line::before { + position: absolute; + left: 8px; + padding-right: 8px; + content: '-'; +} + +/** + * use magic comments to mark diff blocks + */ +pre code:has(.code-block-diff-add-line) { + padding-left: 40px!important; +} + +pre code:has(.code-block-diff-remove-line) { + padding-left: 40px!important; +} + +[data-theme="dark"] pre code .token-line.code-block-diff-add-line { + background-color: #4A5827; +} +[data-theme="dark"] pre code .token-line.code-block-diff-remove-line { + background-color: #542936; +} +/* Code diff highlighting end */ \ No newline at end of file