코드 블록 줄번호 기본 숨김
This commit is contained in:
@@ -315,7 +315,7 @@ const resolveCodeBlock = (lines, currentLine) => {
|
||||
}
|
||||
|
||||
if (currentLine >= index && currentLine <= codeEnd) {
|
||||
const options = parseCodeFenceLine(lines[index]) || { language: '', showLineNumbers: true }
|
||||
const options = parseCodeFenceLine(lines[index]) || { language: '', showLineNumbers: false }
|
||||
|
||||
return {
|
||||
kind: 'code',
|
||||
|
||||
@@ -13,13 +13,18 @@ export const parseCodeFenceLine = (line) => {
|
||||
const rest = trimmed.slice(3).trim()
|
||||
|
||||
if (!rest) {
|
||||
return { language: '', showLineNumbers: true }
|
||||
return { language: '', showLineNumbers: false }
|
||||
}
|
||||
|
||||
const noLineNumberTokens = ['nolinenos', 'no-linenos', 'no-line-numbers']
|
||||
const lineNumberTokens = ['linenos', 'line-numbers']
|
||||
const tokens = rest.split(/\s+/).filter(Boolean)
|
||||
const showLineNumbers = !tokens.some((token) => noLineNumberTokens.includes(token.toLowerCase()))
|
||||
const languageTokens = tokens.filter((token) => !noLineNumberTokens.includes(token.toLowerCase()))
|
||||
const showLineNumbers = tokens.some((token) => lineNumberTokens.includes(token.toLowerCase()))
|
||||
&& !tokens.some((token) => noLineNumberTokens.includes(token.toLowerCase()))
|
||||
const languageTokens = tokens.filter((token) => {
|
||||
const normalized = token.toLowerCase()
|
||||
return !noLineNumberTokens.includes(normalized) && !lineNumberTokens.includes(normalized)
|
||||
})
|
||||
const language = languageTokens[0] || ''
|
||||
|
||||
return { language, showLineNumbers }
|
||||
@@ -32,15 +37,15 @@ export const parseCodeFenceLine = (line) => {
|
||||
*/
|
||||
export const buildCodeFenceOpener = (options = {}) => {
|
||||
const language = String(options.language ?? '').trim()
|
||||
const showLineNumbers = options.showLineNumbers !== false
|
||||
const showLineNumbers = options.showLineNumbers === true
|
||||
let opener = '```'
|
||||
|
||||
if (language) {
|
||||
opener += language
|
||||
}
|
||||
|
||||
if (!showLineNumbers) {
|
||||
opener += language ? ' nolinenos' : 'nolinenos'
|
||||
if (showLineNumbers) {
|
||||
opener += language ? ' linenos' : 'linenos'
|
||||
}
|
||||
|
||||
return opener
|
||||
|
||||
@@ -86,7 +86,7 @@ export const MARKDOWN_SLASH_COMMANDS = [
|
||||
{
|
||||
id: 'code',
|
||||
label: '코드',
|
||||
description: '코드 블록',
|
||||
description: '코드 블록(줄번호 숨김)',
|
||||
keywords: ['code', 'pre', '코드'],
|
||||
action: 'lines',
|
||||
lines: ['```', '', '```']
|
||||
|
||||
Reference in New Issue
Block a user