Download the PHP
package ranetrace/lemme without Composer
On this page you can find all versions of the php package
ranetrace/lemme. It is possible to download/install
these versions without Composer. Possible dependencies are resolved
automatically.
Vendor ranetrace Package lemme Short Description Laravel package for generating documentation websites from Markdown files License
MIT Homepage https://github.com/ranetrace/lemme
After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.
Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.
In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories.
In this case some credentials are needed to access such packages.
Please use the auth.json textarea to insert credentials, if a package is coming from a private repository.
You can look here for more information.
Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
To use Composer is sometimes complicated. Especially for beginners.
Composer needs much resources. Sometimes they are not available on a simple webspace.
If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
# Lemme - Documentation Generator for Laravel
Lemme is a Laravel package that facilitates the creation of beautiful documentation websites from Markdown files. It provides a simple way to turn your project's documentation into a fully-featured website with a modern, responsive design. All from within your Laravel application.
[](https://packagist.org/packages/ranetrace/lemme)
## Table of Contents
- [Quick Start](#quick-start)
- [Features](#features)
- [Installation](#installation)
- [Configuration](#configuration)
- [Logo Customization](#logo-customization)
- [Favicon Customization](#favicon-customization)
- [Customizing Markdown Rendering](#customizing-markdown-rendering)
- [Usage](#usage)
- [Creating Documentation](#creating-documentation)
- [Slug Configuration](#slug-configuration)
- [Index Pages & Nested Index Behavior](#index-pages--nested-index-behavior)
- [Duplicate Slug Handling](#duplicate-slug-handling)
- [Quick Reference Summary](#quick-reference-summary)
- [Directory-based Navigation Grouping](#directory-based-navigation-grouping)
- [Accessing Documentation](#accessing-documentation)
- [Markdown for agents](#markdown-for-agents)
- [API Access (Optional)](#api-access-optional)
- [Commands](#commands)
- [Publishing Assets / Views / Config](#publishing-assets--views--config)
- [Cache & Reindex Details](#cache--reindex-details)
- [Heading Anchors](#heading-anchors)
- [Search Index](#search-index)
- [Troubleshooting Slugs](#troubleshooting-slugs)
- [Using the Facade](#using-the-facade)
- [Themes](#themes)
- [Performance](#performance)
- [Subdomain Setup (Optional)](#subdomain-setup-optional)
- [Development](#development)
- [Building Assets](#building-assets)
- [Contributing](#contributing)
- [License](#license)
- [Credits](#credits)
## Quick Start
Lemme makes it super easy to create and maintain documentation for your Laravel projects.
Just run `php artisan lemme:install`, write your docs in the `docs/` folder and your documentation site is ready!
It's really that simple. And totally free.
## Features
- **Markdown-based**: Write your documentation in simple Markdown files inside the `docs/` directory in your project
- **Beautiful UI**: Modern design (Tailwind CSS 4 + dark mode) out of the box
- **Responsive**: Works on all devices
- **Fast**: Built-in caching (pages, HTML, search) with rotation
- **Flexible routing**: Serve via route prefix (default) or a subdomain
- **Configurable**: Directories, navigation sorting/grouping, logo rendering, search limits
- **Laravel-native**: Service provider, facade, Livewire component
- **Syntax highlighting**: Shiki-driven code highlighting (light & dark themes)
- **Directory grouping**: Automatic navigation tree from folder structure
- **Search-ready**: Plain‑text index built from rendered Markdown
- **Anchors**: Stable heading IDs with automatic de‑duplication
- **Agent-friendly**: Every page has a raw Markdown twin at `.md` (or via `Accept: text/markdown`)
> Note: The `theme` config key is currently a placeholder (only the bundled default + dark mode variant ships). Extra named themes are not yet implemented.
## Installation
Install the package via Composer:
Install the documentation system:
This will:
- Create a `docs` directory in your project root
- Generate sample documentation files with **numbered structure**
- Publish the compiled Tailwind CSS assets
- Set up the necessary configuration
**Example navigation structure (illustrative):**
**What the installer actually creates:**
Add further folders/files manually following the same naming conventions.
## Configuration
Use the environment variables or edit `config/lemme.php` to customize your documentation website:
### Logo Customization
You can fully customize the logo displayed in the header. Choose one of three rendering modes via the config file or environment variables.
> Recommended: Use the `view` (Blade partial) option. It's the most flexible and future‑proof approach because you can:
> - Swap light/dark variants conditionally
> - Add accessible markup (ARIA labels, screen-reader text)
> - Inject dynamic data (app version, beta badge, etc.)
> - Reuse shared components / Tailwind classes
> - Evolve the logo without changing `.env` variables
>
> The `image` and `text` modes are intentionally lightweight shortcuts, but most projects should create and use a Blade partial.
| Type | Env Setting | Required Extra Vars | Description |
|-------|-------------------------------|--------------------------------------|----------------------------------------|
| view | `LEMME_LOGO_TYPE=view` | `LEMME_LOGO_VIEW` (optional) | Renders a Blade view (default partial) |
| image | `LEMME_LOGO_TYPE=image` | `LEMME_LOGO_IMAGE` (path or URL) | Outputs an `` tag |
| text | `LEMME_LOGO_TYPE=text` | `LEMME_LOGO_TEXT` (string) | Simple text logo |
Common optional variables:
Examples:
Image logo:
Text logo:
Custom view (via your own Blade partial):
If a required variable for the chosen type is missing (or the view can't be resolved), Lemme gracefully falls back to the default bundled SVG logo.
### Favicon Customization
Lemme serves documentation from its own standalone HTML document, so the docs pages do **not** inherit your host application's `` favicon tags. Favicon support is therefore explicit Lemme config, mirroring the [logo](#logo-customization) pattern.
> The default is `none` — Lemme emits **no** favicon markup at all, leaving the docs `` byte-identical to previous versions. Upgrading changes nothing until you opt in.
| Type | Env Setting | Required Extra Vars | Description |
|------|--------------------------|----------------------------------|--------------------------------------------------------|
| none | `LEMME_FAVICON_TYPE=none` | — | Emits nothing (default) |
| file | `LEMME_FAVICON_TYPE=file` | `LEMME_FAVICON_HREF` (path/URL) | Emits `` (+ optional apple-touch-icon) |
| view | `LEMME_FAVICON_TYPE=view` | `LEMME_FAVICON_VIEW` (view name) | Renders your Blade partial inside `` |
The `href`/`apple_touch` paths follow the same resolution rule as the image logo: a value starting with `http://`, `https://`, or `/` is used verbatim, otherwise it is passed through `asset()` (relative to `public/`). This matters when `LEMME_SUBDOMAIN` is set, since the browser's default `/favicon.ico` request would otherwise resolve against the wrong docroot.
Simple `.ico` favicon:
SVG favicon with an Apple touch icon:
For a full modern set (SVG + `.ico` fallback + apple-touch-icon + `site.webmanifest` + `theme-color` + light/dark `media` queries), use the `view` escape hatch and put all the ``/`` tags in your own Blade partial — Lemme intentionally does not model those individually in config:
If the configured view does not exist, Lemme emits nothing (it does not error and there is no default favicon partial).
### Customizing Markdown Rendering
Lemme owns a dedicated `MarkdownRenderer` instance configured under `lemme.markdown`. Your host application's `config/markdown.php` (from `spatie/laravel-markdown`) is left untouched — so any other Markdown rendering elsewhere in your app is unaffected by Lemme.
GitHub Flavored Markdown (tables, task lists, autolinks, strikethrough) and heading permalinks are enabled by default, so things like this just work:
To add or remove CommonMark extensions, publish the config (`php artisan vendor:publish --tag=lemme-config`) and edit the `markdown.extensions` array:
Each entry in `extensions` is a fully-qualified class name implementing `League\CommonMark\Extension\ExtensionInterface`; Lemme instantiates it per render. Pass any extension-specific configuration through `commonmark_options`.
#### Swapping the Renderer
`markdown.renderer` names the class Lemme builds per render. The default, `Ranetrace\Lemme\Support\MarkdownRenderer`, extends the Spatie renderer to keep every code block inside a `
` element. The Spatie renderer returns only the *contents* of that element, which is fine while Shiki answers (a highlighted block brings its own `
`), but loses the `
` on every path where Shiki cannot highlight: a language Shiki does not know, such as ` markdown
---
title: Getting Started
description: Learn how to get started with our project
slug: custom-getting-started
---
# Getting Started
Your content here...
docs/1_getting-started/2_installation.md
├─ Default slug: "installation"
├─ URL: /installation
docs/api/3-authentication.md
├─ Default slug: "authentication"
├─ URL: /authentication
docs/guides/advanced-features.md
├─ Default slug: "advanced-features"
├─ URL: /advanced-features
markdown
---
title: Installation Guide
slug: setup
---
docs/
├── index.md
├── getting-started/
│ ├── installation.md
│ └── configuration.md
├── guides/
│ ├── deployment.md
│ └── troubleshooting.md
└── api/
├── authentication.md
└── endpoints.md
docs/
├── index.md # Ungrouped: "Home"
├── 1_getting-started/ # Group: "Getting Started" (sorted first)
│ ├── 1_installation.md # ├─ Installation
│ └── 2_configuration.md # └─ Configuration
└── 2_api/ # Group: "API" (sorted second)
├── 1_authentication.md # ├─ Authentication
├── 2_endpoints.md # ├─ Endpoints
└── 3_advanced/ # └─ Advanced (sub-group)
├── 1_webhooks.md # ├─ Webhooks
└── 2_rate-limiting.md # └─ Rate Limiting
html
LEMME_MARKDOWN_ENABLED=false
LEMME_API_ENABLED=true
php artisan vendor:publish --tag=lemme-config
php artisan vendor:publish --tag=lemme-views
php artisan vendor:publish --tag=lemme-assets
php artisan lemme:publish --force
LEMME_SEARCH_MAX_CONTENT_LENGTH=8000
`markdown
apache
ServerAlias docs.yoursite.com
nginx
server_name yoursite.com docs.yoursite.com;
bash
# Install dependencies
bun install
# Build for development (with watching)
bun run dev
# Build for production
bun run build
```
The compiled CSS will be generated in the `dist/` directory and can be published to Laravel projects.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
## Credits
- **Author**: Rutger Broerze
- **Built with**: Laravel, Tailwind CSS, Alpine.js
- **Markdown parsing**: Spatie Laravel Markdown (with Shiki syntax highlighting)
- **Frontmatter parsing**: Spatie YAML Front Matter
Composer command for our command line client (download client)This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free.Standard composer command
The package ranetrace/lemme contains the following files
Loading the files please wait ...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.