diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx b/packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx index 64b1c2b9c5..10188d4f77 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx @@ -793,7 +793,7 @@ const TinyMCE = (props: NoteBodyEditorProps, ref: any) => { }; } - await loadDocumentAssets(editor, await props.allAssets(props.contentMarkupLanguage)); + await loadDocumentAssets(editor, await props.allAssets(props.contentMarkupLanguage, { contentMaxWidthTarget: '.mce-content-body' })); dispatchDidUpdate(editor); }; diff --git a/packages/app-desktop/gui/NoteEditor/NoteEditor.tsx b/packages/app-desktop/gui/NoteEditor/NoteEditor.tsx index dfa6135beb..d2d2722c41 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteEditor.tsx +++ b/packages/app-desktop/gui/NoteEditor/NoteEditor.tsx @@ -14,7 +14,7 @@ import useMarkupToHtml from './utils/useMarkupToHtml'; import useFormNote, { OnLoadEvent } from './utils/useFormNote'; import useFolder from './utils/useFolder'; import styles_ from './styles'; -import { NoteEditorProps, FormNote, ScrollOptions, ScrollOptionTypes, OnChangeEvent, NoteBodyEditorProps } from './utils/types'; +import { NoteEditorProps, FormNote, ScrollOptions, ScrollOptionTypes, OnChangeEvent, NoteBodyEditorProps, AllAssetsOptions } from './utils/types'; import ResourceEditWatcher from '@joplin/lib/services/ResourceEditWatcher/index'; import CommandService from '@joplin/lib/services/CommandService'; import ToolbarButton from '../ToolbarButton/ToolbarButton'; @@ -151,7 +151,7 @@ function NoteEditor(props: NoteEditorProps) { plugins: props.plugins, }); - const allAssets = useCallback(async (markupLanguage: number): Promise => { + const allAssets = useCallback(async (markupLanguage: number, options: AllAssetsOptions = null): Promise => { const theme = themeStyle(props.themeId); const markupToHtml = markupLanguageUtils.newMarkupToHtml({}, { @@ -159,7 +159,10 @@ function NoteEditor(props: NoteEditorProps) { customCss: props.customCss, }); - return markupToHtml.allAssets(markupLanguage, theme, { contentMaxWidth: props.contentMaxWidth }); + return markupToHtml.allAssets(markupLanguage, theme, { + contentMaxWidth: props.contentMaxWidth, + contentMaxWidthTarget: options.contentMaxWidthTarget, + }); }, [props.themeId, props.customCss, props.contentMaxWidth]); const handleProvisionalFlag = useCallback(() => { diff --git a/packages/app-desktop/gui/NoteEditor/utils/types.ts b/packages/app-desktop/gui/NoteEditor/utils/types.ts index 0fa19bde13..24d9c39b4b 100644 --- a/packages/app-desktop/gui/NoteEditor/utils/types.ts +++ b/packages/app-desktop/gui/NoteEditor/utils/types.ts @@ -6,6 +6,10 @@ import { MarkupLanguage } from '@joplin/renderer'; import { RenderResult, RenderResultPluginAsset } from '@joplin/renderer/MarkupToHtml'; import { MarkupToHtmlOptions } from './useMarkupToHtml'; +export interface AllAssetsOptions { + contentMaxWidthTarget?: string; +} + export interface ToolbarButtonInfos { [key: string]: ToolbarButtonInfo; } @@ -55,7 +59,7 @@ export interface NoteBodyEditorProps { onScroll(event: any): void; markupToHtml: (markupLanguage: MarkupLanguage, markup: string, options: MarkupToHtmlOptions)=> Promise; htmlToMarkdown: Function; - allAssets: (markupLanguage: MarkupLanguage)=> Promise; + allAssets: (markupLanguage: MarkupLanguage, options: AllAssetsOptions)=> Promise; disabled: boolean; dispatch: Function; noteToolbar: any; diff --git a/packages/renderer/noteStyle.ts b/packages/renderer/noteStyle.ts index d1bbe1749b..e8f695e819 100644 --- a/packages/renderer/noteStyle.ts +++ b/packages/renderer/noteStyle.ts @@ -9,6 +9,7 @@ function formatCssSize(v: any): string { export interface Options { contentMaxWidth?: number; + contentMaxWidthTarget?: string; } export default function(theme: any, options: Options = null) { @@ -21,8 +22,9 @@ export default function(theme: any, options: Options = null) { const fontFamily = '\'Avenir\', \'Arial\', sans-serif'; + const maxWidthTarget = options.contentMaxWidthTarget ? options.contentMaxWidthTarget : '#rendered-md'; const maxWidthCss = options.contentMaxWidth ? ` - #rendered-md { + ${maxWidthTarget} { max-width: ${options.contentMaxWidth}px; margin-left: auto; margin-right: auto;