Add <Markup> component to style markup from the API See merge request soapbox-pub/soapbox!1922environments/review-develop-3zknud/deployments/1487
commit
5f9ce5776e
@ -1,77 +1,77 @@
|
|||||||
.status-content p {
|
[data-markup] p {
|
||||||
@apply mb-4 whitespace-pre-wrap;
|
@apply mb-4 whitespace-pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content p:last-child {
|
[data-markup] p:last-child {
|
||||||
@apply mb-0;
|
@apply mb-0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content a {
|
[data-markup] a {
|
||||||
@apply text-primary-600 dark:text-accent-blue hover:underline;
|
@apply text-primary-600 dark:text-accent-blue hover:underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content strong {
|
[data-markup] strong {
|
||||||
@apply font-bold;
|
@apply font-bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content em {
|
[data-markup] em {
|
||||||
@apply italic;
|
@apply italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content ul,
|
[data-markup] ul,
|
||||||
.status-content ol {
|
[data-markup] ol {
|
||||||
@apply pl-10 mb-4;
|
@apply pl-10 mb-4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content ul {
|
[data-markup] ul {
|
||||||
@apply list-disc list-outside;
|
@apply list-disc list-outside;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content ol {
|
[data-markup] ol {
|
||||||
@apply list-decimal list-outside;
|
@apply list-decimal list-outside;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content blockquote {
|
[data-markup] blockquote {
|
||||||
@apply py-1 pl-4 mb-4 border-l-4 border-solid border-gray-400 text-gray-500 dark:text-gray-400;
|
@apply py-1 pl-4 mb-4 border-l-4 border-solid border-gray-400 text-gray-500 dark:text-gray-400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content code {
|
[data-markup] code {
|
||||||
@apply cursor-text font-mono;
|
@apply cursor-text font-mono;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content p > code,
|
[data-markup] p > code,
|
||||||
.status-content pre {
|
[data-markup] pre {
|
||||||
@apply bg-gray-100 dark:bg-primary-800;
|
@apply bg-gray-100 dark:bg-primary-800;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Inline code */
|
/* Inline code */
|
||||||
.status-content p > code {
|
[data-markup] p > code {
|
||||||
@apply py-0.5 px-1 rounded-sm;
|
@apply py-0.5 px-1 rounded-sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Code block */
|
/* Code block */
|
||||||
.status-content pre {
|
[data-markup] pre {
|
||||||
@apply py-2 px-3 mb-4 leading-6 overflow-x-auto rounded-md break-all;
|
@apply py-2 px-3 mb-4 leading-6 overflow-x-auto rounded-md break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content pre:last-child {
|
[data-markup] pre:last-child {
|
||||||
@apply mb-0;
|
@apply mb-0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Markdown images */
|
/* Markdown images */
|
||||||
.status-content img:not(.emojione):not([width][height]) {
|
[data-markup] img:not(.emojione):not([width][height]) {
|
||||||
@apply w-full h-72 object-contain rounded-lg overflow-hidden my-4 block;
|
@apply w-full h-72 object-contain rounded-lg overflow-hidden my-4 block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* User setting to underline links */
|
/* User setting to underline links */
|
||||||
body.underline-links .status-content a {
|
body.underline-links [data-markup] a {
|
||||||
@apply underline;
|
@apply underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content .big-emoji img.emojione {
|
[data-markup] .big-emoji img.emojione {
|
||||||
@apply inline w-9 h-9 p-1;
|
@apply inline w-9 h-9 p-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-content .status-link {
|
[data-markup] .status-link {
|
||||||
@apply hover:underline text-primary-600 dark:text-accent-blue hover:text-primary-800 dark:hover:text-accent-blue;
|
@apply hover:underline text-primary-600 dark:text-accent-blue hover:text-primary-800 dark:hover:text-accent-blue;
|
||||||
}
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
import Text, { IText } from './ui/text/text';
|
||||||
|
import './markup.css';
|
||||||
|
|
||||||
|
interface IMarkup extends IText {
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Styles HTML markup returned by the API, such as in account bios and statuses. */
|
||||||
|
const Markup = React.forwardRef<any, IMarkup>((props, ref) => {
|
||||||
|
return (
|
||||||
|
<Text ref={ref} {...props} data-markup />
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default Markup;
|
@ -1,14 +0,0 @@
|
|||||||
/* Instance HTML from the API. */
|
|
||||||
.instance-description a {
|
|
||||||
@apply underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.instance-description b,
|
|
||||||
.instance-description strong {
|
|
||||||
@apply font-bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.instance-description i,
|
|
||||||
.instance-description em {
|
|
||||||
@apply italic;
|
|
||||||
}
|
|
Loading…
Reference in new issue