{"id":17756920,"url":"https://github.com/powerman/goldmark-obsidian","last_synced_at":"2026-05-06T20:34:46.790Z","repository":{"id":259539387,"uuid":"875216482","full_name":"powerman/goldmark-obsidian","owner":"powerman","description":"An Obsidian extension for the goldmark markdown parser","archived":false,"fork":false,"pushed_at":"2026-04-13T22:48:10.000Z","size":94,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-20T03:51:12.734Z","etag":null,"topics":["go","golang","golang-library","goldmark","goldmark-extension","markdown","obsidian","obsidian-markdown-parser","obsidian-plugins","obsidian-tasks"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/powerman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-19T11:56:36.000Z","updated_at":"2026-04-07T10:07:31.000Z","dependencies_parsed_at":"2024-10-26T10:33:03.110Z","dependency_job_id":"9698d3ca-790b-4d2f-8754-63561e52b2c9","html_url":"https://github.com/powerman/goldmark-obsidian","commit_stats":null,"previous_names":["powerman/goldmark-obsidian"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/powerman/goldmark-obsidian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerman%2Fgoldmark-obsidian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerman%2Fgoldmark-obsidian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerman%2Fgoldmark-obsidian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerman%2Fgoldmark-obsidian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/powerman","download_url":"https://codeload.github.com/powerman/goldmark-obsidian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerman%2Fgoldmark-obsidian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32711350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","golang-library","goldmark","goldmark-extension","markdown","obsidian","obsidian-markdown-parser","obsidian-plugins","obsidian-tasks"],"created_at":"2024-10-26T16:10:37.719Z","updated_at":"2026-05-06T20:34:46.784Z","avatar_url":"https://github.com/powerman.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# goldmark-obsidian\n\n[![License MIT](https://img.shields.io/badge/license-MIT-royalblue.svg)](LICENSE)\n[![Go version](https://img.shields.io/github/go-mod/go-version/powerman/goldmark-obsidian?color=blue)](https://go.dev/)\n[![Test](https://img.shields.io/github/actions/workflow/status/powerman/goldmark-obsidian/test.yml?label=test)](https://github.com/powerman/goldmark-obsidian/actions/workflows/test.yml)\n[![Coverage Status](https://raw.githubusercontent.com/powerman/goldmark-obsidian/gh-badges/coverage.svg)](https://github.com/powerman/goldmark-obsidian/actions/workflows/test.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/powerman/goldmark-obsidian)](https://goreportcard.com/report/github.com/powerman/goldmark-obsidian)\n[![Release](https://img.shields.io/github/v/release/powerman/goldmark-obsidian?color=blue)](https://github.com/powerman/goldmark-obsidian/releases/latest)\n[![Go Reference](https://pkg.go.dev/badge/github.com/powerman/goldmark-obsidian.svg)](https://pkg.go.dev/github.com/powerman/goldmark-obsidian)\n\n![Linux | amd64 arm64 armv7 ppc64le s390x riscv64](https://img.shields.io/badge/Linux-amd64%20arm64%20armv7%20ppc64le%20s390x%20riscv64-royalblue)\n![macOS | amd64 arm64](https://img.shields.io/badge/macOS-amd64%20arm64-royalblue)\n![Windows | amd64 arm64](https://img.shields.io/badge/Windows-amd64%20arm64-royalblue)\n\nAn [Obsidian](https://obsidian.md/) extension for the\n[goldmark](https://github.com/yuin/goldmark) markdown parser.\n\n## Features\n\n### Obsidian\n\n- [x] Autolinks (GFM): `https://example.com`\n- [x] Internal links: `[[Link]]`\n- [x] Embed files: `![[Link]]`\n- [x] Block references: `![[Link#^id]]`\n- [x] Defining a block: `^id`\n- [ ] Comments (block, inline): `%%Text%%`\n- [x] Strikethroughs (GFM): `~~Text~~`\n- [ ] Highlights: `==Text==`\n- [x] Code blocks: ` ``` `\n- [x] Incomplete task (GFM): `- [ ]`\n- [x] Completed task (GFM): `- [x]`\n- [ ] Callouts: `\u003e [!note]`\n- [x] Tables (GFM)\n- [x] Footnotes (reference): `Example[^1].`\n- [ ] Footnotes (inline): `Example. ^[This is an inline footnote.]`\n- [x] Diagrams (Mermaid): ` ```mermaid `\n- [x] LaTeX (MathJax): `$$`\n- [x] Tags: `#tag`\n- [x] Properties (metadata): `---` at the very beginning of a file\n\nKnown inconsistencies with Obsidian:\n\n- Properties may start and end with at least 1 dash, not exactly 3 (---).\n- Tags defined in properties are not applied to document in same way as other tags.\n- Document aliases defined in properties are not processed as internal link targets.\n\nTODO:\n\n- Add basic tests for all syntax used in [Obsidian Help](https://help.obsidian.md/Home).\n- Add support for comments (both block and inline).\n- Add support for highlights.\n- Add support for callouts.\n\nNot planned (PR is welcome):\n\n- Support for inline footnotes.\n\n### Obsidian plugin [Tasks](https://github.com/obsidian-tasks-group/obsidian-tasks)\n\n- [Supported task formats](https://publish.obsidian.md/tasks/Reference/Task+Formats/About+Task+Formats):\n  - [x] [Tasks Emoji Format](https://publish.obsidian.md/tasks/Reference/Task+Formats/Tasks+Emoji+Format) - the default format\n  - [ ] [Dataview Format](https://publish.obsidian.md/tasks/Reference/Task+Formats/Dataview+Format)\n- [ ] [Optional Global Filter](https://publish.obsidian.md/tasks/Getting+Started/Global+Filter)\n  - [ ] [Removing tag used as a Global Filter](https://publish.obsidian.md/tasks/Getting+Started/Tags#Tags+and+the+Global+Filter)\n- [Dates](https://publish.obsidian.md/tasks/Getting+Started/Dates):\n  - [x] [Due date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Due+date)\n  - [x] [Scheduled date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Scheduled+date)\n  - [x] [Start date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Start+date)\n  - [x] [Created date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Created+date)\n  - [x] [Done date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Done+date)\n- [x] [Cancelled date](https://publish.obsidian.md/tasks/Getting+Started/Dates#Cancelled+date)\n  - [x] Detecting invalid dates\n- [x] [Priority](https://publish.obsidian.md/tasks/Getting+Started/Priority)\n- [x] [Recurring Tasks](https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks)\n  - Recurrence rule text is processed as is, without parsing a rule itself\n- [x] [On Completion](https://publish.obsidian.md/tasks/Getting+Started/On+Completion)\n- [x] [Statuses](https://publish.obsidian.md/tasks/Getting+Started/Statuses)\n  - [x] [Custom Statuses](https://publish.obsidian.md/tasks/Getting+Started/Statuses#Custom+Statuses)\n- [ ] [Use Filename as Default Date](https://publish.obsidian.md/tasks/Getting+Started/Use+Filename+as+Default+Date)\n- [x] [Task Dependencies](https://publish.obsidian.md/tasks/Getting+Started/Task+Dependencies)\n\nTODO:\n\n- Add an option to support Global Filter (with tag removal).\n- Add an option to set a Default Date.\n\nNot planned (PR is welcome):\n\n- Dataview Format.\n\n## Installation\n\n```sh\ngo get github.com/powerman/goldmark-obsidian\n```\n\n## Usage\n\n```go\nsource := []byte(`\n- [ ] Happy New Year 📅 2025-01-01 ^first-task\n- [x] Happy Old Year 📅 2024-01-01\n`)\n\nmd := goldmark.New(\n    goldmark.WithExtensions(\n        obsidian.NewPlugTasks(),\n        obsidian.NewObsidian(),\n    ),\n)\nerr := md.Convert(source, os.Stdout)\nif err != nil {\n    fmt.Println(err)\n}\n// Output:\n// \u003cul class=\"contains-task-list\"\u003e\n// \u003cli data-task=\"\" class=\"task-list-item\" id=\"^first-task\"\u003e\u003cinput disabled=\"\" type=\"checkbox\" class=\"task-list-item-checkbox\"\u003e Happy New Year 📅 2025-01-01\u003c/li\u003e\n// \u003cli data-task=\"x\" class=\"task-list-item is-checked\"\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\" class=\"task-list-item-checkbox\"\u003e Happy Old Year 📅 2024-01-01\u003c/li\u003e\n// \u003c/ul\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerman%2Fgoldmark-obsidian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowerman%2Fgoldmark-obsidian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerman%2Fgoldmark-obsidian/lists"}