{"id":20425285,"url":"https://github.com/catseye/feedmark","last_synced_at":"2026-04-23T03:32:48.496Z","repository":{"id":50456548,"uuid":"95643153","full_name":"catseye/Feedmark","owner":"catseye","description":"MIRROR of https://codeberg.org/catseye/Feedmark : Structured Markdown for curation and newsfeeds","archived":false,"fork":false,"pushed_at":"2023-11-04T15:19:29.000Z","size":187,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-05T04:45:01.498Z","etag":null,"topics":["atom-feed","curation","link-rewriting","markdown-subset","newsfeed"],"latest_commit_sha":null,"homepage":"https://catseye.tc/node/Feedmark","language":"Python","has_issues":false,"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/catseye.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.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}},"created_at":"2017-06-28T07:47:42.000Z","updated_at":"2023-10-27T10:04:03.000Z","dependencies_parsed_at":"2025-01-15T15:08:54.224Z","dependency_job_id":"755a907c-9b8b-46bd-8ed6-0ed9ba0daaac","html_url":"https://github.com/catseye/Feedmark","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/catseye/Feedmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FFeedmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FFeedmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FFeedmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FFeedmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catseye","download_url":"https://codeload.github.com/catseye/Feedmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FFeedmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32165009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["atom-feed","curation","link-rewriting","markdown-subset","newsfeed"],"created_at":"2024-11-15T07:12:46.585Z","updated_at":"2026-04-23T03:32:48.480Z","avatar_url":"https://github.com/catseye.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Feedmark\n========\n\n*Version 0.14.  Subject to change in backwards-incompatible ways without notice.*\n\n**Feedmark** is a format for embedding structured data in Markdown files\nin a way which is both human-readable and machine-extractable.\nThe structured data is intended to be \"curational\" in nature.\nArticles in [Chrysoberyl][], [Some Games of Note][], and other collections\nof Cat's Eye Technologies' are written in Feedmark.\n\nInformally, the format says that every `h3`-level heading in the\nMarkdown file gives the title of an entity, and may be followed\nimmediately by the entity's \"plaque\", which is a bullet list\nwhere every item is in the form \"field-name: field-value\".\n\nWhy Feedmark?\n-------------\n\nIn the same way that a Markdown file is still a readable text file,\nwhich is nice, a Feedmark file is still a readable Markdown file,\nwhich is still a readable text file, which is nice.\n\nWhile some structured data formats like YAML are fairly easy to\nread, many web-based files viewers (such as GitHub's) will\nautomatically format Markdown as HTML, making it that much nicer.\n\nExample Feedmark documents can be found in the `eg/` directory,\nand in the projects mentioned above.\n\nImplementation\n--------------\n\nThis repository contains a Python program, `feedmark`, which is a\nreference implementation of a processor for the Feedmark format.\n\nTo use it, you can clone this repository and run it as `bin/feedmark`\nfrom the directory of your clone, or you can put the `bin` directory\non your executable search path, and run it as `feedmark` anywhere.\n\nOr you can install it using `pip`:\n\n    pip install Feedmark==0.14\n\n(Depending on your needs, you may wish to establish a virtual environment\nfirst.  How to do this is outside the scope of this document.)\n\n`feedmark` is currently able to do the following things:\n\n### Parse and check Feedmark documents\n\nLoading documents will always check that they are minimally well-formed.\n\n    feedmark eg/*.md\n\nYou can also check documents against a Feedmark schema, which is\nsimply another Feedmark document, one in which each entry describes\na property that entries should have.\n\n    feedmark eg/*Sightings*.md --check-against=eg/schema/Llama\\ sighting.md\n\n### Convert Feedmark documents to various formats\n\nThe original use case of this tool was to generate an Atom (née RSS)\nfeed of entries in a document:\n\n    feedmark \"eg/Recent Llama Sightings.md\" --output-atom=feed.xml\n    python3 -m http.server 7000 \u0026\n    python3 -m webbrowser http://localhost:7000/feed.xml\n\nIt can now also output entries as JSON, indexed by entry, or by\nproperty, or by publication date:\n\n    feedmark --output-json eg/*.md\n    feedmark --by-property eg/*.md\n    feedmark --by-publication-date eg/*.md\n\nOutput entries as Markdown, or HTML (using the `toc` extension,\nwhich generates link anchors on headings compatible with the ones\ngenerated by GitHub).\n\n    feedmark --output-markdown eg/*.md\n    feedmark --output-html eg/*.md\n\n### Rewrite documents in-place\n\nThey will be parsed as Feedmark, and then output as Markdown, to the\nsame files that were read in as input.  (Note!  This is destructive;\nit is recommended that the original files be under version control such\nas `git`, which will easily allow the changes to be reverted if necessary.)\n\n    feedmark --rewrite-markdown eg/*.md\n\n### Interlink documents\n\nMarkdown supports \"reference-style\" links, which are not inline\nwith the text.\n\n`feedmark` can rewrite reference-style links that match the name of\nan entry in a previously-created \"refdex\", so that they\ncan be kept current and point to the canonical document in which the\nentry exists, since it may exist in multiple, or be moved over time.\n\n    feedmark eg/*.md --output-refdex \u003erefdex.json\n    feedmark --input-refdex=refdex.json --rewrite-markdown eg/*.md\n\nSee also\n--------\n\nFeedmark is a subset of Markdown, which is something it has in common\nwith [Falderal][], however it has decidedly different goals.\n\nSee [TODO.md](TODO.md) for planned features and [HISTORY.md](HISTORY.md)\nfor a record of features added in past versions.\n\n[Falderal]: https://catseye.tc/node/Falderal\n[Chrysoberyl]: https://git.catseye.tc/Chrysoberyl/\n[Some Games of Note]: https://catseye.tc/node/Some%20Games%20of%20Note\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Ffeedmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatseye%2Ffeedmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Ffeedmark/lists"}