Fix FSharpFileParser to support Windows end of line
Update to React 18
Revert Fix #156: Don't generate a .gitignore in the destination folder because some tools like
peaceiris/actions-gh-pages use git to publish to GH Pages and this cause the tool to push no files..
Fix #156: Create a gitignore file in the destination folder
Remove unused middleware
On redirection based on the BaseUrl add a query params to the URL allowing us to detect already redirected URLs
This is important to support url of the form /Fable.Form/Fable.Form/introduction.html where Fable.Form is the BaseUrl.
Prior to this fix, the url was being redirected twice and ended up to /introduction.html instead of /Fable.Form/introduction.html.
Fix #154: Clear the console when the live reload websocket is trying to reconnect
Better detect front-matter section in F# literate file to avoid capturing direct next block comment.
Fix #143: Make the F# literate front-matter less strict
Improve Windows support for afterClean spawn process
Change the run hook name to afterClean. This was a relica coming from the development.
Add support for "Literate F#" files
Fix #139: Don't crash on invalid menu.json file
Fix #133: In watch mode, don't crash on invalid JS/JSX file
Run build if no command is specified
Add a new option --afterClean allowing the user to launch a command after Nacara clean the output folder.
Example usage:
If you are not using SCSS to generate your style but TailwindCSS you can hook it up here in the Nacara process.
Fix #134: Trigger live-reload mechanism by watching the output folder.
Example usage:
This allows the user to generates their CSS files externally from Nacara
Detect the Node.JS version and use fs.rm or fs.rmdir depending on the version.
This avoid warning about fs.rmdir being deprecated in the future.
Fix missing fable_modules folder from dist
Provide the relativePath to unified.
This is required for remark-code-import plugins to work.
Release v1.0.0
Check if a directory exist before executing Directory.rmdir. Since Node.js v16 it generate an error if the directory doesn't exist
Fix detection of nacara.config.json it was a relicat from a test
Support both nacara.config.json and nacara.config.js as the config file.
The main goal is to have access to comments makking it easier for people to use the template.
Force to display nacara as the script name when displaying help
Fix dynamic load of module from absolute and relative path for Windows
Add support for the partial inside the dropdowns
Fix #120: Add support for watching layout files changes
Fix live reload for the index page it was never reloading
Fix #105: Re-add support for JS/JSX for both partials and layouts
Add a default command so if Nacara is run without a command, it build the website
Move the NPM package to be a pure ESM package
Fix #80: Fix pages cache update, depending on the pages order, it could erase the "found" boolean
Add clean command
Fix #8: Add favIcon property to nacara.config.json
Fix #70: Generate a .nojekyll file on production build
Fix #96: Add partials support
Fix #77: Add footer support
Fix #2: Restart Nacara when changes to nacara.config.json are detected
Clean the output folder before build and watch
Fix #22: Make navigation buttons display on top of each other when on mobile display
Fix #67: Nacara crash if a folder under the source folder is empty
Fix #69: Change the default source folder from docsrc to docs
Fix #71: Change the default output folder from docs to docs_deploy
Change --watch argument to watch command
Load @babel/register if a babel.config.json is found.
It is up to you to install @babel/register and the required presets.
Start WebServer after setting up the websocket
Answer on websocket connection, because it was causing the websocket to be really slow to connect
Reword category to section to have it consistent everywhere.
You need to replace category with section in both menu.json and nacara.config.json
Wait only 200ms instead of 2s before considering a file stable. This makes Nacara detect changes faster and improve responsivenes
Remove --verbose option
Include the scripts folder into the published package
Add $menu-list-spacing SCSS variable
Make chokidar wait for stable file before notifying a change
Fix #53: Remove live-server dependency instead use express and a custom implementation
Fix #62: Rework menu alignment and margin to have a better display
Relax Nacara requirements on npm engine from 7.13.0 to 7.0.0
Publish .fable folder
Publish .fable folder
Publish .fable folder
Add excludeFromNavigation property to all the layout allowing to opt-out a page from the Next / Previous button generation
Recompute the known pages if the attributes of a page change.
This ensure that the information using the attributes like the menu or the next / previous buttons are up to date on all the page
Add copy button to code blocks
Add $textual-steps-color color SCSS variable
Create a NuGet package Nacara.Core which shares the type and some helpers between Nacara and the layouts project
Add section support, a section is defined by being a folder under the root folder
For example, this structure defined 2 sections.
docsrc
├── changelogs
│ ├── file.md
├── docs
│ ├── file.md
├── index.mdAdd support for menu.json which allows to configure the menu per section
Change config file back to nacara.config.json
Generate Next / Previous button on site compilation instead of using JavaScript at runtime
Move the TOC inside the menu and remove the need for [[toc]] tag
Upgrade to Bulma 0.9.3
Make the layout as a standalone npm package nacara-layout-standard
Move the Changelog.fs from Nacara to the Layout project and rename it ChangelogParser.fs
Upgrade to Fable 3
Change Model.DocFiles to use JS.Map instead of Map because it seems like Fable 3 does something different and break the Map usage from the layout project
Remove the material like button
Unknown files are now copied to the output folder making it easier to add static assets like images
Generate compressed CSS from SCSS/SASS files when in build mode
Rewrite the base-url-middleware to redirect on exact match and use temporary redirection to avoid caching from the browser
Rewrite the base-url-middleware to redirect on exact match and use temporary redirection to avoid caching from the browser
Changed version in paket.dependencies to 5.258.1 so that it matches the version in .config/dotnet-tools.json. This fixes the issue which required having .NET DSK version '2.1.0.
Use paket from CLI tool
Removed files fake.cmd and fake.sh because they are no longer needed.
Removed unused code from build.fsx.
Remove fake and use a Makefile instead.
Remove plugins property from the config file. Now the layouts can extends their own version of markdown-it to meet their needs
Remove the menu property from the config file
Right now Windows user needs to install make or use Gitpod. In the future, a make.bat will be available but I don't have time to add it right now.
Changelog parser and layout now correctly understand items indeed under a list item
Before, this text would have been displayed as quoted or you would have had to un-indent to force Nacara to display it "correctly" in the browser.
Make the text in the textual steps use a normal font-weight. It was making it hard to read the text when on a white background
Change the font-size to 16px to improve readibility and accessibility
When Nacara encounter an unknown file in build mode skip it and trigger the next process.
It was stopping the whole generation causing problem is the user hosted some PNG files in the source folder for example.
Change the config file name from nacara.js is now nacara.config.js
It seems like the new version of npm exec and npx execute/open nacara.js when executing npx nacara. Probably because the file as the same name as the package 🤷♂️
Make the pre element horizontal scrollable. This avoid to have the whole page having an horizontal scroll when a code snippet is a bit large
Fix #21: Make sure that the user can't click on the material like button when they are hidden
User can now click on the navbar brand to go "index" page.
The "index" page is calculated as follow config.url + config.baseUrl
If no menu found on the page, hide the Next & Previous button
Secure access to .mobile-menu .menu-trigger to avoid error in the console if no menu found
Fix menu scroll on touch display
Layout system has been added
User can add layouts node to nacara.js, it takes an object.
Example:
{
default: standard.Default,
changelog: standard.Changelog
}Responsive mode is now implemented supported in the standard layout


Markdown plugins are now configurable via plugins.markdown in nacara.js
It take an array of object, the properties are:
{
// Path to pass to `require` function can be:
// - a npm module
// - a file path (local plugin)
path: 'markdown-it-container',
// Optional array of arguments
args: [
'warning',
mdMessage("warning")
]
}Example:
plugins: {
markdown: [
{
path: 'markdown-it-container',
args: [
'warning',
mdMessage("warning")
]
},
{
path: path.join(__dirname, './src/markdown-it-anchored.js')
}
]
}Build mode has been added to Nacara it active by default. You can start in watch mode by adding --watch or -w to the CLI
Port server can be configured via serverPort in nacara.js
Current section is now shown in the Table of Content
Previous and Next navigation button are added at the bottom of the page
Add a button to scroll to the top, this button is only displayed the page is scrolled
Add material like menu when displayed on touchscreen (mobile & tablet)
Make the anchors elements less visible
Add possibility to have an Edit button at the top of the page
Turn it on, by setting editUrl in nacara.js. The url should be the start of the url, the file path will be added when generating the page.
Example: https://github.com/MangelMaxime/Nacara/edit/master/docsrc
Change config file format, nacara.json is now nacara.js
Improve the navbar responsive support
Transform the left menu into a breadcumb when on touchscreen
Items with only icons will stay at the top of the navbar, while items with text (and icon) are displayed under the burger menu.
If a grammar is not found it's possible that some of the snippet in a valid grammar failed
Fix generated URL for Windows
Make page id independant from the OS
Remove is-primary class from the navbar.
Please use the variable $navbar-background-color in order to customize it
Fix nacara.scss, user needs to provide Bulma in is own style.scss file
Add cli.js so nacara can be used as a CLI tool
Make nacara a "CLI" package
Initial release