- New 'Import Obsidian' action on site settings page - Upload a zip file of an Obsidian vault to import all notes as posts - Markdown notes imported with title from filename, published date from file timestamp, and body with front-matter stripped - Images and other attachments saved as Upload records - New obsimport service handles zip traversal and import logic - Unit tests for front-matter stripping Co-authored-by: Shelley <shelley@exe.dev> Co-authored-by: exe.dev user <exedev@kernel-leviathan.exe.xyz> Reviewed-on: #8
22 lines
934 B
HTML
22 lines
934 B
HTML
<main class="container">
|
|
<div>
|
|
<h5 class="my-4">Import from Obsidian</h5>
|
|
<p>Select an Obsidian vault exported as a Zip file. All Markdown notes will be imported as posts, and any images or attachments will be imported as uploads.</p>
|
|
<form method="post" action="/sites/{{ .site.ID }}/import/obsidian" enctype="multipart/form-data">
|
|
<div class="row mb-3">
|
|
<label for="zipfile" class="col-sm-3 col-form-label text-end">Zip File</label>
|
|
<div class="col-sm-6">
|
|
<input type="file" class="form-control" id="zipfile" name="zipfile" accept=".zip">
|
|
</div>
|
|
</div>
|
|
<div class="row mb-3">
|
|
<div class="col-sm-3"></div>
|
|
<div class="col-sm-9">
|
|
<button type="submit" class="btn btn-primary">Import</button>
|
|
<a href="/sites/{{ .site.ID }}/settings" class="btn btn-secondary ms-2">Cancel</a>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</main>
|