{"id":13582241,"url":"https://github.com/andreaskoch/allmark","last_synced_at":"2025-04-07T05:12:38.304Z","repository":{"id":7874670,"uuid":"9247986","full_name":"andreaskoch/allmark","owner":"andreaskoch","description":"A cross-platform markdown web server","archived":false,"fork":false,"pushed_at":"2022-12-26T02:34:30.000Z","size":17183,"stargazers_count":314,"open_issues_count":29,"forks_count":74,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-03-30T22:11:13.013Z","etag":null,"topics":["linux","macos","markdown","web-server","windows"],"latest_commit_sha":null,"homepage":"https://allmark.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreaskoch.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}},"created_at":"2013-04-05T18:38:39.000Z","updated_at":"2025-03-03T15:30:39.000Z","dependencies_parsed_at":"2023-01-11T18:45:53.065Z","dependency_job_id":null,"html_url":"https://github.com/andreaskoch/allmark","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreaskoch%2Fallmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreaskoch%2Fallmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreaskoch%2Fallmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreaskoch%2Fallmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreaskoch","download_url":"https://codeload.github.com/andreaskoch/allmark/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595335,"owners_count":20963943,"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":["linux","macos","markdown","web-server","windows"],"created_at":"2024-08-01T15:02:31.547Z","updated_at":"2025-04-07T05:12:38.260Z","avatar_url":"https://github.com/andreaskoch.png","language":"Go","readme":"# allmark - the markdown server\n\nallmark is a fast, standalone markdown web server for Linux, Mac OS and Windows written in go.\n\n![allmark logo](files/design/logo/PNG8/allmark-logo-128x128.png)\n\nallmark is a file-system-centric markdown web server. You can **point it at any directory that contains markdown files** and it will immediately start a web-server that serves the rendered HTML content of the markdown file to you.\n\nAnd it will not only render the markdown files in your directory as HTML, but it will also add everything that it needed for a complete website: Navigation, Full-text Search, Theming, Sitemap, RSS, Tags, ... on-the-fly with websocket-based live-reload.\n\n[![Animation: Cloning allmark from github, building it and taking it out for a test run on the allmark repository itself](files/animation-clone-installation-and-test.gif)](files/animation-clone-installation-and-test.gif)\n\nAnd thanks to the power of [go](http://golang.org/) all of this is super fast and done with a single standalone application.\n\n## Usage\n\nServe a specific directory:\n\n```bash\nallmark serve \u003cdirectory path\u003e\n```\n\nServe the current directory:\n\n```bash\ncd markdown-repository\nallmark serve\n```\n\nServe the current directory with **live-reload** enabled:\n\n```bash\nallmark serve -livereload\n```\n\nForce a full **reindex** every 60* seconds:\n\n```bash\nallmark serve -reindex\n```\n\n`*` When enabled the default interval is 60 seconds. You can change the interval in the repository config.\n\nForce HTTPS (redirect all http requests to HTTPS):\n\n```bash\nallmark serve -secure\n```\n\nSave the default configuration to the `.allmark` folder so you can customize it:\n\n```bash\nallmark init\n```\n\nYou can point **allmark** at any folder structure that contains **markdown documents** and files referenced by these documents (e.g. this repository folder) and allmark will start a **web-server** and serve the folder contents as HTML via HTTP(s) on a random free port.\n\n**Folder Structure Conventions**\n\nThe standard folder structure for a **markdown-repository item** could look something like this:\n\n```\n├── files\n│   ├── image.png\n│   └── more-files\n│       ├── file1.txt\n│       ├── file2.txt\n│       └── file3.txt\n└── some-file.md\n```\n\n1. one markdown file per folder (with the extension .md, .markdown or .mdown)\n2. a `files` folder which contains all files referenced by the markdown document\n3. an arbitrary number of child directories that can contain more markdown-repository items\n\n**Nesting / Hierarchie**\n\nYou can nest repository items arbitrarily. Example:\n\n```\n├── child-item-1\n│   └── item1.md\n├── child-item-2\n│   └── item2.md\n├── child-item-3\n│   └── item3.md\n├── files\n│   ├── image.png\n│   └── more-files\n│       ├── file1.txt\n│       ├── file2.txt\n│       └── file3.txt\n└── some-file.md\n```\n\n**Folders without Markdown Files**\n\n- If you have folders in your repository that don't contains markdown files allmark will display and index of all files in that directory (→ **file-collection item**)\n- file-collection items cannot have other childs\n\n**Markdown Document Structure**\n\nallmark makes certain assumptions about the structure of your documents. They should have\n\n1. Title\n2. Description Text\n3. Document Body\n\nA **typical document** expected by allmark could look like this:\n\n```markdown\n# Document Title / Headline\n\nA short description of the document ... Usually one sentence.\n\nThe Content of your document\n\n![Some Image](files/image.jpg)\n\n- A List 1\n- A List 2\n- A List 3\n\n**Some garbage text**: In pharetra ullamcorper egestas.\nNam vel sodales velit. Nulla elementum dapibus sem nec scelerisque.\nIn hac habitasse platea dictumst. Nulla vestibulum lacinia tincidunt.\n```\n\n## Download / Installation\n\nYou can download the **latest binaries** of allmark for your operating system from [allmark.io/bin](https://allmark.io/bin)\n\n**Linux**\n\n```bash\nsudo su\ncurl -s --insecure https://allmark.io/bin/allmark \u003e /usr/local/bin/allmark\nchmod +x /usr/local/bin/allmark\n```\n\n**Mac OS**\n\n```bash\nsudo curl \"https://allmark.io/bin/darwin_amd64/allmark\" -o \"/usr/local/bin/allmark\"\nsudo chmod +x /usr/local/bin/allmark\n```\n\n**Windows**\n\n```powershell\nInvoke-WebRequest https://allmark.io/bin/windows_amd64/allmark.exe -OutFile allmark.exe\n```\n\nAll binaries at [allmark.io](https://allmark.io) are up-to-date builds of the **master**-branch.\n\nIf you want to download and install binaries from the **develop**-branch you can go to [develop.allmark.io/bin](https://develop.allmark.io).\n\n## Features\n\nallmark can convert about any folder structure that contains markdown documents into well-structured websites with\n\n- navigation\n- sitemap\n- search\n- livereload\n\nand serves them via HTTP and/or HTTPs.\n\nFor a detailed list of all features goto [documentation/features](documentation/features).\n\n## Demo / Showcase\n\nIf you want to see **allmark in action** you can visit my blog [AndyK Docs](https://andykdocs.de/) at [https://andykdocs.de](https://andykdocs.de):\n\n![Animation: Demo of allmark hosting andykdocs.de ](files/demo/allmark-demo-andykdocs.gif)\n\n## Build\n\n[![Build Status](https://travis-ci.org/andreaskoch/allmark.png)](https://travis-ci.org/andreaskoch/allmark)\n\nOr you can build allmark yourself if you have [go installed](http://golang.org/doc/install) (see: [documentation/development/build](documentation/development/build)).\n\n## Known Bugs\n\n`-- There are currently no known bugs :dancers: --`\n\nIf you encouter a bug please file an issue on at [github.com/andreaskoch/allmark/issues](https://github.com/andreaskoch/allmark/issues).\n\n## Roadmap / To Dos\n\nHere are some of the ideas and todos I would like to add in the future.\n\n### Architecture \u0026 Features\n\n- Allow localization/internationalization\n- Web editor for markdown documents for collaborative editing\n- Additional Data Sources\n    - Amazon S3\n    - Dropbox support\n    - SMTP message posting\n    - Repository Replication?\n- allmark swarm\n    - Repository sharding\n    - load-balancing\n    - distributed filesystem ([ipfs](http://ipfs.io/))\n- Static website generation\n- User Management\n    - User management pages\n- Support for folders with multiple markdown files\n- Support for custom-rewrites\n- Daemon mode\n- Create `install` actions for Windows, Linux and Mac OS which handle the OS integration\n\n### Documentation\n\n- More documentation for public methods ([godoc](http://blog.golang.org/godoc-documenting-go-code))\n- More unit-tests\n- Integration tests\n\n### Theming\n\n- Redesign default theme\n- Create more default themes\n- Create a theme \"loader\"\n- Infinite Scrolling for latest items\n- Improved Image Galleries\n\n## Contributions\n\nIf you want to improve allmark in any way please create a pull request or contact me.\nAll contributions are welcome!\n\n## Contact\n\nTwitter: [@allmark_io](https://twitter.com/allmark_io) or [@andreaskoch](https://twitter.com/andreaskoch)\nGithub: [github.com/andreaskoch/allmark](https://github.com/andreaskoch/allmark)\nE-Mail: andy@allmark.io\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreaskoch%2Fallmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreaskoch%2Fallmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreaskoch%2Fallmark/lists"}