0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-06-22 04:58:40 +00:00

Merge pull request #4822 from naturalcrit/lint

Lint repository
This commit is contained in:
Víctor Losada Hernández
2026-05-18 16:32:19 +02:00
committed by GitHub
7 changed files with 51 additions and 54 deletions
@@ -86,8 +86,8 @@ export function tokenizeCustomMarkdown(text) {
if(/\~/.test(lineText)) { if(/\~/.test(lineText)) {
const strikethroughRegex = /~(?!\s)(.+?)(?<!\s)~/g; const strikethroughRegex = /~(?!\s)(.+?)(?<!\s)~/g;
let match = strikethroughRegex.exec(lineText); const match = strikethroughRegex.exec(lineText);
let type = customTags.strikethrough; const type = customTags.strikethrough;
if(match) { if(match) {
tokens.push({ tokens.push({
+22 -24
View File
@@ -3,15 +3,15 @@ import { keymap } from '@codemirror/view';
import { undo, redo, indentMore, deleteLine } from '@codemirror/commands'; import { undo, redo, indentMore, deleteLine } from '@codemirror/commands';
import { Prec } from '@codemirror/state'; import { Prec } from '@codemirror/state';
const insertTab = (view) => { const insertTab = (view)=>{
const { from, to } = view.state.selection.main; const { from, to } = view.state.selection.main;
view.dispatch({ view.dispatch({
changes: { from, to, insert: ' ' }, changes : { from, to, insert: ' ' },
selection: { anchor: from + 2 } selection : { anchor: from + 2 }
}); });
return true; return true;
}; };
const indentLess = (view)=>{ const indentLess = (view)=>{
@@ -28,20 +28,18 @@ const indentLess = (view)=>{
return true; return true;
}; };
const wrapSelection = (prefix, suffix) => (view) => { const wrapSelection = (prefix, suffix)=>(view)=>{
const changes = []; const changes = [];
for(const range of view.state.selection.ranges) { for (const range of view.state.selection.ranges) {
const { from, to } = range; const { from, to } = range;
const selected = view.state.doc.sliceString(from, to); const selected = view.state.doc.sliceString(from, to);
let text; let text;
if(from === to) { text = prefix + suffix } if(from === to) { text = prefix + suffix; } else if(selected.startsWith(prefix) && selected.endsWith(suffix)) {
else if(selected.startsWith(prefix) && selected.endsWith(suffix)) {
text = selected.slice(prefix.length, -suffix.length); text = selected.slice(prefix.length, -suffix.length);
} } else {text = `${prefix}${selected}${suffix}`;}
else {text = `${prefix}${selected}${suffix}`}
changes.push({ from, to, insert: text }); changes.push({ from, to, insert: text });
} }
@@ -53,21 +51,21 @@ const wrapSelection = (prefix, suffix) => (view) => {
return true; return true;
}; };
const makeNbsp = (view) => { const makeNbsp = (view)=>{
const { from } = view.state.selection.main; const { from } = view.state.selection.main;
const prev2 = from >= 2 const prev2 = from >= 2
? view.state.doc.sliceString(from - 2, from) ? view.state.doc.sliceString(from - 2, from)
: ''; : '';
const insert = (prev2 === ':>' || prev2 === '>>') ? '>' : ':>'; const insert = (prev2 === ':>' || prev2 === '>>') ? '>' : ':>';
view.dispatch({ view.dispatch({
changes : { from, to: from, insert }, changes : { from, to: from, insert },
selection : { anchor: from + insert.length }, selection : { anchor: from + insert.length },
}); });
return true; return true;
}; };
const makeSpace = (view)=>{ const makeSpace = (view)=>{
@@ -30,18 +30,17 @@ import cm5Themes from 'codemirror-5-themes';
const themes = { default: defaultCM5Theme, ...cm5Themes, darkbrewery }; const themes = { default: defaultCM5Theme, ...cm5Themes, darkbrewery };
const themeNames = Object.entries(themes) const themeNames = Object.entries(themes)
.filter(([name, value]) => .filter(([name, value])=>Array.isArray(value) &&
Array.isArray(value) &&
!name.endsWith('Init') && !name.endsWith('Init') &&
!name.endsWith('Style') !name.endsWith('Style')
) )
.map(([name]) => name); .map(([name])=>name);
const EditorThemes = [ const EditorThemes = [
'default', 'default',
...themeNames ...themeNames
.filter(name => name !== 'default') .filter((name)=>name !== 'default')
.sort((a, b) => a.localeCompare(b)) .sort((a, b)=>a.localeCompare(b))
]; ];
const execute = function(val, props){ const execute = function(val, props){
+9 -9
View File
@@ -32,20 +32,20 @@ const isStaticTheme = (renderer, themeName)=>{
// }; // };
const migrateSystemsToTags = (brew) => { const migrateSystemsToTags = (brew)=>{
if (!('systems' in brew)) return brew; if(!('systems' in brew)) return brew;
if (!Array.isArray(brew.systems) || brew.systems.length === 0) { if(!Array.isArray(brew.systems) || brew.systems.length === 0) {
brew.systems = undefined; brew.systems = undefined;
return brew; return brew;
} }
const systemMap = { const systemMap = {
'5e': 'system:D&D 5e', '5e' : 'system:D&D 5e',
'4e': 'system:D&D 4e', '4e' : 'system:D&D 4e',
'3.5e': 'system:D&D 3.5e', '3.5e' : 'system:D&D 3.5e',
'Pathfinder': 'system:Pathfinder 2e' 'Pathfinder' : 'system:Pathfinder 2e'
}; };
const systemTags = brew.systems.map(s => systemMap[s]); const systemTags = brew.systems.map((s)=>systemMap[s]);
brew.tags = _.uniq([...(brew.tags || []), ...systemTags]); brew.tags = _.uniq([...(brew.tags || []), ...systemTags]);
brew.systems = undefined; brew.systems = undefined;
@@ -188,7 +188,7 @@ const api = {
stub.renderer = stub.renderer || undefined; // Clear empty strings stub.renderer = stub.renderer || undefined; // Clear empty strings
stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields
const fixedStub = migrateSystemsToTags(stub); const fixedStub = migrateSystemsToTags(stub);
req.brew = fixedStub; req.brew = fixedStub;
+1 -1
View File
@@ -15,7 +15,7 @@ const HomebrewSchema = mongoose.Schema({
description : { type: String, default: '' }, description : { type: String, default: '' },
tags : { type: [String], index: true }, tags : { type: [String], index: true },
systems : { type: [String], default: undefined }, systems : { type: [String], default: undefined },
lang : { type: String, default: 'en', index: true }, lang : { type: String, default: 'en', index: true },
renderer : { type: String, default: '', index: true }, renderer : { type: String, default: '', index: true },
authors : { type: [String], index: true }, authors : { type: [String], index: true },
+10 -10
View File
@@ -16,17 +16,17 @@ export default {
edge : (side = 'bottom')=>{ edge : (side = 'bottom')=>{
const styles = ()=>{ const styles = ()=>{
switch (side) { switch (side) {
case 'bottom': case 'bottom':
return `{width:100%,bottom:0%}` return `{width:100%,bottom:0%}`;
break; break;
case 'top': case 'top':
return `{width:100%,top:0%}` return `{width:100%,top:0%}`;
break; break;
default: default:
return `{height:100%}` return `{height:100%}`;
break; break;
} }
} };
const rotation = { const rotation = {
'bottom' : 0, 'bottom' : 0,
+1 -1
View File
@@ -93,7 +93,7 @@ export default EditorView.theme({
'.cm-strong' : { color: '#309dd2', fontWeight: 'bold' }, '.cm-strong' : { color: '#309dd2', fontWeight: 'bold' },
'.cm-em' : { fontStyle: 'italic' }, '.cm-em' : { fontStyle: 'italic' },
'.cm-keyword' : { color: '#fff' }, '.cm-keyword' : { color: '#fff' },
'.cm-atom, .cm-value, .cm-color' : { color: '#c1939a' }, '.cm-atom, .cm-value, .cm-color' : { color: '#c1939a' },
'.cm-number' : { color: '#2986cc' }, '.cm-number' : { color: '#2986cc' },
'.cm-def' : { color: '#2986cc' }, '.cm-def' : { color: '#2986cc' },
'.cm-list' : { color: '#3cbf30' }, '.cm-list' : { color: '#3cbf30' },