hawm
(Hawm)
10월 26, 2023, 10:37오전
1
제 사용 사례는 bbcode의 replace 규칙을 사용할 때 bbcode 규칙을 비활성화/활성화하는 것입니다.
replace: function (state, tagInfo, content) {
const source = state.push("my_token", "div", 0);
try {
md.block.bbcode.ruler.disable("ruleName")
source.children = state.md.parse(content, {});
} finally {
md.block.bbcode.ruler.enable("ruleName")
}
return true
}
여기 있는 TODO 주석이 오래전에 작성된 것임을 알았습니다. 구현할 계획이 있나요?
sam
(Sam Saffron)
10월 27, 2023, 3:25오전
2
여기서 제 1번 질문은 왜냐는 겁니다. 이게 어떤 문제를 해결할 수 있나요?
우리 프로젝트에 관심이 있으신가요? 마무리 단계에 다가가고 있습니다:
RpNation's Official BBCode Implementation for Discourse
복잡한 bbcode를 처리하기 위해 markdownit를 사용하는 것이 번거로워서, 대신 bbob을 Discourse에 삽입하기로 결정했습니다.
hawm
(Hawm)
10월 27, 2023, 5:49오전
4
Sam Saffron:
이것이 어떤 문제를 해결할 수 있나요?
markdownit ruler로 이동하면 새로운 파싱을 시작할 때 규칙을 활성화/비활성화할 수 있으며, 이를 통해 유연성이 높아지고 네이티브 markdownit 규칙과 유사한 동작을 할 수 있습니다.
예를 들어, 몇 가지 bbcode 규칙을 추가하되 기본적으로는 활성화하지 않고, 필요할 때만 활성화하고 싶습니다(예: OP의 예시처럼). 현재 이 커스텀 Ruler로는 이것이 불가능하며, 아마도 몇 가지 복잡한 방법(파싱 환경이나 ruler의 규칙을 수동으로 수정하는 것)을 통해 가능할 수도 있습니다?
[foo]
not wrapping inside the bar should not tokenize
[/foo]
[bar]
[foo]
wrap inside the bar should be tokenized
[/foo]
[/bar]
bbcode 대신 네이티브 markdownit 규칙을 생성하지 않는 이유는, bbcode와 같은 규칙을 구현하는 것이 어렵고 유지보수가 힘들기 때문이며, bbcode는 이미 존재하고 있기 때문입니다.
The Dark Wizard:
대신에 저희 프로젝트에 관심이 있으신가요?
훌륭한 작업이셨지만, 제 사용 사례는 조금 다릅니다.
여기서 작성하신 코드가 마음에 들어서 다른 관심사 문제에 대한 영감을 받았습니다.
Object.defineProperty(opts, "engine", {
configurable: true,
set(engine) {
const md = engine.render;
engine.set({ breaks: false }); // disable breaks. Let BBob handle line breaks.
engine.render = function (raw) {
const preprocessed = preprocessor(raw);
const processed = md.apply(this, [preprocessed]);
return processed;
};
Object.defineProperty(opts, "engine", {
configurable: true,
enumerable: true,
writable: true,
value: engine,
});
},
});
});
sam
(Sam Saffron)
10월 31, 2023, 11:50오후
5
Hawm:
예를 들어, 일부 bbcode 규칙을 추가하되 기본적으로 활성화하지 않고, 필요할 때 활성화하고 싶습니다(원문(OP)의 예시처럼요). 현재 커스텀 Ruler로는 이것이 불가능한데, 아마도 어떤 트릭(파싱 환경을 통해하거나 ruler의 규칙을 수동으로 수정하는 것)으로 가능할까요?
``
지금 [wrap]가 처리되는 방식처럼 모든 bbcode를 처리하라는 뜻인가요? div로 감싸는 건가요?
말씀하시는 내용은 커스텀 markdownit 규칙/플러그인에 해당되는 것이지, 코어가 구현해야 할 사항은 아닌 것 같습니다.