Download the PHP package dniccum/nova-documentation without Composer
On this page you can find all versions of the php package dniccum/nova-documentation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dniccum/nova-documentation
More information about dniccum/nova-documentation
Files in dniccum/nova-documentation
Package nova-documentation
Short Description A Laravel Nova tool that allows you to add markdown-based documentation to your administrator's dashboard.
License MIT
Homepage https://github.com/dniccum/nova-documentation
Informations about the package nova-documentation
This is a tool for Laravel's Nova administrator panel that allows you to create markdown-based documentation for your application; without having to leave the Nova environment.
Table of Contents
- Compatibility Note
- Features
- Installation
- Upgrading from version 2
- Add YAML configuration
- Set environment variable
- Remove dashed horizontal rules
- Using this tool
- Page YAML configuration/customization
- Adding configuration to your pages
- Linking
- Relative links
- Other types
- Routes and adding new pages
- Authorization redirects
- Page YAML configuration/customization
- Configuration
- License
- Credits
Compatibility Note
Please note, this plugin now only supports Laravel Nova v4. If you are using Laravel Nova <= v3, please use version ^3.0
,
Features
- Parses each markdown document and renders them in the Nova dashboard
- Dynamic page titles: Each h1 tag (
# title
) is set as the page title- Each page title is then used to construct a sidebar, allowing for navigation through your documentation.
- Allows for nested directories
- Supports YAML parsing to further customize page titles
- Syntax highlighting for code blocks (via highlight.js)
- Replaces local links within the body content to work within the Nova environment.
- Supports both browser light and dark themes.
- Allows for customized login/authorization redirection logic if you want to customize what users see if they are not appropriately authenticated.
Installation
You can install the package via composer:
You will then need to publish the package's configuration and blade view files to your applications installation:
Finally, you will need to register the tool within the NovaServiceProvider.php
:
Upgrading from version 2
If you are upgrading from version 2 to version 3 (Laravel Nova 4 support), make sure your composer.json
has the following version/reference to included the updated version:
Add YAML configuration
If you published the configuration from this package using the vendor:publish
command, you will need to add the following code your novadocumentation.php
configuration file's array:
Set environment variable
If you are planning on not refactoring your markdown files to NOT take advantage of the new YAML configuration options, you will need to either modify your configuration file accordingly, or simply set the following environment variable:
Remove dashed horizontal rules
If you have any ---
horizontal rules in your markdown files and your are using the yaml
parser, you will need to convert those to use ***
instead as this will cause the YAML processing to error.
Using this tool
- After all of this tool's assets have been published, there should be two
.md
(markdown) files placed within a documentation directory at the base of yourresources
directory.- If you would like to change this directory, change the
config('novadocumentation.home')
configuration definition. - By default, the "home page" entry point is
home.md
. Again if you would like to change that, be sure that you alter theconfig('novadocumentation.home')
configuration.
- If you would like to change this directory, change the
- If using the markdown setup, the sidebar navigation is constructed using two different elements: the name of the file and the title of within the file. This title is dynamically pulled from the first
# title
in each file.
Page YAML configuration/customization
If you are using the yaml
parsing method, you have the OPTIONAL ability to customize how each page is built and shown within the sidebar. You can modify the following attributes:
- title - The title of the page within the sidebar
- path - The path/route/link of the page. Provide a valid URL
- order - The order in which this page will appear in the sidebar
Adding configuration to your pages
If we wanted to customize a page of documentation we would need to add the following content to the top of the page:
The important thing to note is the ---
element wrapping the configuration. This will not work if this is not in place. The title should be pretty self-explanatory. The path allows you to customize the route to the page.
Linking
If you would like to link to other markdown files within your body content, outside of the sidebar, be sure to use relative links that DO NOT begin with a forward slash, like so /relative
. For example if you are linking from the home page to a sub-directory based file called authentication, you would link to it like so:
The tool will dynamically replace this link.
Relative links
If you would like to include a relative link to another location within your application or Nova itself, include a link that is prefixed with a forward slash (/
), like so:
Other types
Other types of links that are supported:
- Mailto (
mailto:
) links - External http and https links
Routes and adding new pages
When a new document is added to the application architecture, and if your application leverages route caching, be sure to clear/reset your route cache accordingly (php artisan route:clear
).
Authorization redirects
If desired, you can specify where an un-authenticated user is redirected if they attempt to access the module. To do so, modify the novadocumentation.login_route
setting and set it to a valid route within your application.
Configuration
The configuration items listed below can be found in the novadocumentation.php
configuration file.
License
The Nova Documentation tool is free software licensed under the MIT license.
Credits
All versions of nova-documentation with dependencies
cebe/markdown Version ^1.2
illuminate/support Version ^8.0|^9.0|^10.0|^11.0
spatie/yaml-front-matter Version ^2.0
laravel/nova Version ^4.0