{"id":15130843,"url":"https://github.com/intothevoid/likho","last_synced_at":"2026-01-28T21:33:16.482Z","repository":{"id":255946155,"uuid":"849846703","full_name":"intothevoid/likho","owner":"intothevoid","description":"A static site generator designed to be light, fast and simple","archived":false,"fork":false,"pushed_at":"2025-04-24T08:22:36.000Z","size":266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T10:07:02.405Z","etag":null,"topics":["go","golang","html","markdown","static-site"],"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/intothevoid.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,"zenodo":null}},"created_at":"2024-08-30T11:16:55.000Z","updated_at":"2025-04-24T08:14:00.000Z","dependencies_parsed_at":"2025-04-17T08:57:10.159Z","dependency_job_id":"27f2c323-57d0-4257-9857-63f34b6389ec","html_url":"https://github.com/intothevoid/likho","commit_stats":{"total_commits":51,"total_committers":1,"mean_commits":51.0,"dds":0.0,"last_synced_commit":"9337d5f1bba6e119381b9317255ed973b75216ff"},"previous_names":["intothevoid/likho"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/intothevoid/likho","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Flikho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Flikho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Flikho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Flikho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intothevoid","download_url":"https://codeload.github.com/intothevoid/likho/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Flikho/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28852865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"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","html","markdown","static-site"],"created_at":"2024-09-26T03:07:12.325Z","updated_at":"2026-01-28T21:33:16.476Z","avatar_url":"https://github.com/intothevoid.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Likho\n\n\u003ca href=\"assets/logo.png\"\u003e\u003cimg src=\"assets/logo.png\" height=\"300px\" alt=\"Likho Logo\"\u003e\u003c/a\u003e\n\n[![Go](https://github.com/intothevoid/likho/actions/workflows/go.yml/badge.svg)](https://github.com/intothevoid/likho/actions/workflows/go.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/intothevoid/likho)](https://goreportcard.com/report/github.com/intothevoid/likho)\n[![Release](https://img.shields.io/github/release/intothevoid/likho.svg)](https://github.com/intothevoid/likho/releases/latest)\n[![License](https://img.shields.io/github/license/intothevoid/likho.svg)](https://github.com/intothevoid/likho/blob/main/LICENSE)\n\nLikho is a lightweight, fast, and simple static site generator written in Go. \n\nIt's designed to convert markdown files into a fully functional static website with minimal configuration.\n\n# Demo\n\nA demo site (my personal blog) built with Likho can be found at [https://intothevoid.github.io/](https://intothevoid.github.io/)\n\n## Features\n\n- Markdown to HTML conversion\n- YAML-based configuration\n- Custom metadata for each post and page\n- Automatic sitemap and RSS feed generation\n- Command-line interface for easy management\n- Support for creating both posts and pages\n- Syntax highlighting for code blocks\n- Mermaid diagrams\n- Responsive design\n- Dark mode\n- Pagination for posts\n- Customizable theme\n- Easy to understand and modify\n- Lightweight and fast\n\n## Installation\n\n1. Ensure you have Go 1.23 or later installed on your system.\n\n2. Clone the repository:\n   ```\n   git clone https://github.com/intothevoid/likho.git\n   cd likho\n   ```\n\n3. Build the application:\n   ```\n   go build -o likho cmd/likho/main.go\n   ```\n\n4. (Optional) Add the `likho` binary to your PATH for easier access.\n\n## Usage\n\nLikho provides several commands to manage your static site:\n\n### Create a new post\n\n```\n./likho create post \"My New Post\" [flags]\n```\n\nAvailable flags:\n- `-t, --tags string`: Comma-separated list of tags for the post\n- `-i, --image string`: URL of the featured image for the post\n- `-d, --description string`: Short description of the post\n\nExample:\n```\n./likho create post \"My New Post\" -t \"technology,golang\" -i \"https://example.com/image.jpg\"\n```\n\n### Create a new page\n\n```\n./likho create page \"Page Title\" [flags]\n```\n\nAvailable flags:\n- `-i, --image string`: URL of the featured image for the page\n- `-d, --description string`: Short description of the page\n\nExample:\n```\n./likho create page \"About Me\" -i \"https://example.com/about.jpg\" -d \"Learn more about the author\"\n```\n\n### Generate the static site\n\n```\n./likho generate\n```\n\nThis command will:\n1. Parse all posts and pages\n2. Generate HTML files for each post and page\n3. Create an index page with recent posts\n4. Generate a sitemap and RSS feed\n5. Copy the CSS file to the output directory\n\n### Serve the generated site locally\n\n```\n./likho serve\n```\n\nThis command starts a local web server to preview your generated site.\n\n### Display help information\n\n```\n./likho help\n```\n\nUse this command to see all available commands and their descriptions.\n\n## Generate with Docker\n\nUse the following command to build a Docker image:\n\n```\ndocker build -t likho .\n```\n\nTo run the Docker container and generate the static site, use:\n\n```\ndocker run --rm -v \"$(pwd)/content:/app/content:ro\" -v \"$(pwd)/public:/app/public\" likho:latest generate\n```\n\nNote: The following directories are required:\n- content - Contains the markdown files for the site. This is the input directory.\n- public - Will contain the generated static site. This is the output directory.\n\n### Push to Docker Hub\n\n```\ndocker buildx create --use\ndocker buildx build --platform linux/amd64,linux/arm64 -t yourdockerhubusername/likho:latest --push .\n```\n\n## Configuration\n\nYour site's configuration is stored in `config.yaml`. Here's an example configuration:\n\n```yaml\n# Site Information\nsite:\n  title: \"My Awesome Blog\"\n  description: \"A blog about awesome things\"\n  base_url: \"https://example.com\"\n  language: \"en\"\n\n# Content Settings\ncontent:\n  source_dir: \"content\"\n  posts_dir: \"posts\"\n  output_dir: \"public\"\n  templates_dir: \"templates\"\n  pages_dir: \"pages\"\n  posts_per_page: 10\n  images_dir: \"images\"\n\n# Theme Settings\ntheme:\n  name: \"default\"\n  path: \"themes/default\"\n  features:\n    syntax_highlighting: true\n    dark_mode: false\n  custom:\n    primary_color: \"#2596be\"\n    font_family: \"sans-serif\"\n\n# Build Settings\nbuild:\n  draft: false\n  future: false\n\n# Server Settings\nserver:\n  port: 8080\n  host: \"localhost\"\n\n# Social Media Links\nsocial:\n  twitter: \"https://twitter.com/username\"\n  github: \"https://github.com/username\"\n  linkedin: \"https://linkedin.com/in/username\"\n\n# Additional Features\nfeatures:\n  comments: false\n  search: true\n  rss: true\n\n# Custom Variables\ncustom:\n  google_analytics: \"UA-XXXXXXXXX-X\"\n  disqus_shortname: \"your-disqus-shortname\"\n\nEnsure that your `config.yaml` file is in the root directory of your Likho project.\n\n## Directory Structure\n\nAfter setting up your Likho project, your directory structure should look like this:\n\n```\nmy-likho-site/\n├── config.yaml\n├── content/\n│   ├── posts/\n│   │   └── YYYY-MM-DD/\n│   │       └── post-slug.md\n│   ├── pages/\n│   │   └── page-slug.md\n│   ├── images/\n│   └── other/          # Directory for static assets like text files, STL files, etc.\n├── themes/\n│   └── default/\n│       ├── theme.yaml\n│       ├── static/\n│       │   ├── css/\n│       │   │   └── main.css\n│       │   ├── js/\n│       │   └── images/\n│       └── templates/\n│           ├── base.html\n│           ├── index.html\n│           ├── post.html\n│           ├── pages.html\n│           ├── header.html\n│           └── footer.html\n└── public/\n    └── (generated files)\n```\n\n## Themes\n\nLikho supports multiple themes. Each theme is stored in its own directory under the `themes` folder. A theme consists of:\n\n1. `theme.yaml` - Theme configuration file\n2. `static/` - Static assets (CSS, JS, images)\n3. `templates/` - HTML templates\n\n### Theme Configuration\n\nEach theme must have a `theme.yaml` file that defines its configuration:\n\n```yaml\nname: \"theme-name\"\nversion: \"1.0.0\"\ndescription: \"Theme description\"\nauthor: \"Theme Author\"\nlicense: \"MIT\"\n\nassets:\n  css:\n    - \"static/css/main.css\"\n  js: []\n  images: []\n\nfeatures:\n  syntax_highlighting: true\n  responsive: true\n  dark_mode: false\n```\n\n### Creating a New Theme\n\nTo create a new theme:\n\n1. Create a new directory under `themes/` with your theme name\n2. Create the required directory structure:\n   ```\n   themes/my-theme/\n   ├── theme.yaml\n   ├── static/\n   │   ├── css/\n   │   ├── js/\n   │   └── images/\n   └── templates/\n   ```\n3. Create your theme configuration in `theme.yaml`\n4. Add your CSS, JS, and image files\n5. Create your HTML templates\n6. Update your `config.yaml` to use your new theme\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintothevoid%2Flikho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintothevoid%2Flikho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintothevoid%2Flikho/lists"}