summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Set last-modified time of generated files same as source fileBen Bridle2025-02-01
| | | | | | | | | | | | | When generating a file from a source file, the last-modified time of the generated file will be set to be the same as the last-modified time of the source file. This is so that when copying the generated website to a server with rsync, only modified files will be copied over, saving considerable time. This commit also updates vagabond to the latest version which includes a change where files are only copied if they have been modified or if they haven't yet been copied. This saves considerable time when generating the website, if the website contains large static files.
* Avoid subtracting with underflowBen Bridle2025-01-22
| | | | | | For pages at the root of the website, the length of the parents vec is zero. To avoid an underflow when subtracting from the length, we can just call `.last()` instead of `.get(len-1)`.
* Improve error message when source directory cannot be foundBen Bridle2025-01-22
|
* Remove 'appendix' from the links of appendix headingsBen Bridle2025-01-22
| | | | | | If a heading is prefixed with 'Appendix #:', the link to that heading will not include that prefix. This is to make it possible to rearrange appendices in a document without breaking existing links.
* Only transform quotes and dashes inside presentational textBen Bridle2025-01-21
| | | | | Keep quotes and dashes unmodified in monospace line elements, math blocks, math elements, and fragment blocks.
* Expand list of recognised checkbox formatsBen Bridle2025-01-19
| | | | | Checkboxes on list lines no longer have to be inside a monospace line element.
* Check that embedded file paths are validBen Bridle2025-01-19
|
* Update supported markdown syntaxBen Bridle2025-01-19
| | | | | Added math blocks, and changed link syntax, embedded file syntax, and bold line element syntax.
* Log when the configuration file is parsedBen Bridle2025-01-19
|
* Fix mailto: linksBen Bridle2025-01-18
| | | | | These were previously being detected only if they begin with ://, which is incorrect and generates incorrect links.
* Check that links to static files are validBen Bridle2025-01-18
| | | | | | | | | | When a link doesn't contain a protocol, it's assumed to be a link to a relative or absolute path to an internal static file. This link is checked against the list of collected static files to ensure that it exists. For an unlabelled link to an internal static file, the label will be the file name without preceding path segments.
* Allow redirects to point to external websitesBen Bridle2025-01-18
| | | | | | If the path in a .redirect file contains any scheme (detected as ://), the path is used as-is instead of trying to resolve to the name of an internal page.
* Fix panic when internal link has no path segmentsBen Bridle2025-01-18
| | | | | This was being triggered when an internal link was given as [[/]], which is admittedly an invalid link anyway.
* Fix internal links to headings on another pageBen Bridle2025-01-18
| | | | | | The heading section of the link wasn't being suffixed to the generated link target, so links to a heading on another page were just regular links to the top of that page.
* Fix invalid HTML in img and audio elementsBen Bridle2025-01-15
|
* Count only level 1 and 2 headings when checking if page needs contentsBen Bridle2025-01-15
|
* Implement image galleriesBen Bridle2025-01-15
| | | | | | Each gallery image must be kept in the three directories images/large, images/small, and images/thumb. A gallery is a fragment with the language 'gallery' containing a list of image filenames, one per line.
* Allow the use of site-local absolute URLs in external linksBen Bridle2025-01-15
| | | | | | | | | | External links with no protocol that start with a forward-slash are interpreted as being links to a file in the generated site. To make these work with the relative-paths paradigm of the generator, the slash is replaced with the page path-to-root to convert it to a relative path. This commit also fixes an issue where unlabelled links with no protocol were being given an empty label.
* Add line breaks to math blocksBen Bridle2025-01-15
| | | | | | Math blocks are used when you have multiple lines of equations. Instead of requiring the user to insert a `\\` line break after every line, line breaks are now added automatically.
* Fix broken parent linksBen Bridle2025-01-15
| | | | | Generation of parent links for pages with two or more parents before the root index was not working correctly.
* Implement redirectsBen Bridle2025-01-15
| | | | | Source files with extension .redirect will be converted into redirect pages linking to the internal-style URL in each file.
* Sanitize site and page nameBen Bridle2025-01-14
|
* Get the global HTML head from the config fileBen Bridle2025-01-14
| | | | | The value of the configuration key `html.head` is inserted into the <head> section of every generated HTML page.
* Implement a config file formatBen Bridle2025-01-14
| | | | | | If the file `toaster.conf` is found in the root of the source directory, the contents are parsed as key-value pairs. A line with no indentation is a key, and all following indented lines are the value.
* Sanitize the label of an embedded fileBen Bridle2025-01-14
| | | | | There was an issue where an apostrophe character in the label string would prematurely terminate the string.
* Parse checkbox listsBen Bridle2025-01-14
| | | | | If a list item line begins with `[ ]` or `[x]`, the token is interpreted as a checkbox and replaced with a real HTML checkbox.
* Change HTML header formatBen Bridle2025-01-14
| | | | | The header of the main index page is no longer cleared, it can be hidden with CSS by the user instead.
* Implement recipe parsingBen Bridle2025-01-14
|
* Detect duplicate headings within a pageBen Bridle2025-01-14
| | | | | | This is an issue because the duplicate headings will have identical ids, and all links to the lower heading will instead link to the upper heading.
* Rewrite link handling and add navigation features to generated HTMLBen Bridle2025-01-09
|
* Wrap table sections with <tbody>Ben Bridle2025-01-08
| | | | | Each section of a table is now wrapped with <tbody>, instead of just the entire table.
* More robust file traversal logicBen Bridle2025-01-08
| | | | | | | | | | | | | | File traversal can now cope with symbolic links. The original path to each file is preserved where before they were unintentionally canonicalized, so the source folder prefix can now be correctly stripped from the path of each source file. This commit also adds the !folder syntax from the original toaster. Directories with a !-prefix are copied without modification to the site root. A --delete option has been added to the program. When this option is set, the destination directory is first deleted if it already exists.
* Load default CSS and JavaScript files from site rootBen Bridle2025-01-07
| | | | | | | | | | | | | Instead of linking to a static path for the CSS and JavaScript files in the head of each generated HTML document, dynamically generate a relative path that backtracks to the site root before descending into the chosen directory. This ensures that all pages will link to the same set of CSS/JS files, no matter how deeply nested. This could have been accomplished through the use of absolute paths, but I want the websites generated by this program to be able to be freely mixed and matched with existing websites, which requires the use of relative paths only.
* A collection of fixesBen Bridle2025-01-07
| | | | | | Fixed a lot of issues around internal relative links and link validity checks. Added a math fragment syntax and the $$..$$ math form. Added heading link validity checks.
* Initial versionv1.0.0Ben Bridle2025-01-06