Import external code files in your Obsidian notes using @import syntax (compatible with Markdown Preview Enhanced).
Full file import:
Partial import (specific lines):
| Full import | Partial import |
|---|---|
![]() |
![]() |
- Import code files directly in Reading View
- Support line range selection (
line_begin,line_end) - Automatic syntax highlighting based on file extension
- Works with relative paths (including
../)
@import "path/to/file.go"
@import "path/to/file.go" {line_begin=4 line_end=14}
@import "examples/main.py" {line_begin=10}
@import "config.yaml" {line_end=-4}| Parameter | Description (0-based) | Description (1-based) |
|---|---|---|
line_begin |
Start line, 0-based index | Start line, 1-based index |
line_end |
End line, exclusive (supports negative) | End line, inclusive (supports negative) |
0-based mode (default, MPE-compatible):
{line_begin=0 line_end=10}→ Lines 1-10 (indices 0-9){line_begin=5}→ From line 6 to end{line_end=-2}→ From start, excluding last 2 lines
1-based mode:
{line_begin=1 line_end=10}→ Lines 1-10{line_begin=5}→ From line 5 to end{line_end=-2}→ From start, excluding last 2 lines
- Open Settings → Community plugins
- Search for "Code Import"
- Install and enable
- Download
main.js,manifest.json,styles.cssfrom Releases - Create folder:
<vault>/.obsidian/plugins/code-import/ - Copy the files into the folder
- Enable the plugin in Settings → Community plugins
- Place your code files in your vault (or reference them with relative paths)
- Add
@importdirective in your markdown file - Switch to Reading View to see the imported code
In your markdown file:
## User Struct Definition
@import "examples/user.go" {line_begin=10 line_end=25}| Setting | Description | Default |
|---|---|---|
| Show file name | Display filename header above code block | On |
| Wrap code | Wrap long lines instead of horizontal scrolling | Off |
| Line number base | 0-based (MPE-compatible) or 1-based indexing for line_begin/line_end |
0-based |



