From e0d74fcb0eb486df5ea5046585ea02472055cca3 Mon Sep 17 00:00:00 2001 From: Philip Okugbe Date: Sun, 4 Aug 2024 10:06:22 +0200 Subject: [PATCH] Fix: editor formatting (#137) * reduce space between list items * reduce spacing * Make inline code readable in dark mode * Disable spellcheck in code * fix numbered list in toggle block --- .../features/editor/extensions/extensions.ts | 8 +++++++ .../src/features/editor/page-editor.tsx | 2 -- .../src/features/editor/styles/code.css | 18 ++++++++++++++++ .../src/features/editor/styles/core.css | 21 ++++++++++++------- .../src/features/editor/styles/details.css | 3 +-- 5 files changed, 40 insertions(+), 12 deletions(-) diff --git a/apps/client/src/features/editor/extensions/extensions.ts b/apps/client/src/features/editor/extensions/extensions.ts index 6f059988..c2ba9574 100644 --- a/apps/client/src/features/editor/extensions/extensions.ts +++ b/apps/client/src/features/editor/extensions/extensions.ts @@ -56,6 +56,11 @@ export const mainExtensions = [ color: "#70CFF8", }, codeBlock: false, + code: { + HTMLAttributes: { + spellcheck: false, + }, + }, }), Placeholder.configure({ placeholder: ({ node }) => { @@ -131,6 +136,9 @@ export const mainExtensions = [ }), CodeBlockLowlight.configure({ lowlight, + HTMLAttributes: { + spellcheck: false, + }, }), Selection, ] as any; diff --git a/apps/client/src/features/editor/page-editor.tsx b/apps/client/src/features/editor/page-editor.tsx index 3eca06a7..410102cc 100644 --- a/apps/client/src/features/editor/page-editor.tsx +++ b/apps/client/src/features/editor/page-editor.tsx @@ -31,8 +31,6 @@ import TableCellMenu from "@/features/editor/components/table/table-cell-menu.ts import TableMenu from "@/features/editor/components/table/table-menu.tsx"; import ImageMenu from "@/features/editor/components/image/image-menu.tsx"; import CalloutMenu from "@/features/editor/components/callout/callout-menu.tsx"; -import { uploadImageAction } from "@/features/editor/components/image/upload-image-action.tsx"; -import { uploadVideoAction } from "@/features/editor/components/video/upload-video-action.tsx"; import VideoMenu from "@/features/editor/components/video/video-menu.tsx"; import { handleFileDrop, diff --git a/apps/client/src/features/editor/styles/code.css b/apps/client/src/features/editor/styles/code.css index d4d2a2dd..5c0176f3 100644 --- a/apps/client/src/features/editor/styles/code.css +++ b/apps/client/src/features/editor/styles/code.css @@ -86,4 +86,22 @@ font-weight: 700; } } + + :not(pre) > code { + font-family: "JetBrainsMono", var(--mantine-font-family-monospace); + line-height: var(--mantine-line-height); + padding: 2px calc(var(--mantine-spacing-xs) / 2); + border-radius: var(--mantine-radius-sm); + margin: 0; + + @mixin where-light { + background-color: var(--code-bg, var(--mantine-color-gray-1)); + color: var(--mantine-color-black); + } + + @mixin where-dark { + background-color: var(--mantine-color-dark-8); + color: var(--mantine-color-gray-4); + } + } } diff --git a/apps/client/src/features/editor/styles/core.css b/apps/client/src/features/editor/styles/core.css index 94af10a2..1709b42e 100644 --- a/apps/client/src/features/editor/styles/core.css +++ b/apps/client/src/features/editor/styles/core.css @@ -20,6 +20,11 @@ outline: none; } + p { + margin-top: 0.65em; + margin-bottom: 0.65em; + } + ul, ol { padding: 0 1rem; @@ -27,6 +32,12 @@ margin-bottom: 0.25rem; } + ul p, + ol p { + margin-top: 0; + margin-bottom: 0; + } + h1, h2, h3, @@ -80,15 +91,9 @@ outline: 2px solid #70cff8; } - .node-mathInline { - .katex-display { - margin: 0; - } - } - & > .react-renderer { - margin-top: var(--mantine-spacing-xl); - margin-bottom: var(--mantine-spacing-xl); + margin-top: var(--mantine-spacing-sm); + margin-bottom: var(--mantine-spacing-sm); &:first-child { margin-top: 0; diff --git a/apps/client/src/features/editor/styles/details.css b/apps/client/src/features/editor/styles/details.css index 959a1789..244c44f6 100644 --- a/apps/client/src/features/editor/styles/details.css +++ b/apps/client/src/features/editor/styles/details.css @@ -50,8 +50,7 @@ [data-type="detailsContainer"] { flex: 1; - margin-left: 0.2em; - overflow-x: hidden; + padding: 4px; word-break: break-word; overflow-wrap: break-word;