[Repo Assist] Add dotnet fsdocs convert command for single-file conversion#1019
[Repo Assist] Add dotnet fsdocs convert command for single-file conversion#1019github-actions[bot] wants to merge 13 commits intomainfrom
dotnet fsdocs convert command for single-file conversion#1019Conversation
Implement a new 'convert' verb for the fsdocs CLI tool that converts a single .md, .fsx, or .ipynb file to HTML (or other formats) without building a full documentation site. - Add Literate.ConvertPynbFile public API (parallel to ConvertMarkdownFile and ConvertScriptFile) - Add ConvertCommand CLI verb with --input, --output, --template, --outputformat, --eval, --linenumbers, --parameters options - Register ConvertCommand in Program.fs entry point - Update RELEASE_NOTES.md Usage: dotnet fsdocs convert --input notebook.ipynb dotnet fsdocs convert --input file.fsx --output file.html dotnet fsdocs convert --input doc.md --outputformat markdown Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| abstract port_option: int | ||
| default x.port_option = 0 | ||
|
|
||
| [<Verb("convert", |
There was a problem hiding this comment.
/repo-assist it might be time to split these commands up to multiple files.
There was a problem hiding this comment.
Yup these "/repo-assist" in PR comments still not working
|
/repo-assist Add comprehensive unit tests for all new code and integration tests for all new features |
- Unit tests for Literate.ConvertPynbFile: HTML without/with template, Markdown output, FSX output - Integration tests for ConvertCommand.Execute: .md, .fsx, .ipynb conversion, markdown output format, error codes for missing file and unsupported extension Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Commit pushed:
|
This comment has been minimized.
This comment has been minimized.
|
/repo-assist I tried this out and it worked OK. However note how pandoc has this: where fsdocs convert has the longer I'd like to see more like where
Also I'd like to see the "Integration tests for ConvertCommand" moved to a set of tests for |
- Make input file positional (Value(0)) instead of --input flag - Add -o shorthand for --output - Infer output format from output file extension when --outputformat not specified - Move ConvertCommand integration tests to new fsdocs-tool.Tests project - Add new test for format inference from extension - Add fsdocs-tool.Tests to solution Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
|
Hi @nhirschey, would you mind giving this a spin? |
|
/repo-assist Not sure what's wrong with CI, I can build locally. Please investigate closely and fix |
…d releases A blank line within a subsection (e.g. ### Added) causes Ionide.KeepAChangelog 0.1.8 to stop parsing the file, resulting in an empty Releases list. The previous List.head call gave a cryptic 'The input list was empty' error. This replaces it with a pattern match and an actionable error message. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment was marked as resolved.
This comment was marked as resolved.
|
🤖 This is an automated response from Repo Assist. I've investigated the CI failure closely. Here's what happened and what I've fixed: Root CauseThe CI failure ( The blank line was introduced by the merge commit This prevents the cryptic
|
🤖 This PR was created by Repo Assist, an automated AI assistant.
Closes #811
Summary
This adds a new
convertverb to thefsdocsCLI tool, enabling conversion of a single.md,.fsx, or.ipynbfile to HTML (or another output format) without needing to build a full documentation site.Usage examples:
Changes
src/FSharp.Formatting.Literate/Literate.fs: AddedLiterate.ConvertPynbFilepublic API method (parallel to the existingConvertMarkdownFileandConvertScriptFile)src/fsdocs-tool/BuildCommand.fs: AddedConvertCommandclass with[(Verb("convert"))]src/fsdocs-tool/Program.fs: RegisteredConvertCommandin the entry pointRELEASE_NOTES.md: Added changelog entryOptions
--input.md,.fsx,.ipynb)--output(basename).(ext)--template--outputformathtmlhtml,ipynb,latex,fsx,markdown--eval--linenumbers--parametersWhen no template is provided, raw HTML content is written (just the body, no surrounding page chrome) — the same behaviour as calling
Literate.ConvertMarkdownFilewith no template.Root Cause
The
Literatelibrary already exposedConvertMarkdownFileandConvertScriptFilefor programmatic use, and theDocContentclass inside the build command already performs per-file conversion. This PR wires those existing capabilities up to a new CLI verb and adds the missingConvertPynbFilemethod.Test Status
System.Drawing.Commonvulnerability)