mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-25 12:34:45 -04:00
Don't send frontmatter to renderer (#2259)
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
c50037fc9f
commit
f68b3ff056
24 changed files with 215 additions and 176 deletions
|
@ -16,8 +16,7 @@ import { countWords } from './word-counter'
|
|||
import { useRendererToEditorCommunicator } from '../editor-page/render-context/renderer-to-editor-communicator-context-provider'
|
||||
import { useRendererReceiveHandler } from './window-post-message-communicator/hooks/use-renderer-receive-handler'
|
||||
import { SlideshowMarkdownRenderer } from '../markdown-renderer/slideshow-markdown-renderer'
|
||||
import { initialState } from '../../redux/note-details/initial-state'
|
||||
import type { RendererFrontmatterInfo } from '../../redux/note-details/types/note-details'
|
||||
import type { SlideOptions } from '../../redux/note-details/types/slide-show-options'
|
||||
|
||||
/**
|
||||
* Wraps the markdown rendering in an iframe.
|
||||
|
@ -26,12 +25,17 @@ export const IframeMarkdownRenderer: React.FC = () => {
|
|||
const [markdownContentLines, setMarkdownContentLines] = useState<string[]>([])
|
||||
const [scrollState, setScrollState] = useState<ScrollState>({ firstLineInView: 1, scrolledPercentage: 0 })
|
||||
const [baseConfiguration, setBaseConfiguration] = useState<BaseConfiguration | undefined>(undefined)
|
||||
const [frontmatterInfo, setFrontmatterInfo] = useState<RendererFrontmatterInfo>(initialState.frontmatterRendererInfo)
|
||||
const [slideOptions, setSlideOptions] = useState<SlideOptions>()
|
||||
|
||||
const communicator = useRendererToEditorCommunicator()
|
||||
|
||||
const sendScrolling = useRef<boolean>(false)
|
||||
|
||||
useRendererReceiveHandler(
|
||||
CommunicationMessageType.SET_SLIDE_OPTIONS,
|
||||
useCallback((values) => setSlideOptions(values.slideOptions), [])
|
||||
)
|
||||
|
||||
useRendererReceiveHandler(
|
||||
CommunicationMessageType.DISABLE_RENDERER_SCROLL_SOURCE,
|
||||
useCallback(() => {
|
||||
|
@ -59,11 +63,6 @@ export const IframeMarkdownRenderer: React.FC = () => {
|
|||
useCallback((values) => setScrollState(values.scrollState), [])
|
||||
)
|
||||
|
||||
useRendererReceiveHandler(
|
||||
CommunicationMessageType.SET_FRONTMATTER_INFO,
|
||||
useCallback((values) => setFrontmatterInfo(values.frontmatterInfo), [])
|
||||
)
|
||||
|
||||
useRendererReceiveHandler(
|
||||
CommunicationMessageType.GET_WORD_COUNT,
|
||||
useCallback(() => {
|
||||
|
@ -145,7 +144,6 @@ export const IframeMarkdownRenderer: React.FC = () => {
|
|||
onScroll={onScroll}
|
||||
baseUrl={baseConfiguration.baseUrl}
|
||||
onImageClick={onImageClick}
|
||||
frontmatterInfo={frontmatterInfo}
|
||||
/>
|
||||
)
|
||||
case RendererType.SLIDESHOW:
|
||||
|
@ -156,8 +154,7 @@ export const IframeMarkdownRenderer: React.FC = () => {
|
|||
onFirstHeadingChange={onFirstHeadingChange}
|
||||
onImageClick={onImageClick}
|
||||
scrollState={scrollState}
|
||||
lineOffset={frontmatterInfo.lineOffset}
|
||||
slideOptions={frontmatterInfo.slideOptions}
|
||||
slideOptions={slideOptions}
|
||||
/>
|
||||
)
|
||||
case RendererType.INTRO:
|
||||
|
|
|
@ -16,7 +16,6 @@ import styles from './markdown-document.module.scss'
|
|||
import { WidthBasedTableOfContents } from './width-based-table-of-contents'
|
||||
import { ShowIf } from '../common/show-if/show-if'
|
||||
import { useApplicationState } from '../../hooks/common/use-application-state'
|
||||
import type { RendererFrontmatterInfo } from '../../redux/note-details/types/note-details'
|
||||
|
||||
export interface RendererProps extends ScrollProps {
|
||||
onFirstHeadingChange?: (firstHeading: string | undefined) => void
|
||||
|
@ -32,7 +31,6 @@ export interface MarkdownDocumentProps extends RendererProps {
|
|||
additionalRendererClasses?: string
|
||||
disableToc?: boolean
|
||||
baseUrl: string
|
||||
frontmatterInfo?: RendererFrontmatterInfo
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -50,7 +48,6 @@ export interface MarkdownDocumentProps extends RendererProps {
|
|||
* @param scrollState The current {@link ScrollState}
|
||||
* @param onHeightChange The callback to call if the height of the document changes
|
||||
* @param disableToc If the table of contents should be disabled.
|
||||
* @param frontmatterInfo The frontmatter information for the renderer.
|
||||
* @see https://markdown-it.github.io/
|
||||
*/
|
||||
export const MarkdownDocument: React.FC<MarkdownDocumentProps> = ({
|
||||
|
@ -65,8 +62,7 @@ export const MarkdownDocument: React.FC<MarkdownDocumentProps> = ({
|
|||
onScroll,
|
||||
scrollState,
|
||||
onHeightChange,
|
||||
disableToc,
|
||||
frontmatterInfo
|
||||
disableToc
|
||||
}) => {
|
||||
const rendererRef = useRef<HTMLDivElement | null>(null)
|
||||
const [rendererSize, setRendererSize] = useState<DOMRectReadOnly>()
|
||||
|
@ -115,7 +111,6 @@ export const MarkdownDocument: React.FC<MarkdownDocumentProps> = ({
|
|||
baseUrl={baseUrl}
|
||||
onImageClick={onImageClick}
|
||||
newlinesAreBreaks={newlinesAreBreaks}
|
||||
lineOffset={frontmatterInfo?.lineOffset}
|
||||
/>
|
||||
</div>
|
||||
<div className={`${styles['markdown-document-side']} pt-4`}>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
import type { ScrollState } from '../../editor-page/synced-scroll/scroll-props'
|
||||
import type { RendererFrontmatterInfo } from '../../../redux/note-details/types/note-details'
|
||||
import type { SlideOptions } from '../../../redux/note-details/types/slide-show-options'
|
||||
|
||||
export enum CommunicationMessageType {
|
||||
SET_MARKDOWN_CONTENT = 'SET_MARKDOWN_CONTENT',
|
||||
|
@ -20,7 +20,7 @@ export enum CommunicationMessageType {
|
|||
SET_BASE_CONFIGURATION = 'SET_BASE_CONFIGURATION',
|
||||
GET_WORD_COUNT = 'GET_WORD_COUNT',
|
||||
ON_WORD_COUNT_CALCULATED = 'ON_WORD_COUNT_CALCULATED',
|
||||
SET_FRONTMATTER_INFO = 'SET_FRONTMATTER_INFO',
|
||||
SET_SLIDE_OPTIONS = 'SET_SLIDE_OPTIONS',
|
||||
IMAGE_UPLOAD = 'IMAGE_UPLOAD'
|
||||
}
|
||||
|
||||
|
@ -82,9 +82,9 @@ export interface OnFirstHeadingChangeMessage {
|
|||
firstHeading: string | undefined
|
||||
}
|
||||
|
||||
export interface SetFrontmatterInfoMessage {
|
||||
type: CommunicationMessageType.SET_FRONTMATTER_INFO
|
||||
frontmatterInfo: RendererFrontmatterInfo
|
||||
export interface SetSlideOptionsMessage {
|
||||
type: CommunicationMessageType.SET_SLIDE_OPTIONS
|
||||
slideOptions: SlideOptions
|
||||
}
|
||||
|
||||
export interface OnHeightChangeMessage {
|
||||
|
@ -109,7 +109,7 @@ export type CommunicationMessages =
|
|||
| SetScrollStateMessage
|
||||
| OnTaskCheckboxChangeMessage
|
||||
| OnFirstHeadingChangeMessage
|
||||
| SetFrontmatterInfoMessage
|
||||
| SetSlideOptionsMessage
|
||||
| OnHeightChangeMessage
|
||||
| OnWordCountCalculatedMessage
|
||||
| ImageUploadMessage
|
||||
|
@ -120,7 +120,7 @@ export type EditorToRendererMessageType =
|
|||
| CommunicationMessageType.SET_SCROLL_STATE
|
||||
| CommunicationMessageType.SET_BASE_CONFIGURATION
|
||||
| CommunicationMessageType.GET_WORD_COUNT
|
||||
| CommunicationMessageType.SET_FRONTMATTER_INFO
|
||||
| CommunicationMessageType.SET_SLIDE_OPTIONS
|
||||
| CommunicationMessageType.DISABLE_RENDERER_SCROLL_SOURCE
|
||||
|
||||
export type RendererToEditorMessageType =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue