diff --git a/src/components/register/RegisterForm.tsx b/src/components/register/RegisterForm.tsx
index 1ffaefcf..8fff7bf5 100644
--- a/src/components/register/RegisterForm.tsx
+++ b/src/components/register/RegisterForm.tsx
@@ -103,8 +103,8 @@ const RegisterForm: React.FC
= ({
@@ -123,7 +123,7 @@ const RegisterForm: React.FC = ({
name="username"
onChange={onChange}
label="사용자 ID"
- placeholder="새 사용자 ID를 입력하세요"
+ placeholder="사용자 ID를 입력하세요."
value={form.username}
size={22}
/>
diff --git a/src/components/write/TagInput.tsx b/src/components/write/TagInput.tsx
index 7739aa77..a4b11b69 100644
--- a/src/components/write/TagInput.tsx
+++ b/src/components/write/TagInput.tsx
@@ -6,6 +6,7 @@ import transitions from '../../lib/styles/transitions';
import { mediaQuery } from '../../lib/styles/media';
import { useTransition, animated } from 'react-spring';
import OutsideClickHandler from 'react-outside-click-handler';
+import { isEmptyOrWhitespace } from '../../lib/utils';
export interface TagInputProps {
ref?: React.RefObject;
@@ -27,7 +28,6 @@ const TagInput: React.FC = ({ onChange, tags: initialTags }) => {
const ignore = useRef(false);
useEffect(() => {
- if (tags.length === 0) return;
onChange(tags);
}, [tags, onChange]);
@@ -48,9 +48,8 @@ const TagInput: React.FC = ({ onChange, tags: initialTags }) => {
(tag: string) => {
ignore.current = true;
setValue('');
- if (tag === '' || tags.includes(tag)) return;
- let processed = tag;
- processed = tag.trim();
+ if (isEmptyOrWhitespace(tag) || tags.includes(tag)) return;
+ let processed = tag.trim().slice(0, 255);
if (processed.indexOf(' #') > 0) {
const tempTags: string[] = [];
const regex = /#(\S+)/g;
diff --git a/src/components/write/WriteMarkdownEditor.tsx b/src/components/write/WriteMarkdownEditor.tsx
index 46e45543..eba9ff47 100644
--- a/src/components/write/WriteMarkdownEditor.tsx
+++ b/src/components/write/WriteMarkdownEditor.tsx
@@ -21,6 +21,7 @@ require('codemirror/mode/markdown/markdown');
require('codemirror/mode/javascript/javascript');
require('codemirror/mode/jsx/jsx');
require('codemirror/addon/display/placeholder');
+require('codemirror/mode/dockerfile/dockerfile');
export interface MarkdownEditorProps {
onChangeMarkdown: (markdown: string) => void;
@@ -1121,7 +1122,7 @@ const checker = {
},
codesandbox: (text: string) => {
const regex =
- /^$/s;
+ /^