{"id":13475409,"url":"https://github.com/muesli/markscribe","last_synced_at":"2025-04-04T23:09:52.643Z","repository":{"id":39705732,"uuid":"280798965","full_name":"muesli/markscribe","owner":"muesli","description":"Your personal markdown scribe with template-engine and Git(Hub) \u0026 RSS powers 📜","archived":false,"fork":false,"pushed_at":"2024-07-16T19:09:42.000Z","size":147,"stargazers_count":377,"open_issues_count":43,"forks_count":43,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T22:14:40.733Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":null,"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/muesli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"muesli"}},"created_at":"2020-07-19T05:32:24.000Z","updated_at":"2025-03-16T16:58:45.000Z","dependencies_parsed_at":"2024-06-18T20:10:58.491Z","dependency_job_id":"670dbf02-54e3-41d1-8cec-468165af47ec","html_url":"https://github.com/muesli/markscribe","commit_stats":{"total_commits":73,"total_committers":14,"mean_commits":5.214285714285714,"dds":"0.34246575342465757","last_synced_commit":"40e057ec8993bc1464496a00597d72bd97e5cdd6"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muesli%2Fmarkscribe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muesli%2Fmarkscribe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muesli%2Fmarkscribe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muesli%2Fmarkscribe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muesli","download_url":"https://codeload.github.com/muesli/markscribe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261612,"owners_count":20910108,"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","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":["hacktoberfest"],"created_at":"2024-07-31T16:01:20.158Z","updated_at":"2025-04-04T23:09:52.610Z","avatar_url":"https://github.com/muesli.png","language":"Go","readme":"# markscribe\n\n[![Latest Release](https://img.shields.io/github/release/muesli/markscribe.svg)](https://github.com/muesli/markscribe/releases)\n[![Build Status](https://github.com/muesli/markscribe/workflows/build/badge.svg)](https://github.com/muesli/markscribe/actions)\n[![Go ReportCard](https://goreportcard.com/badge/muesli/markscribe)](https://goreportcard.com/report/muesli/markscribe)\n[![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](https://pkg.go.dev/github.com/muesli/markscribe)\n\nYour personal markdown scribe with template-engine and Git(Hub) \u0026 RSS powers 📜\n\nYou can run markscribe as a GitHub Action: [readme-scribe](https://github.com/muesli/readme-scribe/)\n\n## Usage\n\nRender a template to stdout:\n\n    markscribe template.tpl\n\nRender to a file:\n\n    markscribe -write /tmp/output.md template.tpl\n\n## Installation\n\n### Packages \u0026 Binaries\n\nIf you use Brew, you can simply install the package:\n\n    brew install muesli/tap/markscribe\n\nOr download a binary from the [releases](https://github.com/muesli/markscribe/releases)\npage. Linux (including ARM) binaries are available, as well as Debian and RPM\npackages.\n\n### Build From Source\n\nAlternatively you can also build `markscribe` from source. Make sure you have a\nworking Go environment (Go 1.16 or higher is required). See the\n[install instructions](https://golang.org/doc/install.html).\n\nTo install markscribe, simply run:\n\n    go get github.com/muesli/markscribe\n\n## Templates\n\nYou can find an example template to generate a GitHub profile README under\n[`templates/github-profile.tpl`](templates/github-profile.tpl). Make sure to fill in (or remove) placeholders,\nlike the RSS-feed or social media URLs.\n\nRendered it looks a little like my own profile page: https://github.com/muesli\n\n## Functions\n\n### RSS feed\n\n```\n{{range rss \"https://domain.tld/feed.xml\" 5}}\nTitle: {{.Title}}\nURL: {{.URL}}\nPublished: {{humanize .PublishedAt}}\n{{end}}\n```\n\n### Your recent contributions\n\n```\n{{range recentContributions 10}}\nName: {{.Repo.Name}}\nDescription: {{.Repo.Description}}\nURL: {{.Repo.URL}})\nOccurred: {{humanize .OccurredAt}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Your recent pull requests\n\n```\n{{range recentPullRequests 10}}\nTitle: {{.Title}}\nURL: {{.URL}}\nState: {{.State}}\nCreatedAt: {{humanize .CreatedAt}}\nRepository name: {{.Repo.Name}}\nRepository description: {{.Repo.Description}}\nRepository URL: {{.Repo.URL}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Repositories you recently starred\n\n```\n{{range recentStars 10}}\nName: {{.Repo.Name}}\nDescription: {{.Repo.Description}}\nURL: {{.Repo.URL}})\nStars: {{.Repo.Stargazers}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Repositories you recently created\n\n```\n{{range recentRepos 10}}\nName: {{.Name}}\nDescription: {{.Description}}\nURL: {{.URL}})\nStars: {{.Stargazers}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Custom GitHub repository\n\n```\n{{with repo \"muesli\" \"markscribe\"}}\nName: {{.Name}}\nDescription: {{.Description}}\nURL: {{.URL}}\nStars: {{.Stargazers}}\nIs Private: {{.IsPrivate}}\nLast Git Tag: {{.LastRelease.TagName}}\nLast Release: {{humanize .LastRelease.PublishedAt}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Forks you recently created\n\n```\n{{range recentForks 10}}\nName: {{.Name}}\nDescription: {{.Description}}\nURL: {{.URL}})\nStars: {{.Stargazers}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Recent releases you contributed to\n\n```\n{{range recentReleases 10}}\nName: {{.Name}}\nGit Tag: {{.LastRelease.TagName}}\nURL: {{.LastRelease.URL}}\nPublished: {{humanize .LastRelease.PublishedAt}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Your published gists\n\n```\n{{range gists 10}}\nName: {{.Name}}\nDescription: {{.Description}}\nURL: {{.URL}}\nCreated: {{humanize .CreatedAt}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`.\n\n### Your latest followers\n\n```\n{{range followers 5}}\nUsername: {{.Login}}\nName: {{.Name}}\nAvatar: {{.AvatarURL}}\nURL: {{.URL}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`read:user`.\n\n### Your sponsors\n\n```\n{{range sponsors 5}}\nUsername: {{.User.Login}}\nName: {{.User.Name}}\nAvatar: {{.User.AvatarURL}}\nURL: {{.User.URL}}\nCreated: {{humanize .CreatedAt}}\n{{end}}\n```\n\nThis function requires GitHub authentication with the following API scopes:\n`repo:status`, `public_repo`, `read:user`, `read:org`.\n\n### Your GoodReads reviews\n\n```\n{{range goodReadsReviews 5}}\n- {{.Book.Title}} - {{.Book.Link}} - {{.Rating}} - {{humanize .DateUpdated}}\n{{- end}}\n```\n\nThis function requires GoodReads API key!\n\n### Your GoodReads currently reading books\n\n```\n{{range goodReadsCurrentlyReading 5}}\n- {{.Book.Title}} - {{.Book.Link}} - {{humanize .DateUpdated}}\n{{- end}}\n```\n\nThis function requires GoodReads API key!\n\n### Your Literal.club currently reading books\n\n```\n{{range literalClubCurrentlyReading 5}}\n- {{.Title}} - {{.Subtitle}} - {{.Description}} - https://literal.club/_YOUR_USERNAME_/book/{{.Slug}}\n  {{- range .Authors }}{{ .Name }}{{ end }}\n{{- end}}\n```\n\nThis function requires a `LITERAL_EMAIL` and `LITERAL_PASSWORD`.\n\n## Template Engine\n\nmarkscribe uses Go's powerful template engine. You can find its documentation\nhere: https://golang.org/pkg/text/template/\n\n## Template Helpers\n\nmarkscribe comes with a few handy template helpers:\n\nTo format timestamps, call `humanize`:\n\n```\n{{humanize .Timestamp}}\n```\n\nTo reverse the order of a slice, call `reverse`:\n\n```\n{{reverse (rss \"https://domain.tld/feed.xml\" 5)}}\n```\n\n## GitHub Authentication\n\nIn order to access some of GitHub's API, markscribe requires you to provide a\nvalid GitHub token in an environment variable called `GITHUB_TOKEN`. You can\ncreate a new token by going to your profile settings:\n\n`Developer settings` \u003e `Personal access tokens` \u003e `Generate new token`\n\n## GoodReads API key\n\nIn order to access some of GoodReads' API, markscribe requires you to provide a\nvalid GoodReads key in an environment variable called `GOODREADS_TOKEN`. You can\ncreate a new token by going [here](https://www.goodreads.com/api/keys).\nThen you need to go to your repository and add it, `Settings -\u003e Secrets -\u003e New secret`.\nYou also need to set your GoodReads user ID in your secrets as `GOODREADS_USER_ID`.\n\n## FAQ\n\nQ: That's awesome, but can you expose more APIs and data?  \nA: Of course, just open a new issue and let me know what you'd like to do with markscribe!\n\nQ: That's awesome, but I don't have my own server to run this on. Can you help?  \nA: Check out [readme-scribe](https://github.com/muesli/readme-scribe/), a GitHub Action that runs markscribe for you!\n","funding_links":["https://github.com/sponsors/muesli"],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuesli%2Fmarkscribe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuesli%2Fmarkscribe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuesli%2Fmarkscribe/lists"}