{"id":15031683,"url":"https://github.com/hardhackerlabs/medup","last_synced_at":"2025-09-04T13:47:26.597Z","repository":{"id":65321169,"uuid":"569152079","full_name":"hardhackerlabs/medup","owner":"hardhackerlabs","description":"Medup is a markdown parser and reader developed in Rust, including library and web service.   💖 ","archived":false,"fork":false,"pushed_at":"2023-07-23T15:11:28.000Z","size":21396,"stargazers_count":66,"open_issues_count":1,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-09T21:40:34.613Z","etag":null,"topics":["documentation","editor","local-first","markdown","markdown-converter","markdown-parser","markdown-previewer","markdown-to-html","markdown-viewer","rust","rust-crate","rust-lang","rust-library","rustlang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hardhackerlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2022-11-22T07:38:57.000Z","updated_at":"2025-02-17T13:30:43.000Z","dependencies_parsed_at":"2025-02-15T21:32:34.989Z","dependency_job_id":"dd45bf15-bde9-4645-99ec-c604cebcc6ca","html_url":"https://github.com/hardhackerlabs/medup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hardhackerlabs/medup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardhackerlabs%2Fmedup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardhackerlabs%2Fmedup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardhackerlabs%2Fmedup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardhackerlabs%2Fmedup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hardhackerlabs","download_url":"https://codeload.github.com/hardhackerlabs/medup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardhackerlabs%2Fmedup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273619478,"owners_count":25138238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["documentation","editor","local-first","markdown","markdown-converter","markdown-parser","markdown-previewer","markdown-to-html","markdown-viewer","rust","rust-crate","rust-lang","rust-library","rustlang"],"created_at":"2024-09-24T20:16:19.353Z","updated_at":"2025-09-04T13:47:26.565Z","avatar_url":"https://github.com/hardhackerlabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Medup is a markdown parser and reader!\n\n![](./docs/assets/logo.png)\n\n\n## Features\n* [x] Support all standard syntax of markdown\n* [x] Supports all major extension syntaxes\n* [x] Provide **crate** to convert markdown to html or Custom development based on AST directly\n* [x] Provide **web service** to host and parse markdown files, and create private document system or blog\n* [x] Support **css theme** selection or custom \n* [x] Support **slice mode** that you can convert a markdown file into multi slices, .e.g card, picture or slide ...\n* [ ] Custom new grammar so that the content can be layout horizontally\n* [ ] Support git as storage backend\n* [ ] There may be an editor, supporting VIM mode\n\n## Demo\n\n##### Normal Document\n![](./docs/assets/demo.png)\n\n##### XHS (小红书) Picture based on \"slice mode\"\n![](./docs/assets/xhs_demo.png)\n\n## Usage\n```\nA markdown parser and reader\n\nUsage: medup \u003cCOMMAND\u003e\n\nCommands:\n  serve  Provide an http service for markdown parsing\n  help   Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help information\n  -V, --version  Print version information\n```\n\n### Web\n\nUse the following command to start an http service on port 8181.\n```\ncargo run -- serve --config-path themes/notion/config.json --dir docs --static-dir themes\n```\nor\n\n```\ndocker run -d --rm -p 8181:8181 skoowoo/medup:0.1\n```\n\nOpen `http://localhost:8181` with your browser.\n\n### Crate\n\n```Rust\n// Cargo.toml\n// medup = {git = \"https://github.com/hardhackerlabs/medup\"}\n\nuse medup::{config, markdown};\n\nlet html_content = markdown::Markdown::new()\n    .config(config::Config::default())\n    .path(\"docs/markdown-guide.md\")\n    .map_mut(markdown::to_html_body);\n\nprintln!(html_content);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardhackerlabs%2Fmedup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhardhackerlabs%2Fmedup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardhackerlabs%2Fmedup/lists"}