diff --git a/backend/app/controllers/wiki_assets_controller.rb b/backend/app/controllers/wiki_assets_controller.rb index dfb8cf8..eca800e 100644 --- a/backend/app/controllers/wiki_assets_controller.rb +++ b/backend/app/controllers/wiki_assets_controller.rb @@ -33,6 +33,6 @@ class WikiAssetsController < ApplicationController page.update!(next_asset_no: no + 1) end - render json: asset + render json: asset.as_json(methods: [:url]) end end diff --git a/backend/app/models/wiki_asset.rb b/backend/app/models/wiki_asset.rb index 4fb5d66..52321cf 100644 --- a/backend/app/models/wiki_asset.rb +++ b/backend/app/models/wiki_asset.rb @@ -7,4 +7,8 @@ class WikiAsset < ApplicationRecord has_one_attached :file validates :file, presence: true + + def url + Rails.application.routes.url_helpers.rails_blob_url(file, only_path: true) + end end diff --git a/frontend/src/components/WikiBody.tsx b/frontend/src/components/WikiBody.tsx index 86381e5..a071e79 100644 --- a/frontend/src/components/WikiBody.tsx +++ b/frontend/src/components/WikiBody.tsx @@ -1,18 +1,6 @@ -import { useQuery } from '@tanstack/react-query' -import { useMemo } from 'react' -import ReactMarkdown from 'react-markdown' -import remarkGFM from 'remark-gfm' - -import PrefetchLink from '@/components/PrefetchLink' import WikiMarkdown from '@/components/WikiMarkdown' -import SectionTitle from '@/components/common/SectionTitle' -import SubsectionTitle from '@/components/common/SubsectionTitle' -import { wikiKeys } from '@/lib/queryKeys' -import remarkWikiAutoLink from '@/lib/remark-wiki-autolink' -import { fetchWikiPages } from '@/lib/wiki' import type { FC } from 'react' -import type { Components } from 'react-markdown' type Props = { title: string body?: string } diff --git a/frontend/src/components/WikiEditForm.tsx b/frontend/src/components/WikiEditForm.tsx index be64469..41556ee 100644 --- a/frontend/src/components/WikiEditForm.tsx +++ b/frontend/src/components/WikiEditForm.tsx @@ -1,12 +1,13 @@ -import MarkdownIt from 'markdown-it' import { useEffect, useState } from 'react' import MdEditor from 'react-markdown-editor-lite' +import WikiMarkdown from '@/components/WikiMarkdown' import Label from '@/components/common/Label' +import { apiPost } from '@/lib/api' import type { FC } from 'react' -const mdParser = new MarkdownIt +import type { WikiAsset } from '@/types' type Props = { title: string @@ -60,7 +61,7 @@ export default (({ title: initTitle, body: initBody, onSubmit, id }: Props) => { mdParser.render (text)} + renderHTML={text => } onChange={({ text }) => setBody (text)} onImageUpload={handleImageUpload}/> diff --git a/frontend/src/types.ts b/frontend/src/types.ts index 36f8b32..bc676e2 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -149,6 +149,11 @@ export type User = { export type ViewFlagBehavior = typeof ViewFlagBehavior[keyof typeof ViewFlagBehavior] +export type WikiAsset = { + wikiPageId: number + no: number + url: string } + export type WikiPage = { id: number title: string