*p5.brush
p5.js 환경에서 자연스러운 텍스처를 탐구하는 아티스트·디자이너·취미자를 위한 다목적 라이브러리
무료 오픈소스 Native Markdown 확장으로 MediaWiki 페이지를 마크다운으로 작성합니다
Write MediaWiki pages in Markdown with the free and open-source Native Markdown extension. Wiki links, categories, templates, search, and AI-agent readability.
플러그인PHP · CSSGitHub @ProfessionalWiki온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Deep Markdown integration for MediaWiki. Comes with support for internal links, categories, templates, parser functions, table of contents, search, and more
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗MediaWiki extension that makes Markdown a native content model: whole pages are stored and edited as Markdown and rendered with real wiki integration (internal links, categories, search, templates, and more), coexisting with wikitext pages on the same wiki.
Because pages are stored as plain Markdown, they are directly consumable and writable by LLMs and agents:
action=raw returns clean Markdown; no wikitext conversion needed.
See For AI agents and LLMs.
Get professional support for this extension via Professional Wiki, its creators and maintainers. We provide MediaWiki Development, MediaWiki Hosting, and MediaWiki Consulting services.
Platform requirements:
Installation uses Composer with MediaWiki's built-in support for Composer.
On the command line, go to your wiki's root directory. Then run these two commands:
COMPOSER=composer.local.json composer require --no-update professional-wiki/native-markdown:~1.0
composer update professional-wiki/native-markdown --no-dev -o
Then enable the extension by adding the following to the bottom of your wiki's LocalSettings.php file:
wfLoadExtension( 'NativeMarkdown' );
For Markdown syntax highlighting in the editor, also install the CodeEditor extension:
For syntax highlighting of fenced code blocks in the rendered page, install the
SyntaxHighlight extension (bundled with MediaWiki). When it is installed, a fenced block whose info string
names a language is highlighted server-side with Pygments, exactly like a wikitext <syntaxhighlight> block;
without it, code blocks render as plain preformatted text.
```python
def greet(name):
print(f"Hello {name}")
```
New pages use the Markdown content model where the wiki's configuration says so. Defaults apply to page
creation only; existing pages never change model implicitly. Individual pages can be switched between
wikitext and Markdown (in both directions) via Special:ChangeContentModel.
| Setting | Default | Effect |
|---|---|---|
$wgNativeMarkdownNamespaces | [] | Namespace IDs in which new pages default to Markdown, e.g. [ NS_HELP ] |
$wgNativeMarkdownEverywhere | true | New pages everywhere default to Markdown, the "Markdown wiki" mode (see exclusions below); set to false to keep wikitext as the default |
$wgNativeMarkdownSuffixDetection | false | New pages whose title ends in .md default to Markdown, except in the Template and MediaWiki namespaces |
$wgNativeMarkdownAllowExternalImages | false | Embed external  images; when off they render as plain links |
$wgNativeMarkdownWikitextExpansion | true | Run {{...}} on Markdown pages through the MediaWiki parser: templates, parser functions, magic words, and Lua modules. Set to false to leave {{...}} as literal text (see Templates and parser functions) |
$wgNativeMarkdownEverywhere covers the whole prose wiki but deliberately leaves some pages as wikitext:
the discussion (Talk), Template, and MediaWiki namespaces, namespaces whose content model is explicitly
configured elsewhere, and titles ending in .css, .js or .json. $wgNativeMarkdownSuffixDetection reads
the .md suffix as a deliberate per-page choice, so it also applies inside Talk namespaces. The
configuration documentation covers the exact semantics of both.
Those defaults apply at page creation only, so enabling suffix detection or adding a namespace never touches
pages that already exist. The NativeMarkdown:ConvertToMarkdownModel maintenance script is the retroactive
counterpart: it switches existing wikitext pages to the Markdown model using the very same rules, selecting
pages via --md-suffix and/or --namespace <id> (combinable, at least one being required). It changes the
content model, not the page text — the stored wikitext is then reinterpreted as Markdown and may render
differently — so always start with --dry-run. Redirects are skipped, --batch-size controls how many pages
each batch processes, and each conversion is an ordinary revision, reversible per page with
Special:ChangeContentModel. The configuration documentation covers the exact selector semantics.
php maintenance/run.php NativeMarkdown:ConvertToMarkdownModel --md-suffix --dry-run
php maintenance/run.php NativeMarkdown:ConvertToMarkdownModel --namespace 3000
php maintenance/run.php NativeMarkdown:ConvertToMarkdownModel --md-suffix --namespace 10
Markdown pages can use MediaWiki's {{...}} syntax. Because expansion delegates to the wikitext parser, this
covers the whole double-brace surface: templates (a wiki's shared infoboxes, citations and navboxes), parser
functions ({{#if:}}, {{#switch:}}, and so on), magic words and variables ({{PAGENAME}}, {{CURRENTYEAR}}),
and, where Scribunto is installed, Lua modules via {{#invoke:}}. Set
$wgNativeMarkdownWikitextExpansion = false to turn this off and leave {{...}} as literal text.
{{Infobox person
| name = Ada Lovelace
| born = 1815
}}
Ada Lovelace was an English **mathematician**, regarded as the first computer programmer.
Because it is the real parser, the same trust and resource model as wikitext applies: template dependencies
are tracked, recursion and size limits apply, output is sanitized exactly as wikitext is, and enabling
{{...}} grants a Markdown page the same capabilities a wikitext page has. Notably out of scope in this
version: <ref> tags and transcluding Markdown pages with {{:Page}}. The template documentation covers
the placement rules (block versus inline calls, escaping) and the full scope notes.
Markdown is the native read/write format of today's language models, and Native Markdown stores pages as exactly that: plain Markdown, no wikitext wrapper. That makes a Markdown page directly consumable and directly writable by an agent, with no lossy conversion step in either direction:
Read the source with action=raw:
GET /index.php?title=Release_Notes.md&action=raw
returns the raw Markdown, front matter and all, exactly the bytes an author typed.
Read via the REST API, which also reports the model:
GET /rest.php/v1/page/Release_Notes.md
→ { "content_model": "markdown", "source": "# Release Notes\n...", ... }
Read the rendered HTML with action=parse (?action=parse&page=Release_Notes.md&prop=text), for when
an agent wants the resolved links and table of contents rather than the source.
Write through the ordinary editing APIs (action=edit, the REST update endpoint) or, more
conveniently, through the MediaWiki MCP Server: an agent hands over Markdown and it is stored verbatim,
rendered with full wiki integration on read.
Because the round trip is lossless, an agent can fetch a page as Markdown, edit it, and write it back without
the content drifting through a wikitext translation. Links work the way a model already writes them: a plain
[label](Page Name) link whose target names a page resolves to an internal wiki link, spaces and all. The
usage documentation covers link resolution and search indexing in detail.
Native Markdown exists because no maintained extension makes Markdown a native content model:
.md
content handler with no working [[wiki links]], categories, or table of contents inside the Markdown.See the full comparison on our website for more detail. Related but different: our ExternalContent extension embeds Markdown files from external sources (like GitHub) into wikitext pages, while Native Markdown is for the wiki's own pages being Markdown. They compose nicely.
The Application layer (the whole Markdown pipeline) has no MediaWiki dependencies, so the unit suite runs standalone in the extension directory with no MediaWiki install:
composer install
composer test
Style checks and static analysis, also standalone: composer cs, composer phpstan, composer psalm.
The full suite including integration tests runs inside a MediaWiki install, from the MediaWiki root:
php tests/phpunit/phpunit.php extensions/NativeMarkdown/tests/phpunit/
MediaWiki 1.46 and later lack that entry point; there, run composer phpunit -- extensions/NativeMarkdown/tests/phpunit/.
[[phase one matrix]], now display the text as typed, as wikitext does, instead
of the normalized page title ("Phase one matrix")ConvertToMarkdownModel maintenance script converts existing wikitext pages to the Markdown content
model, selecting them by .md suffix and/or namespace, the same way the activation settings select new
pages. It changes the content model rather than the page text, skips redirects, and supports --dry-run<syntaxhighlight> block is. This needs the SyntaxHighlight extension (bundled with MediaWiki) to be
installed; without it, code blocks keep rendering as plain preformatted textcode element for inline use and CommonMark nests it inside prethumb file embed alone on its line now renders as a standalone framed thumbnail rather than being wrapped
in a paragraph, which produced invalid HTML5 and a stray empty paragraphthumb embed of a missing file now renders the framed box with its caption and an upload link, the way
wikitext does, instead of a bare upload link that silently dropped the caption[label](target) links now resolve to wiki pages, the same as [[target]]: a target that
names a page (rather than a URL) becomes an internal link, with red/blue styling and link-table registration.
Multi-word targets work directly, e.g. [the guide](Help:Getting Started). Real URLs stay external links.#REDIRECT [[Target]] line, so redirect
categories (and any other trailing links or prose) work the same as on wikitext redirectsInitial release for MediaWiki 1.43+ with these features:
markdown) rendering CommonMark + GitHub Flavored Markdown with footnotesSpecial:ChangeContentModel, namespace/suffix/wiki-wide activation modes{{...}} expansion (on by default): templates, parser functions, magic words and Lua run through
the real parser with dependency tracking; opt out with $wgNativeMarkdownWikitextExpansion = falseaction=raw / REST return the stored Markdown byte for byte, built for AI agents and git round-tripsInitial release announcement: https://professional.wiki/en/news/native-markdown-released