Skip to content

Bundle: Provide README in HTML format per readme.html#35

Merged
amotl merged 2 commits intomainfrom
this-and-that-2
May 16, 2025
Merged

Bundle: Provide README in HTML format per readme.html#35
amotl merged 2 commits intomainfrom
this-and-that-2

Conversation

@amotl
Copy link
Member

@amotl amotl commented May 16, 2025

About

Convert the README into HTML format when producing bundles.
After publishing, there will be a readme.html in https://cdn.crate.io/about/v1/.

Preview

https://cdn.crate.io/about/staging/readme.html

@coderabbitai
Copy link

coderabbitai bot commented May 16, 2025

Warning

Rate limit exceeded

@amotl has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 7 minutes and 53 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 348ec43 and d6017ce.

📒 Files selected for processing (10)
  • CHANGES.md (1 hunks)
  • README.md (1 hunks)
  • docs/backlog.md (2 hunks)
  • pyproject.toml (1 hunks)
  • src/cratedb_about/bundle/llmstxt-about.md (0 hunks)
  • src/cratedb_about/bundle/llmstxt.py (2 hunks)
  • src/cratedb_about/bundle/readme.md (1 hunks)
  • src/cratedb_about/cli.py (1 hunks)
  • src/cratedb_about/util.py (2 hunks)
  • tests/test_cli.py (1 hunks)

Walkthrough

This update refactors the bundle generation process to add a README in both markdown and HTML formats, updates documentation and tests to reflect these outputs, and introduces utility functions for hostname and timestamp retrieval. The changelog, backlog, and CLI documentation are updated to clarify these changes, and a dependency on the markdown library is added.

Changes

File(s) Change Summary
CHANGES.md, README.md Updated changelog and usage documentation to reflect the addition of the HTML README and clarify bundle output descriptions.
docs/backlog.md Reorganized and clarified backlog tasks, added new linter and UI tasks, and updated bundle-related entries.
pyproject.toml Added markdown<4 as a new dependency.
src/cratedb_about/bundle/llmstxt-about.md Deleted documentation file describing the llms.txt standard and bundle contents.
src/cratedb_about/bundle/llmstxt.py Refactored LllmsTxtBuilder to add copy_readme and copy_sources methods, generate README in markdown and HTML, and return self from run.
src/cratedb_about/bundle/readme.md Added new README markdown file documenting the context knowledge bundle and its contents.
src/cratedb_about/cli.py Expanded bundle command docstring, simplified implementation, and clarified output files.
src/cratedb_about/util.py Added get_hostname() and get_now() utility functions for use in bundle generation.
tests/test_cli.py Enhanced test to assert the existence of readme.md and readme.html in bundle output.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant LllmsTxtBuilder
    participant Util
    participant Filesystem

    User->>CLI: Invoke bundle command
    CLI->>LllmsTxtBuilder: Instantiate and run
    LllmsTxtBuilder->>LllmsTxtBuilder: copy_readme()
    LllmsTxtBuilder->>Util: get_hostname()
    LllmsTxtBuilder->>Util: get_now()
    LllmsTxtBuilder->>Filesystem: Write readme.md and readme.html
    LllmsTxtBuilder->>LllmsTxtBuilder: copy_sources()
    LllmsTxtBuilder->>Filesystem: Copy outline.yaml
    LllmsTxtBuilder->>Filesystem: Generate llms.txt and llms-full.txt
    LllmsTxtBuilder-->>CLI: Return self
    CLI-->>User: Print "Ready."
Loading

Possibly related PRs

Suggested reviewers

  • bmunkholm
  • kneth

Poem

In the warren of code, a README now blooms,
Both markdown and HTML, dispelling old glooms.
With hostnames and timestamps, the bundle’s complete,
Now LLMs and humans can both take a seat.
🐇✨
“Ready,” it says, as the tests all agree—
A tidy new chapter for docs and for me!

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@amotl amotl requested review from bmunkholm and kneth May 16, 2025 09:04
@amotl amotl marked this pull request as ready for review May 16, 2025 09:04
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
docs/backlog.md (1)

6-6: Fix Markdown syntax for URLs.

The static analysis identified bare URLs which should be properly formatted using Markdown syntax.

-  https://github.com/crate/about/issues/20
+  [#20](https://github.com/crate/about/issues/20)
-  https://github.com/crate/about/issues/24
+  [#24](https://github.com/crate/about/issues/24)

Also applies to: 42-42

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Bare URL used
null

(MD034, no-bare-urls)

src/cratedb_about/bundle/llmstxt.py (1)

47-48: Consider adding error handling for markdown conversion.

While the implementation is sound, consider adding error handling in case the markdown conversion fails.

-readme_md_text = readme_md_text.format(host=get_hostname(), timestamp=get_now())
-(self.outdir / "readme.html").write_text(markdown(readme_md_text))
+try:
+    readme_md_text = readme_md_text.format(host=get_hostname(), timestamp=get_now())
+    html_content = markdown(readme_md_text)
+    (self.outdir / "readme.html").write_text(html_content)
+except Exception as e:
+    logger.warning(f"Failed to generate HTML readme: {e}")
+    # Still continue with the process even if HTML generation fails
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3792c74 and 419a85c.

📒 Files selected for processing (10)
  • CHANGES.md (1 hunks)
  • README.md (1 hunks)
  • docs/backlog.md (2 hunks)
  • pyproject.toml (1 hunks)
  • src/cratedb_about/bundle/llmstxt-about.md (0 hunks)
  • src/cratedb_about/bundle/llmstxt.py (2 hunks)
  • src/cratedb_about/bundle/readme.md (1 hunks)
  • src/cratedb_about/cli.py (1 hunks)
  • src/cratedb_about/util.py (2 hunks)
  • tests/test_cli.py (1 hunks)
💤 Files with no reviewable changes (1)
  • src/cratedb_about/bundle/llmstxt-about.md
🧰 Additional context used
🧠 Learnings (1)
src/cratedb_about/bundle/readme.md (3)
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:16:33.171Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:20:35.508Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:20:35.508Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
🧬 Code Graph Analysis (1)
src/cratedb_about/bundle/llmstxt.py (4)
src/cratedb_about/outline/core.py (2)
  • CrateDbKnowledgeOutline (9-76)
  • load (60-76)
src/cratedb_about/util.py (2)
  • get_hostname (87-89)
  • get_now (92-93)
src/cratedb_about/cli.py (1)
  • outline (54-74)
src/cratedb_about/outline/model.py (1)
  • to_llms_txt (82-105)
🪛 markdownlint-cli2 (0.17.2)
docs/backlog.md

6-6: Bare URL used
null

(MD034, no-bare-urls)


42-42: Bare URL used
null

(MD034, no-bare-urls)

🪛 LanguageTool
src/cratedb_about/bundle/readme.md

[uncategorized] ~13-~13: Loose punctuation mark.
Context: ...v1/> ## What's Inside - outline.yaml: The YAML source file for generating the...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~14-~14: Loose punctuation mark.
Context: ...rating the Markdown file. - outline.md: The Markdown source file for generating...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~15-~15: Loose punctuation mark.
Context: ...ing the llms.txt file(s). - llms.txt: Output file llms.txt (standard). - `l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~16-~16: Loose punctuation mark.
Context: ...llms.txt (standard). - llms-full.txt: Output file llms.txt (full), includin...

(UNLIKELY_OPENING_PUNCTUATION)

🔇 Additional comments (21)
pyproject.toml (1)

78-78: Good dependency addition for HTML conversion.

The addition of the markdown<4 dependency supports the new feature to generate README in HTML format. Using a version constraint ensures compatibility while allowing minor version updates.

CHANGES.md (1)

26-26: LGTM - Clear changelog entry.

The changelog entry accurately summarizes the new feature added in this PR.

README.md (1)

92-92: Improved clarity of Bundle subsystem description.

The change from plural to singular correctly reflects that the bundle command processes a single outline file to produce one context bundle, making the documentation more accurate.

tests/test_cli.py (1)

65-66: Good test coverage for new output files.

These assertions properly verify that both the markdown and HTML versions of the README are generated by the bundle command, ensuring the new functionality works as expected.

src/cratedb_about/util.py (2)

87-89: Well-implemented utility for hostname extraction.

The get_hostname() function correctly extracts the short hostname by splitting at the first dot. This is a clean approach that follows the convention mentioned in the Stack Overflow reference.


92-93: Well-structured datetime formatting.

The get_now() function creates a properly formatted ISO 8601 timestamp with timezone information and without microseconds, which is perfect for human-readable documentation.

src/cratedb_about/cli.py (2)

90-95: Improved bundle command documentation.

The expanded docstring clearly explains the purpose of the bundle command and references the llmstxt.org specification, which is helpful for users.


98-98: Simplified command implementation.

The code now directly uses the builder's run() method without storing an intermediate variable, making the implementation cleaner.

docs/backlog.md (3)

4-4: Updated task terminology from "llms-txt" to "Bundle".

The change from "llms-txt" to "Bundle" when referring to the files aligns with the broader scope of bundle outputs now including both markdown and HTML README files.


8-8: Simplified linter entry.

The linter entry has been consolidated into a single line, making the backlog more concise.


39-39: Added completed bundle HTML task and inventory review.

The backlog correctly reflects the PR's completion of the HTML README feature and additional inventory work.

Also applies to: 40-42

src/cratedb_about/bundle/readme.md (4)

1-17: Well-structured bundle README.

The README provides clear information about the bundle contents and purpose. The structure is logical, starting with an introduction followed by the contents and details.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~13-~13: Loose punctuation mark.
Context: ...v1/> ## What's Inside - outline.yaml: The YAML source file for generating the...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~14-~14: Loose punctuation mark.
Context: ...rating the Markdown file. - outline.md: The Markdown source file for generating...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~15-~15: Loose punctuation mark.
Context: ...ing the llms.txt file(s). - llms.txt: Output file llms.txt (standard). - `l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~16-~16: Loose punctuation mark.
Context: ...llms.txt (standard). - llms-full.txt: Output file llms.txt (full), includin...

(UNLIKELY_OPENING_PUNCTUATION)


20-29: Clear explanation of llms-txt standard.

The explanation of the llms-txt standard and its purpose is concise and informative, explaining how it complements existing web standards like sitemaps and robots.txt.


32-33: Dynamic metadata placeholders.

The placeholders for host and timestamp will be replaced with actual values during bundle generation, providing useful metadata about when and where the bundle was created.


36-36: Proper reference link.

The reference link to llmstxt.org is correctly formatted using Markdown reference syntax.

src/cratedb_about/bundle/llmstxt.py (6)

7-7: Added markdown library dependency.

The markdown library is imported to convert the README from markdown to HTML format.


10-10: Imported utility functions.

The utility functions for hostname and timestamp are correctly imported from the util module to support dynamic content in the README.


29-30: Refactored file copying to separate methods.

Extracting the file copying logic to separate methods improves code organization and readability.


37-38: Added method chaining support.

Returning self allows for method chaining, which can be useful for fluent interfaces.


40-49: Well-implemented README generation.

The copy_readme method effectively:

  1. Copies the template README to the output directory
  2. Reads and formats it with dynamic hostname and timestamp
  3. Converts the formatted markdown to HTML
  4. Writes the HTML to a separate file

This cleanly fulfills the PR objective of providing the README in HTML format.


50-54: Straightforward source file copying.

The copy_sources method cleanly copies the outline YAML file to the output directory, providing source transparency.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/backlog.md (1)

6-6: Format bare URLs as proper Markdown links.

The static analysis tool flagged these lines for containing bare URLs. Consider formatting them as proper Markdown links.

-  https://github.com/crate/about/issues/20
+  [Issue #20](https://github.com/crate/about/issues/20)
-  https://github.com/crate/about/issues/24
+  [Issue #24](https://github.com/crate/about/issues/24)

Also applies to: 42-42

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Bare URL used
null

(MD034, no-bare-urls)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 419a85c and 348ec43.

📒 Files selected for processing (10)
  • CHANGES.md (1 hunks)
  • README.md (1 hunks)
  • docs/backlog.md (2 hunks)
  • pyproject.toml (1 hunks)
  • src/cratedb_about/bundle/llmstxt-about.md (0 hunks)
  • src/cratedb_about/bundle/llmstxt.py (2 hunks)
  • src/cratedb_about/bundle/readme.md (1 hunks)
  • src/cratedb_about/cli.py (1 hunks)
  • src/cratedb_about/util.py (2 hunks)
  • tests/test_cli.py (1 hunks)
💤 Files with no reviewable changes (1)
  • src/cratedb_about/bundle/llmstxt-about.md
🚧 Files skipped from review as they are similar to previous changes (6)
  • pyproject.toml
  • src/cratedb_about/cli.py
  • CHANGES.md
  • README.md
  • tests/test_cli.py
  • src/cratedb_about/util.py
🧰 Additional context used
🧠 Learnings (1)
src/cratedb_about/bundle/readme.md (3)
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:16:33.171Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:20:35.508Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
Learnt from: amotl
PR: crate/about#0
File: :0-0
Timestamp: 2025-04-16T14:20:35.508Z
Learning: When creating content for an `llms.txt` file (following the llmstxt.org specification), consistent and straightforward language takes precedence over stylistic variation since the primary audience is language models rather than human readers.
🧬 Code Graph Analysis (1)
src/cratedb_about/bundle/llmstxt.py (3)
src/cratedb_about/outline/core.py (2)
  • CrateDbKnowledgeOutline (9-76)
  • load (60-76)
src/cratedb_about/util.py (2)
  • get_hostname (87-89)
  • get_now (92-93)
src/cratedb_about/outline/model.py (1)
  • to_llms_txt (82-105)
🪛 markdownlint-cli2 (0.17.2)
docs/backlog.md

6-6: Bare URL used
null

(MD034, no-bare-urls)


42-42: Bare URL used
null

(MD034, no-bare-urls)

🪛 GitHub Check: codecov/patch
src/cratedb_about/bundle/llmstxt.py

[warning] 50-51: src/cratedb_about/bundle/llmstxt.py#L50-L51
Added lines #L50 - L51 were not covered by tests

🪛 LanguageTool
src/cratedb_about/bundle/readme.md

[uncategorized] ~13-~13: Loose punctuation mark.
Context: ...v1/> ## What's Inside - outline.yaml: The YAML source file for generating the...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~14-~14: Loose punctuation mark.
Context: ...rating the Markdown file. - outline.md: The Markdown source file for generating...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~15-~15: Loose punctuation mark.
Context: ...ing the llms.txt file(s). - llms.txt: Output file llms.txt (standard). - `l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~16-~16: Loose punctuation mark.
Context: ...llms.txt (standard). - llms-full.txt: Output file llms.txt (full), includin...

(UNLIKELY_OPENING_PUNCTUATION)

🔇 Additional comments (18)
src/cratedb_about/bundle/llmstxt.py (7)

7-8: Appropriate import for HTML generation.

The markdown library is properly imported to support the new HTML readme generation function.


10-10: Good use of utility functions.

Using dedicated utility functions from cratedb_about.util for hostname and timestamp retrieval enhances modularity and reusability.


29-30: Improved modularity with dedicated methods.

Refactoring the direct shutil.copy calls into specific methods (copy_readme and copy_sources) improves code organization and maintainability.


38-38: Enabling method chaining.

Returning self at the end of the run method enables method chaining, which is a good pattern for builder classes.


46-49: Well-implemented dynamic content generation.

The implementation correctly reads the markdown content, formats it with dynamic values (hostname and timestamp), and converts it to HTML.


50-51: Appropriate error handling.

The exception handling ensures that failures in HTML generation don't halt the entire bundle creation process, just logging a warning instead.

🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 50-51: src/cratedb_about/bundle/llmstxt.py#L50-L51
Added lines #L50 - L51 were not covered by tests


53-57: Clear source file copying.

The copy_sources method clearly handles copying the outline YAML file to the output directory.

docs/backlog.md (6)

4-4: Good rename to reflect broader scope.

Changing "llms-txt" to "Bundle" better reflects that this task involves comparison of multiple file types, not just one format.


8-8: Comprehensive linter task added.

This new task covers important linting categories including YAML, Markdown, Linkchecker, and Element sizes.


11-11: UI improvement task.

Adding a chat interface using Streamlit is a valuable enhancement for user interaction.


17-17: Important task for HTML content isolation.

This task aligns perfectly with the newly implemented HTML generation to ensure HTML doesn't leak into other bundle files.


20-21: Exploring enhanced content representations.

Good planning for future iterations to refine content representation by integrating with other documentation sources.


38-42: Updated completed tasks.

The "Done" section is appropriately updated to include the HTML readme task that this PR implements, along with other completed tasks.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

42-42: Bare URL used
null

(MD034, no-bare-urls)

src/cratedb_about/bundle/readme.md (5)

1-10: Well-structured introductory section.

The introduction clearly describes the purpose of the bundle, with appropriate source and target URLs properly formatted as markdown links.


11-17: Clear listing of bundle contents.

This section effectively communicates what files are included in the bundle with concise descriptions of each component.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~13-~13: Loose punctuation mark.
Context: ...v1/> ## What's Inside - outline.yaml: The YAML source file for generating the...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~14-~14: Loose punctuation mark.
Context: ...rating the Markdown file. - outline.md: The Markdown source file for generating...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~15-~15: Loose punctuation mark.
Context: ...ing the llms.txt file(s). - llms.txt: Output file llms.txt (standard). - `l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~16-~16: Loose punctuation mark.
Context: ...llms.txt (standard). - llms-full.txt: Output file llms.txt (full), includin...

(UNLIKELY_OPENING_PUNCTUATION)


18-29: Informative explanation of llms-txt.

The explanation of the llms-txt standard follows the principle of using consistent and straightforward language for LLM consumption, as noted in the retrieved learnings.


32-34: Dynamic timestamp and hostname implementation.

The footer with dynamic timestamp and hostname provides useful metadata about when the bundle was generated. These placeholders ({host} and {timestamp}) align with the formatting code in llmstxt.py.


36-36: Proper reference link format.

Using the markdown reference link format for llms-txt is a clean approach that separates the link URL from the text content.

@amotl amotl force-pushed the this-and-that-2 branch from 348ec43 to d6017ce Compare May 16, 2025 09:25
@amotl amotl merged commit 63bf541 into main May 16, 2025
6 checks passed
@amotl amotl deleted the this-and-that-2 branch May 16, 2025 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant