코드 블록 줄번호 기본 숨김

This commit is contained in:
2026-06-26 15:51:46 +09:00
parent 8e3bf4a874
commit b7362df274
11 changed files with 39 additions and 18 deletions

View File

@@ -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