mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-24 20:42:43 +00:00
Merge branch 'naturalcrit:master' into separateApiErrors-#2975
This commit is contained in:
@@ -341,6 +341,14 @@ const Editor = createClass({
|
||||
return this.refs.codeEditor?.undo();
|
||||
},
|
||||
|
||||
foldCode : function(){
|
||||
return this.refs.codeEditor?.foldAllCode();
|
||||
},
|
||||
|
||||
unfoldCode : function(){
|
||||
return this.refs.codeEditor?.unfoldAllCode();
|
||||
},
|
||||
|
||||
render : function(){
|
||||
return (
|
||||
<div className='editor' ref='main'>
|
||||
@@ -354,6 +362,8 @@ const Editor = createClass({
|
||||
theme={this.props.brew.theme}
|
||||
undo={this.undo}
|
||||
redo={this.redo}
|
||||
foldCode={this.foldCode}
|
||||
unfoldCode={this.unfoldCode}
|
||||
historySize={this.historySize()}
|
||||
currentEditorTheme={this.state.editorTheme}
|
||||
updateEditorTheme={this.updateEditorTheme}
|
||||
|
||||
@@ -37,6 +37,8 @@ const Snippetbar = createClass({
|
||||
undo : ()=>{},
|
||||
redo : ()=>{},
|
||||
historySize : ()=>{},
|
||||
foldCode : ()=>{},
|
||||
unfoldCode : ()=>{},
|
||||
updateEditorTheme : ()=>{},
|
||||
cursorPos : {}
|
||||
};
|
||||
@@ -144,6 +146,22 @@ const Snippetbar = createClass({
|
||||
renderEditorButtons : function(){
|
||||
if(!this.props.showEditButtons) return;
|
||||
|
||||
let foldButtons;
|
||||
if(this.props.view == 'text'){
|
||||
foldButtons =
|
||||
<>
|
||||
<div className={`editorTool foldAll ${this.props.foldCode ? 'active' : ''}`}
|
||||
onClick={this.props.foldCode} >
|
||||
<i className='fas fa-compress-alt' />
|
||||
</div>
|
||||
<div className={`editorTool unfoldAll ${this.props.unfoldCode ? 'active' : ''}`}
|
||||
onClick={this.props.unfoldCode} >
|
||||
<i className='fas fa-expand-alt' />
|
||||
</div>
|
||||
</>
|
||||
|
||||
}
|
||||
|
||||
return <div className='editors'>
|
||||
<div className={`editorTool undo ${this.props.historySize.undo ? 'active' : ''}`}
|
||||
onClick={this.props.undo} >
|
||||
@@ -154,6 +172,7 @@ const Snippetbar = createClass({
|
||||
<i className='fas fa-redo' />
|
||||
</div>
|
||||
<div className='divider'></div>
|
||||
{foldButtons}
|
||||
<div className={`editorTool editorTheme ${this.state.themeSelector ? 'active' : ''}`}
|
||||
onClick={this.toggleThemeSelector} >
|
||||
<i className='fas fa-palette' />
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
top : 0px;
|
||||
right : 0px;
|
||||
height : @menuHeight;
|
||||
width : 125px;
|
||||
justify-content : space-between;
|
||||
&>div{
|
||||
height : @menuHeight;
|
||||
@@ -46,6 +45,22 @@
|
||||
color : black;
|
||||
}
|
||||
}
|
||||
&.foldAll{
|
||||
.tooltipLeft('Fold All');
|
||||
font-size : 0.75em;
|
||||
color : grey;
|
||||
&.active{
|
||||
color : black;
|
||||
}
|
||||
}
|
||||
&.unfoldAll{
|
||||
.tooltipLeft('Unfold All');
|
||||
font-size : 0.75em;
|
||||
color : grey;
|
||||
&.active{
|
||||
color : black;
|
||||
}
|
||||
}
|
||||
&.editorTheme{
|
||||
.tooltipLeft('Editor Themes');
|
||||
font-size : 0.75em;
|
||||
|
||||
@@ -22,18 +22,18 @@ const errorIndex = (props)=>{
|
||||
## We can't find this brew in Google Drive!
|
||||
|
||||
This file was saved on Google Drive, but this link doesn't work anymore.
|
||||
${ props.brew.authors?.length > 0
|
||||
? `Note that this brew belongs to the Homebrewery account **${ props.brew.authors[0] }**,
|
||||
${ props.brew.account
|
||||
? `which is
|
||||
${props.brew.authors?.length > 0
|
||||
? `Note that this brew belongs to the Homebrewery account **${props.brew.authors[0]}**,
|
||||
${props.brew.account
|
||||
? `which is
|
||||
${props.brew.authors[0] == props.brew.account
|
||||
? `your account.`
|
||||
: `not your account (you are currently signed in as **${props.brew.account}**).`
|
||||
}`
|
||||
: 'and you are not currently signed in to any account.'
|
||||
}`
|
||||
: ''
|
||||
}
|
||||
? `your account.`
|
||||
: `not your account (you are currently signed in as **${props.brew.account}**).`
|
||||
}`
|
||||
: 'and you are not currently signed in to any account.'
|
||||
}`
|
||||
: ''
|
||||
}
|
||||
The Homebrewery cannot delete files from Google Drive on its own, so there
|
||||
are three most likely possibilities:
|
||||
:
|
||||
@@ -75,7 +75,9 @@ const errorIndex = (props)=>{
|
||||
|
||||
**Brew Title:** ${props.brew.brewTitle || 'Unable to show title'}
|
||||
|
||||
**Current Authors:** ${props.brew.authors?.map((author)=>{return `${author}`;}).join(', ') || 'Unable to list authors'}`,
|
||||
**Current Authors:** ${props.brew.authors?.map((author)=>{return `${author}`;}).join(', ') || 'Unable to list authors'}
|
||||
|
||||
[Click here to be redirected to the brew's share page.](/share/${props.brew.shareId})`,
|
||||
|
||||
// User is not signed in; must be a user on the Authors List
|
||||
'04' : dedent`
|
||||
|
||||
4
faq.md
4
faq.md
@@ -102,7 +102,7 @@ The best way to avoid this is to leave space at the end of a column equal to one
|
||||
|
||||
### Why do I need to manually create a new page? Why doesn't text flow between pages?
|
||||
|
||||
A Homebrewery document is at it's core an HTML & CSS document, and currently limited by the specs of those technologies. It is currently not possible to flow content from inside one box ("page") to the inside of another box. It seems likely that someday CSS will add this capability, and if/when that happens, Homebrewery will adopt it as soon as possible.
|
||||
A Homebrewery document is at its core an HTML & CSS document, and currently limited by the specs of those technologies. It is currently not possible to flow content from inside one box ("page") to the inside of another box. It seems likely that someday CSS will add this capability, and if/when that happens, Homebrewery will adopt it as soon as possible.
|
||||
|
||||
### Where do I get images?
|
||||
The Homebrewery does not provide images for use besides some page elements and example images for snippets. You will need to find your own images for use and be sure you are following the appropriate license requirements.
|
||||
@@ -126,4 +126,4 @@ The Homebrewery defaults to creating US Letter page sizes. If you are printing
|
||||
|
||||
### Typing `#### Adhesion` in the text editor doesn't show the header at all in the completed page?
|
||||
|
||||
Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
|
||||
Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
|
||||
|
||||
973
package-lock.json
generated
973
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
22
package.json
22
package.json
@@ -4,7 +4,7 @@
|
||||
"version": "3.10.0",
|
||||
"engines": {
|
||||
"npm": "^10.2.x",
|
||||
"node": ">=20.8.x"
|
||||
"node": "^20.8.x"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -79,10 +79,10 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.23.2",
|
||||
"@babel/plugin-transform-runtime": "^7.23.2",
|
||||
"@babel/preset-env": "^7.23.2",
|
||||
"@babel/preset-react": "^7.22.15",
|
||||
"@babel/core": "^7.23.3",
|
||||
"@babel/plugin-transform-runtime": "^7.23.3",
|
||||
"@babel/preset-env": "^7.23.3",
|
||||
"@babel/preset-react": "^7.23.3",
|
||||
"@googleapis/drive": "^8.4.0",
|
||||
"body-parser": "^1.20.2",
|
||||
"classnames": "^2.3.2",
|
||||
@@ -104,25 +104,25 @@
|
||||
"marked-smartypants-lite": "^1.0.1",
|
||||
"markedLegacy": "npm:marked@^0.3.19",
|
||||
"moment": "^2.29.4",
|
||||
"mongoose": "^7.6.1",
|
||||
"mongoose": "^8.0.0",
|
||||
"nanoid": "3.3.4",
|
||||
"nconf": "^0.12.0",
|
||||
"nconf": "^0.12.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-frame-component": "^4.1.3",
|
||||
"react-router-dom": "6.16.0",
|
||||
"react-router-dom": "6.18.0",
|
||||
"sanitize-filename": "1.6.3",
|
||||
"superagent": "^8.1.2",
|
||||
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.51.0",
|
||||
"eslint-plugin-jest": "^27.4.2",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-plugin-jest": "^27.6.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"jest": "^29.7.0",
|
||||
"jest-expect-message": "^1.1.3",
|
||||
"postcss-less": "^6.0.0",
|
||||
"stylelint": "^15.10.3",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-recess-order": "^4.3.0",
|
||||
"stylelint-config-recommended": "^13.0.0",
|
||||
"stylelint-stylistic": "^0.4.3",
|
||||
|
||||
@@ -101,7 +101,10 @@ fs.emptyDirSync('./build');
|
||||
|
||||
//v==---------------------------MOVE CM EDITOR THEMES -----------------------------==v//
|
||||
|
||||
editorThemeFiles = fs.readdirSync('./node_modules/codemirror/theme');
|
||||
const editorThemesBuildDir = './build/homebrew/cm-themes';
|
||||
await fs.copy('./node_modules/codemirror/theme', editorThemesBuildDir);
|
||||
await fs.copy('./themes/codeMirror/customThemes', editorThemesBuildDir);
|
||||
editorThemeFiles = fs.readdirSync(editorThemesBuildDir);
|
||||
|
||||
const editorThemeFile = './themes/codeMirror/editorThemes.json';
|
||||
if(fs.existsSync(editorThemeFile)) fs.rmSync(editorThemeFile);
|
||||
@@ -114,7 +117,7 @@ fs.emptyDirSync('./build');
|
||||
stream.write('\n]\n');
|
||||
stream.end();
|
||||
|
||||
await fs.copy('./node_modules/codemirror/theme', './build/homebrew/cm-themes');
|
||||
|
||||
await fs.copy('./themes/codeMirror', './build/homebrew/codeMirror');
|
||||
|
||||
//v==----------------------------- BUNDLE PACKAGES --------------------------------==v//
|
||||
@@ -151,14 +154,14 @@ fs.emptyDirSync('./build');
|
||||
// build(bundles);
|
||||
//
|
||||
|
||||
})().catch(console.error);
|
||||
//In development, set up LiveReload (refreshes browser), and Nodemon (restarts server)
|
||||
if(isDev){
|
||||
livereload('./build'); // Install the Chrome extension LiveReload to automatically refresh the browser
|
||||
watchFile('./server.js', { // Restart server when change detected to this file or any nested directory from here
|
||||
ignore : ['./build', './client', './themes'], // Ignore folders that are not running server code / avoids unneeded restarts
|
||||
ext : 'js json' // Extensions to watch (only .js/.json by default)
|
||||
//watch : ['./server', './themes'], // Watch additional folders if needed
|
||||
});
|
||||
}
|
||||
|
||||
//In development, set up LiveReload (refreshes browser), and Nodemon (restarts server)
|
||||
if(isDev){
|
||||
livereload('./build'); // Install the Chrome extension LiveReload to automatically refresh the browser
|
||||
watchFile('./server.js', { // Restart server when change detected to this file or any nested directory from here
|
||||
ignore : ['./build', './client', './themes'], // Ignore folders that are not running server code / avoids unneeded restarts
|
||||
ext : 'js json' // Extensions to watch (only .js/.json by default)
|
||||
//watch : ['./server', './themes'], // Watch additional folders if needed
|
||||
});
|
||||
}
|
||||
})().catch(console.error);
|
||||
@@ -79,7 +79,7 @@ const api = {
|
||||
if(accessType === 'edit' && (authorsExist && !(isAuthor || isInvited))) {
|
||||
const accessError = { name: 'Access Error', status: 401 };
|
||||
if(req.account){
|
||||
throw { ...accessError, message: 'User is not an Author', HBErrorCode: '03', authors: stub.authors, brewTitle: stub.title };
|
||||
throw { ...accessError, message: 'User is not an Author', HBErrorCode: '03', authors: stub.authors, brewTitle: stub.title, shareId: stub.shareId };
|
||||
}
|
||||
throw { ...accessError, message: 'User is not logged in', HBErrorCode: '04', authors: stub.authors, brewTitle: stub.title };
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
body { counter-reset : phb-page-numbers; }
|
||||
* { -webkit-print-color-adjust : exact; }
|
||||
.useSansSerif() {
|
||||
font-family : "ScalySansRemake";
|
||||
font-family : 'ScalySansRemake';
|
||||
font-size : 0.318cm;
|
||||
line-height : 1.2em;
|
||||
p,dl,ul,ol { line-height : 1.2em; }
|
||||
@@ -57,7 +57,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
height : 279.4mm;
|
||||
padding : 1.4cm 1.9cm 1.7cm;
|
||||
overflow : hidden;
|
||||
font-family : "BookInsanityRemake";
|
||||
font-family : 'BookInsanityRemake';
|
||||
font-size : 0.34cm;
|
||||
counter-increment : phb-page-numbers;
|
||||
background-color : var(--HB_Color_Background);
|
||||
@@ -114,7 +114,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
// * HEADERS
|
||||
// *****************************/
|
||||
h1,h2,h3,h4 {
|
||||
font-family : "MrEavesRemake";
|
||||
font-family : 'MrEavesRemake';
|
||||
font-weight : 800;
|
||||
color : var(--HB_Color_HeaderText);
|
||||
}
|
||||
@@ -132,7 +132,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
margin-top : -0.3cm;
|
||||
margin-bottom : -20px;
|
||||
margin-left : -40px;
|
||||
font-family : "SolberaImitationRemake";
|
||||
font-family : 'SolberaImitationRemake';
|
||||
font-size : 3.5cm;
|
||||
line-height : 1em;
|
||||
color : rgba(0, 0, 0, 0);
|
||||
@@ -172,7 +172,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
h5 {
|
||||
//margin-top : -0.02cm; //Font is misaligned. Shift up slightly
|
||||
//margin-bottom : 0.02cm;
|
||||
font-family : "ScalySansSmallCapsRemake";
|
||||
font-family : 'ScalySansSmallCapsRemake';
|
||||
font-size : 0.423cm;
|
||||
font-weight : 900;
|
||||
line-height : 0.951em; //Font is misaligned. Shift up slightly
|
||||
@@ -299,7 +299,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
.artist {
|
||||
position : absolute;
|
||||
width : auto;
|
||||
font-family : "WalterTurncoat";
|
||||
font-family : 'WalterTurncoat';
|
||||
font-size : 0.27cm;
|
||||
color : var(--HB_Color_CaptionText);
|
||||
text-align : center;
|
||||
@@ -309,7 +309,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
text-indent : unset;
|
||||
}
|
||||
h5 {
|
||||
font-family : "WalterTurncoat";
|
||||
font-family : 'WalterTurncoat';
|
||||
font-size : 1.3em;
|
||||
}
|
||||
a {
|
||||
@@ -405,12 +405,9 @@ body { counter-reset : phb-page-numbers; }
|
||||
}
|
||||
}
|
||||
h3 {
|
||||
// margin-top : 0.05cm; //Font is misaligned. Shift up slightly
|
||||
padding-bottom : 0.05cm;
|
||||
font-family : "ScalySansRemake";
|
||||
font-weight : 800;
|
||||
font-variant : small-caps;
|
||||
border-bottom : 2px solid var(--HB_Color_HeaderText);
|
||||
font-family : 'ScalySansSmallCapsRemake';
|
||||
font-size : 0.45cm;
|
||||
border-bottom : 1.5px solid var(--HB_Color_HeaderText);
|
||||
}
|
||||
|
||||
//Triangle dividers
|
||||
@@ -503,7 +500,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
// ************************************/
|
||||
code {
|
||||
padding : 0px 4px;
|
||||
font-family : 'Courier New', "Courier", monospace;
|
||||
font-family : 'Courier New', 'Courier', monospace;
|
||||
font-size : 0.325;
|
||||
color : #58180D;
|
||||
overflow-wrap : break-word;
|
||||
@@ -641,7 +638,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
h1 {
|
||||
margin-top : 1.2cm;
|
||||
margin-bottom : 0;
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 2.245cm;
|
||||
font-weight : normal;
|
||||
line-height : 0.85em;
|
||||
@@ -654,7 +651,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
drop-shadow(0 0 0 black) drop-shadow(0 0 0 black);
|
||||
}
|
||||
h2 {
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 0.85cm;
|
||||
font-weight : normal;
|
||||
color : white;
|
||||
@@ -687,7 +684,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
height : 1.7cm;
|
||||
padding-top : 0.1cm;
|
||||
padding-left : 1cm;
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 1cm;
|
||||
font-weight : normal;
|
||||
color : white;
|
||||
@@ -704,7 +701,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
width : 70%;
|
||||
margin-right : auto;
|
||||
margin-left : auto;
|
||||
font-family : "Overpass";
|
||||
font-family : 'Overpass';
|
||||
font-size : 0.496cm;
|
||||
color : white;
|
||||
text-align : center;
|
||||
@@ -735,14 +732,14 @@ body { counter-reset : phb-page-numbers; }
|
||||
h1 {
|
||||
margin-top : 1.2cm;
|
||||
margin-bottom : 0;
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 2.1cm;
|
||||
font-weight : normal;
|
||||
line-height : 0.85em;
|
||||
text-transform : uppercase;
|
||||
}
|
||||
h2 {
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 0.85cm;
|
||||
font-weight : normal;
|
||||
letter-spacing : 0.5cm;
|
||||
@@ -791,7 +788,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
.blank { height : 1.4em; }
|
||||
h1 {
|
||||
margin-bottom : 0.3cm;
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 1.35cm;
|
||||
line-height : 0.95em;
|
||||
color : #ED1C24;
|
||||
@@ -817,7 +814,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
border : none;
|
||||
}
|
||||
p {
|
||||
font-family : "Overpass";
|
||||
font-family : 'Overpass';
|
||||
font-size : 0.332cm;
|
||||
line-height : 1.5em;
|
||||
}
|
||||
@@ -841,7 +838,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
p {
|
||||
position : relative;
|
||||
width : 100%;
|
||||
font-family : "NodestoCapsWide";
|
||||
font-family : 'NodestoCapsWide';
|
||||
font-size : 0.4cm;
|
||||
line-height : 1em;
|
||||
color : #FFFFFF;
|
||||
@@ -874,7 +871,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
h1 {
|
||||
position : relative;
|
||||
margin-top : 0.4cm;
|
||||
font-family : "NodestoCapsCondensed";
|
||||
font-family : 'NodestoCapsCondensed';
|
||||
font-size : 2.3cm;
|
||||
text-align : center;
|
||||
text-transform : uppercase;
|
||||
@@ -885,7 +882,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
margin-top : -0.7em;
|
||||
margin-right : auto;
|
||||
margin-left : auto;
|
||||
font-family : "Overpass";
|
||||
font-family : 'Overpass';
|
||||
font-size : 0.45cm;
|
||||
line-height : 1.1em;
|
||||
}
|
||||
@@ -968,9 +965,8 @@ body { counter-reset : phb-page-numbers; }
|
||||
padding-left : 1em;
|
||||
line-height : 1.25em;
|
||||
white-space : pre-line;
|
||||
& + * { margin-top : 0.28cm; }
|
||||
& + * { margin-top : 0.17cm; }
|
||||
}
|
||||
dl + * { margin-top : 0.17cm; }
|
||||
p + dl { margin-top : 0.17cm; }
|
||||
dt {
|
||||
display : inline;
|
||||
@@ -1009,7 +1005,7 @@ body { counter-reset : phb-page-numbers; }
|
||||
outline : 1px solid #000000;
|
||||
}
|
||||
th {
|
||||
font-family : "BookInsanityRemake";
|
||||
font-family : 'BookInsanityRemake';
|
||||
font-size : 0.45cm;
|
||||
}
|
||||
td { font-size : 0.7cm; }
|
||||
|
||||
129
themes/codeMirror/customThemes/darkbrewery-v301.css
Normal file
129
themes/codeMirror/customThemes/darkbrewery-v301.css
Normal file
@@ -0,0 +1,129 @@
|
||||
/* Main BG color and normal text color */
|
||||
.CodeMirror {
|
||||
background: #293134;
|
||||
color: #91A6AA;
|
||||
}
|
||||
|
||||
/* Brew BG */
|
||||
.brewRenderer {
|
||||
background-color: #293134;
|
||||
}
|
||||
/* Blinking cursor */
|
||||
.CodeMirror-cursor {
|
||||
border-left: 1px solid #e0e2e4;
|
||||
}
|
||||
|
||||
/* HB DARK NAV START*/
|
||||
|
||||
/* Bars at the top */
|
||||
.snippetBar {
|
||||
background-color: #2F393C;
|
||||
color: white;
|
||||
}
|
||||
nav {
|
||||
background-color: #293134;
|
||||
}
|
||||
nav .navItem {
|
||||
background-color: #293134;
|
||||
}
|
||||
/* Fix for Homebrewery custom Snippet icons */
|
||||
.snippetBar .fac {
|
||||
filter: invert(1);
|
||||
}
|
||||
.snippetBar .snippetGroup .dropdown {
|
||||
background-color: #2F393C;
|
||||
}
|
||||
/* HB DARK NAV END */
|
||||
|
||||
/* Line number stuff */
|
||||
.CodeMirror-gutter-elt {
|
||||
color: #81969A;
|
||||
}
|
||||
.CodeMirror-linenumber {
|
||||
background-color: #293134;
|
||||
}
|
||||
.CodeMirror-gutter {
|
||||
background-color: #293134;
|
||||
}
|
||||
/* column splits */
|
||||
.editor .codeEditor .columnSplit {
|
||||
font-style: italic;
|
||||
color: inherit;
|
||||
background-color:#1f5763;
|
||||
border-bottom: #299 solid 1px;
|
||||
}
|
||||
|
||||
/* Colors for headings and such */
|
||||
/* ###Headings */
|
||||
.cm-s-default .cm-header {
|
||||
color: #c51b1b;
|
||||
-webkit-text-stroke-width: 0.1px;
|
||||
-webkit-text-stroke-color: #000;
|
||||
}
|
||||
/* bold points */
|
||||
.cm-header, .cm-strong {
|
||||
font-weight: bold;
|
||||
color: #309dd2;
|
||||
}
|
||||
/* Link headings */
|
||||
.cm-s-default .cm-link {
|
||||
color: #dd6300;
|
||||
}
|
||||
/* links */
|
||||
.cm-s-default .cm-string {
|
||||
color: #aa8261;
|
||||
}
|
||||
/*@import*/
|
||||
.cm-s-default .cm-def {
|
||||
color:#2986cc;
|
||||
}
|
||||
/* Bullets and such */
|
||||
.cm-s-default .cm-variable-2 {
|
||||
color: #3cbf30;
|
||||
}
|
||||
/* blocks */
|
||||
.editor .codeEditor .block:not(.cm-comment) {
|
||||
color: #e3e3e3;
|
||||
}
|
||||
/* inline blocks */
|
||||
.editor .codeEditor .inline-block {
|
||||
color: #e3e3e3;
|
||||
}
|
||||
/* Tags (divs) */
|
||||
.cm-s-default .cm-tag {
|
||||
color: #e3ff00;
|
||||
}
|
||||
.cm-s-default .cm-attribute {
|
||||
color: #e3ff00;
|
||||
}
|
||||
.cm-s-default .cm-atom {
|
||||
color:#000;
|
||||
}
|
||||
.cm-s-default .cm-qualifier{
|
||||
color:#ee1919;
|
||||
}
|
||||
.cm-s-default .cm-comment{
|
||||
color:#bbc700;
|
||||
}
|
||||
.cm-s-default .cm-keyword {
|
||||
color:#c302df;
|
||||
background-color:#b1b1b1;
|
||||
}
|
||||
.cm-s-default .cm-property.cm-error {
|
||||
color:#c50202;
|
||||
}
|
||||
|
||||
.CodeMirror-foldmarker {
|
||||
color:#f0ff00;
|
||||
}
|
||||
|
||||
/* New page */
|
||||
.editor .codeEditor .pageLine {
|
||||
background: #000;
|
||||
color:#000;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
.cm-s-default .cm-builtin {
|
||||
color:#fff;
|
||||
}
|
||||
@@ -15,6 +15,7 @@
|
||||
"cobalt",
|
||||
"colorforth",
|
||||
"darcula",
|
||||
"darkbrewery-v301",
|
||||
"dracula",
|
||||
"duotone-dark",
|
||||
"duotone-light",
|
||||
|
||||
Reference in New Issue
Block a user