mirror of
https://github.com/codex-team/codex.docs.git
synced 2025-07-19 05:09:41 +02:00
Implement diff highlight (#85)
* diff highlight * update docs and function renaming * fix * simplify code * lint code * lint code * rename classes * solution through split func * update code style * remove line numbers testing * Update main.css
This commit is contained in:
parent
69d036ab5c
commit
3623aade0b
8 changed files with 65 additions and 11 deletions
2
public/dist/code-styling.bundle.js
vendored
2
public/dist/code-styling.bundle.js
vendored
File diff suppressed because one or more lines are too long
1
public/dist/code-styling.css
vendored
1
public/dist/code-styling.css
vendored
|
@ -1 +1,2 @@
|
|||
.hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto}.hljs-comment,.hljs-meta{color:#969896}.hljs-emphasis,.hljs-quote,.hljs-string,.hljs-strong,.hljs-template-variable,.hljs-variable{color:#df5000}.hljs-keyword,.hljs-selector-tag,.hljs-type{color:#a71d5d}.hljs-attribute,.hljs-bullet,.hljs-literal,.hljs-symbol{color:#0086b3}.hljs-name,.hljs-section{color:#63a35c}.hljs-tag{color:#333}.hljs-attr,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-title{color:#795da3}.hljs-addition{color:#55a532;background-color:#eaffea}.hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-link{text-decoration:underline}
|
||||
.diff{display:inline-block;width:100%}.diff span{color:inherit!important}.diff--added{color:#277030;background-color:#e2fce7}.diff--added:before{content:"+";opacity:.4}.diff--removed{color:#ae363c;background-color:#ffe6e6}.diff--removed:before{content:"-";opacity:.4}
|
||||
|
|
12
public/dist/editor.bundle.js
vendored
12
public/dist/editor.bundle.js
vendored
File diff suppressed because one or more lines are too long
4
public/dist/main.bundle.js
vendored
4
public/dist/main.bundle.js
vendored
File diff suppressed because one or more lines are too long
2
public/dist/main.css
vendored
2
public/dist/main.css
vendored
File diff suppressed because one or more lines are too long
|
@ -4,6 +4,7 @@ import xml from 'highlight.js/lib/languages/xml';
|
|||
import json from 'highlight.js/lib/languages/json';
|
||||
import css from 'highlight.js/lib/languages/css';
|
||||
import style from 'highlight.js/styles/github-gist.css'; // eslint-disable-line no-unused-vars
|
||||
import diffStyles from '../../styles/diff.pcss'; // eslint-disable-line no-unused-vars
|
||||
|
||||
/**
|
||||
* @class CodeStyles
|
||||
|
@ -47,6 +48,20 @@ export default class CodeStyler {
|
|||
|
||||
Array.from(codeBlocks).forEach(block => {
|
||||
hljs.highlightBlock(block);
|
||||
this.highlightDiffs(block);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Highlight lines started from + or -
|
||||
* @param {Element} block
|
||||
*/
|
||||
highlightDiffs(block){
|
||||
let lines = block.innerHTML.split('\n').map((line, index) => {
|
||||
return line.replace(/^\+(.*)$/ig, '<span class="diff diff--added">$1</span>')
|
||||
.replace(/^-(.*)$/ig, '<span class="diff diff--removed">$1</span>');
|
||||
});
|
||||
|
||||
block.innerHTML = lines.join('\n');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -193,14 +193,24 @@
|
|||
font-family: var(--font-mono);
|
||||
line-height: 1.7em;
|
||||
font-size: 13px;
|
||||
overflow-x: auto;
|
||||
margin: 15px 0;
|
||||
|
||||
&__content {
|
||||
display: inline-block !important;
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
overflow-x: auto;
|
||||
background: transparent !important;
|
||||
padding: 15px !important;
|
||||
color: #41314e !important;
|
||||
min-width: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
.diff {
|
||||
margin: 0 -15px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.hljs-name,
|
||||
|
|
28
src/frontend/styles/diff.pcss
Normal file
28
src/frontend/styles/diff.pcss
Normal file
|
@ -0,0 +1,28 @@
|
|||
.diff {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
&--added {
|
||||
color: #277030;
|
||||
background-color: #e2fce7;
|
||||
|
||||
&::before {
|
||||
content: '+';
|
||||
opacity: 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
&--removed {
|
||||
color: rgb(174, 54, 60);
|
||||
background-color: rgba(255, 230, 230, 1);
|
||||
|
||||
&::before {
|
||||
content: '-';
|
||||
opacity: 0.4;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue