From abbed70f54e3e64331872faa26ade6e2f0a91567 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 21 Mar 2025 17:19:53 +0100 Subject: [PATCH 01/12] Add basic script for regenerating src/index.md --- Project.toml | 1 + update.jl | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 update.jl diff --git a/Project.toml b/Project.toml index e1c61d1..75404d2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,5 +1,6 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" [compat] diff --git a/update.jl b/update.jl new file mode 100644 index 0000000..3725c7f --- /dev/null +++ b/update.jl @@ -0,0 +1,87 @@ +using JSON + +data = read(`gh repo list JuliaDocs --json "isArchived,description,homepageUrl,name,url,defaultBranchRef"`, String) + +repos = JSON.parse(data) + +# drop archive repositories +repos = filter!(x -> !x["isArchived"], repos) + +repos = filter!(x -> x["name"] != "juliadocs.github.io", repos) + +sort!(repos, by = x -> x["name"]) + +print(""" +# JuliaDocs + +This is the landing page of the [JuliaDocs GitHub organisation](https://github.com/JuliaDocs/). +JuliaDocs is an umbrella organization for documentation-related packages and repositories +of [Julia programming language](https://julialang.org/) ecosystem. + +!!! note + If you are looking for the documentation for the core Julia language, you should head over + to + +JuliaDocs is the home for the following packages and repositories: +""") + +for r in repos + name = r["name"] + url = r["url"] + desc = r["description"] + println("* [$name -- $desc]($url)") +end + +# TODO: should we linke to the homepage URL, if any, and provide the +# repository link separately, like it was done for the cheat sheet: +# +# * [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) + +print(""" + +## Packages + +```@eval +import Main: PackageDefinition, package_table_markdown +[ +""") +for r in repos + name = r["name"] + name_no_suffix = endswith(name, ".jl") ? name[1:end-3] : name + url = r["url"] + homepageUrl = r["homepageUrl"] + desc = r["description"] + branch = r["defaultBranchRef"]["name"] + + print(""" + PackageDefinition( + "$name_no_suffix", "$url", + [ + """) + if isempty(homepageUrl) + print(""" + "README" => "https://github.com/JuliaDocs/$name", + """) + else + # HACK / workaround for Highlights.jl + if endswith(homepageUrl, "/stable") + homepageUrl = replace(homepageUrl, "/stable" => "") + end + print(""" + "stable" => "$(joinpath(homepageUrl,"stable/"))", + "dev" => "$(joinpath(homepageUrl,"dev/"))", + """) + end + print(""" + ], + [ + "https://codecov.io/gh/JuliaDocs/$name/branch/$branch/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/$name", + ] + ), + """) +end + +print(""" +] |> package_table_markdown +``` +""") \ No newline at end of file From 1d5faa3e6f6cd851faeef9cd9b88b6b0edf078a3 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 21 Mar 2025 18:18:10 +0100 Subject: [PATCH 02/12] Update src/index.md By running `julia --proj=. update.jl > src/index.md` --- src/index.md | 194 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 174 insertions(+), 20 deletions(-) diff --git a/src/index.md b/src/index.md index faf834f..6dbf1f5 100644 --- a/src/index.md +++ b/src/index.md @@ -9,20 +9,107 @@ of [Julia programming language](https://julialang.org/) ecosystem. to JuliaDocs is the home for the following packages and repositories: - -* [Documenter -- Package to combine docstrings with Markdown pages for generating documentation](https://github.com/JuliaDocs/Documenter.jl) -* [DocumenterCitations -- Support for BibTeX citations in Documenter](https://github.com/JuliaDocs/DocumenterCitations.jl) -* [DocumenterMarkdown -- Documenter's Markdown / MkDocs backend](https://github.com/JuliaDocs/DocumenterMarkdown.jl) -* [DocumenterTools -- Extra tools for setting up Documenter](https://github.com/JuliaDocs/DocumenterTools.jl) -* [DocStringExtensions -- Programmatic ways to generate parts of docstrings](https://github.com/JuliaDocs/DocStringExtensions.jl) -* [Highlights -- A code highlighter for the Julia language, written in Julia](https://github.com/JuliaDocs/Highlights.jl) -* [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) +* [ANSIColoredPrinters.jl -- ANSI escape code translator](https://github.com/JuliaDocs/ANSIColoredPrinters.jl) +* [Changelog.jl -- A Julia package for managing changelogs](https://github.com/JuliaDocs/Changelog.jl) +* [CodeEvaluation.jl -- A small utility package to emulate executing Julia code in a clean `Main` module.](https://github.com/JuliaDocs/CodeEvaluation.jl) +* [DemoCards.jl -- Let's focus on writing demos](https://github.com/JuliaDocs/DemoCards.jl) +* [DocInventories.jl -- Read and write documentation inventory files such as the objects.inv file generated by Documenter and Sphinx](https://github.com/JuliaDocs/DocInventories.jl) +* [DocStringExtensions.jl -- Extensions for Julia's docsystem.](https://github.com/JuliaDocs/DocStringExtensions.jl) +* [DocumentationGenerator.jl -- ](https://github.com/JuliaDocs/DocumentationGenerator.jl) +* [DocumentationGeneratorRegistry -- ](https://github.com/JuliaDocs/DocumentationGeneratorRegistry) +* [Documenter.jl -- A documentation generator for Julia.](https://github.com/JuliaDocs/Documenter.jl) +* [DocumenterCitations.jl -- DocumenterCitations.jl uses Bibliography.jl to add support for BibTeX citations and references in documentation pages generated by Documenter.jl.](https://github.com/JuliaDocs/DocumenterCitations.jl) +* [DocumenterInterLinks.jl -- A plugin for Documenter.jl that enables linking between projects](https://github.com/JuliaDocs/DocumenterInterLinks.jl) +* [DocumenterInventoryWritingBackport.jl -- Backport of inventory writing for Documenter 0.25-1.2](https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl) +* [DocumenterMarkdown.jl -- Documenter's Markdown / MkDocs backend](https://github.com/JuliaDocs/DocumenterMarkdown.jl) +* [DocumenterMermaid.jl -- Mermaid.js diagram intergration for Documenter.jl](https://github.com/JuliaDocs/DocumenterMermaid.jl) +* [DocumenterTools.jl -- Extra tools for setting up Documenter](https://github.com/JuliaDocs/DocumenterTools.jl) +* [Highlights.jl -- A source code highlighter for Julia.](https://github.com/JuliaDocs/Highlights.jl) +* [IOCapture.jl -- Capturing standard output and error streams in Julia.](https://github.com/JuliaDocs/IOCapture.jl) +* [Julia-Cheat-Sheet -- Julia Cheat Sheet](https://github.com/JuliaDocs/Julia-Cheat-Sheet) +* [LiveServer.jl -- Simple development server with live-reload capability for Julia.](https://github.com/JuliaDocs/LiveServer.jl) +* [MarkdownAST.jl -- Abstract syntax tree representation of Markdown documents in Julia](https://github.com/JuliaDocs/MarkdownAST.jl) +* [ModuleDocstrings.jl -- ](https://github.com/JuliaDocs/ModuleDocstrings.jl) ## Packages ```@eval import Main: PackageDefinition, package_table_markdown [ +PackageDefinition( + "ANSIColoredPrinters", "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", + [ + "README" => "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl", + ] +), +PackageDefinition( + "Changelog", "https://github.com/JuliaDocs/Changelog.jl", + [ + "README" => "https://github.com/JuliaDocs/Changelog.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/Changelog.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Changelog.jl", + ] +), +PackageDefinition( + "CodeEvaluation", "https://github.com/JuliaDocs/CodeEvaluation.jl", + [ + "README" => "https://github.com/JuliaDocs/CodeEvaluation.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/CodeEvaluation.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/CodeEvaluation.jl", + ] +), +PackageDefinition( + "DemoCards", "https://github.com/JuliaDocs/DemoCards.jl", + [ + "README" => "https://github.com/JuliaDocs/DemoCards.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/DemoCards.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DemoCards.jl", + ] +), +PackageDefinition( + "DocInventories", "https://github.com/JuliaDocs/DocInventories.jl", + [ + "stable" => "https://juliadocs.org/DocInventories.jl/stable/", + "dev" => "https://juliadocs.org/DocInventories.jl/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocInventories.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocInventories.jl", + ] +), +PackageDefinition( + "DocStringExtensions", "https://github.com/JuliaDocs/DocStringExtensions.jl", + [ + "stable" => "https://DocStringExtensions.juliadocs.org/latest/stable/", + "dev" => "https://DocStringExtensions.juliadocs.org/latest/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl", + ] +), +PackageDefinition( + "DocumentationGenerator", "https://github.com/JuliaDocs/DocumentationGenerator.jl", + [ + "README" => "https://github.com/JuliaDocs/DocumentationGenerator.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl", + ] +), +PackageDefinition( + "DocumentationGeneratorRegistry", "https://github.com/JuliaDocs/DocumentationGeneratorRegistry", + [ + "README" => "https://github.com/JuliaDocs/DocumentationGeneratorRegistry", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocumentationGeneratorRegistry/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumentationGeneratorRegistry", + ] +), PackageDefinition( "Documenter", "https://github.com/JuliaDocs/Documenter.jl", [ @@ -36,50 +123,117 @@ PackageDefinition( PackageDefinition( "DocumenterCitations", "https://github.com/JuliaDocs/DocumenterCitations.jl", [ - "stable" => "https://juliadocs.org/DocumenterCitations.jl/stable/", - "dev" => "https://juliadocs.org/DocumenterCitations.jl/dev/", + "stable" => "https://juliadocs.github.io/DocumenterCitations.jl/stable/", + "dev" => "https://juliadocs.github.io/DocumenterCitations.jl/dev/", ], [ "https://codecov.io/gh/JuliaDocs/DocumenterCitations.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterCitations.jl", ] ), +PackageDefinition( + "DocumenterInterLinks", "https://github.com/JuliaDocs/DocumenterInterLinks.jl", + [ + "stable" => "http://juliadocs.org/DocumenterInterLinks.jl/stable/", + "dev" => "http://juliadocs.org/DocumenterInterLinks.jl/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocumenterInterLinks.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterInterLinks.jl", + ] +), +PackageDefinition( + "DocumenterInventoryWritingBackport", "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", + [ + "README" => "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/DocumenterInventoryWritingBackport.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterInventoryWritingBackport.jl", + ] +), PackageDefinition( "DocumenterMarkdown", "https://github.com/JuliaDocs/DocumenterMarkdown.jl", [ - "README" => "https://github.com/JuliaDocs/DocumenterMarkdown.jl#documentermarkdown", + "stable" => "https://DocumenterMarkdown.juliadocs.org/stable/", + "dev" => "https://DocumenterMarkdown.juliadocs.org/dev/", ], [ "https://codecov.io/gh/JuliaDocs/DocumenterMarkdown.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterMarkdown.jl", ] ), PackageDefinition( - "DocumenterTools", "https://github.com/JuliaDocs/DocumenterTools.jl", + "DocumenterMermaid", "https://github.com/JuliaDocs/DocumenterMermaid.jl", [ - "README" => "https://github.com/JuliaDocs/DocumenterTools.jl#documentertools", + "stable" => "https://juliadocs.org/DocumenterMermaid.jl/stable/", + "dev" => "https://juliadocs.org/DocumenterMermaid.jl/dev/", ], [ - "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl", + "https://codecov.io/gh/JuliaDocs/DocumenterMermaid.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterMermaid.jl", ] ), PackageDefinition( - "DocStringExtensions", "https://github.com/JuliaDocs/DocStringExtensions.jl", + "DocumenterTools", "https://github.com/JuliaDocs/DocumenterTools.jl", [ - "stable" => "https://DocStringExtensions.juliadocs.org/stable/", - "dev" => "https://DocStringExtensions.juliadocs.org/dev/", + "README" => "https://github.com/JuliaDocs/DocumenterTools.jl", ], [ - "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl", + "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl", ] ), PackageDefinition( "Highlights", "https://github.com/JuliaDocs/Highlights.jl", [ - "stable" => "https://Highlights.juliadocs.org/stable/", - "dev" => "https://Highlights.juliadocs.org/dev/", + "stable" => "https://highlights.juliadocs.org/stable/", + "dev" => "https://highlights.juliadocs.org/dev/", ], [ "https://codecov.io/gh/JuliaDocs/Highlights.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Highlights.jl", ] ), +PackageDefinition( + "IOCapture", "https://github.com/JuliaDocs/IOCapture.jl", + [ + "README" => "https://github.com/JuliaDocs/IOCapture.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/IOCapture.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/IOCapture.jl", + ] +), +PackageDefinition( + "Julia-Cheat-Sheet", "https://github.com/JuliaDocs/Julia-Cheat-Sheet", + [ + "stable" => "https://cheatsheet.juliadocs.org/stable/", + "dev" => "https://cheatsheet.juliadocs.org/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/Julia-Cheat-Sheet/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Julia-Cheat-Sheet", + ] +), +PackageDefinition( + "LiveServer", "https://github.com/JuliaDocs/LiveServer.jl", + [ + "README" => "https://github.com/JuliaDocs/LiveServer.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/LiveServer.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/LiveServer.jl", + ] +), +PackageDefinition( + "MarkdownAST", "https://github.com/JuliaDocs/MarkdownAST.jl", + [ + "stable" => "https://juliadocs.github.io/MarkdownAST.jl/stable/", + "dev" => "https://juliadocs.github.io/MarkdownAST.jl/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/MarkdownAST.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/MarkdownAST.jl", + ] +), +PackageDefinition( + "ModuleDocstrings", "https://github.com/JuliaDocs/ModuleDocstrings.jl", + [ + "README" => "https://github.com/JuliaDocs/ModuleDocstrings.jl", + ], + [ + "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl", + ] +), ] |> package_table_markdown ``` From d35a2a0542bfec2c1a6a6996181604b1dc5626f4 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 13:11:13 +0200 Subject: [PATCH 03/12] update --- src/index.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/index.md b/src/index.md index 6dbf1f5..25255e3 100644 --- a/src/index.md +++ b/src/index.md @@ -24,12 +24,15 @@ JuliaDocs is the home for the following packages and repositories: * [DocumenterMarkdown.jl -- Documenter's Markdown / MkDocs backend](https://github.com/JuliaDocs/DocumenterMarkdown.jl) * [DocumenterMermaid.jl -- Mermaid.js diagram intergration for Documenter.jl](https://github.com/JuliaDocs/DocumenterMermaid.jl) * [DocumenterTools.jl -- Extra tools for setting up Documenter](https://github.com/JuliaDocs/DocumenterTools.jl) +* [Franklin.jl -- (yet another) static site generator. Simple, customisable, fast, maths with KaTeX, code evaluation, optional pre-rendering, in Julia.](https://github.com/JuliaDocs/Franklin.jl) +* [FranklinTemplates.jl -- Simple website templates for Franklin.jl](https://github.com/JuliaDocs/FranklinTemplates.jl) * [Highlights.jl -- A source code highlighter for Julia.](https://github.com/JuliaDocs/Highlights.jl) * [IOCapture.jl -- Capturing standard output and error streams in Julia.](https://github.com/JuliaDocs/IOCapture.jl) * [Julia-Cheat-Sheet -- Julia Cheat Sheet](https://github.com/JuliaDocs/Julia-Cheat-Sheet) * [LiveServer.jl -- Simple development server with live-reload capability for Julia.](https://github.com/JuliaDocs/LiveServer.jl) * [MarkdownAST.jl -- Abstract syntax tree representation of Markdown documents in Julia](https://github.com/JuliaDocs/MarkdownAST.jl) * [ModuleDocstrings.jl -- ](https://github.com/JuliaDocs/ModuleDocstrings.jl) +* [PkgPage.jl -- Create a beautiful landing page for your package in less than 10 minutes.](https://github.com/JuliaDocs/PkgPage.jl) ## Packages @@ -178,6 +181,26 @@ PackageDefinition( "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl", ] ), +PackageDefinition( + "Franklin", "https://github.com/JuliaDocs/Franklin.jl", + [ + "stable" => "https://franklinjl.org/stable/", + "dev" => "https://franklinjl.org/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/Franklin.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Franklin.jl", + ] +), +PackageDefinition( + "FranklinTemplates", "https://github.com/JuliaDocs/FranklinTemplates.jl", + [ + "stable" => "https://tlienart.github.io/FranklinTemplates.jl/stable/", + "dev" => "https://tlienart.github.io/FranklinTemplates.jl/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/FranklinTemplates.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/FranklinTemplates.jl", + ] +), PackageDefinition( "Highlights", "https://github.com/JuliaDocs/Highlights.jl", [ @@ -235,5 +258,15 @@ PackageDefinition( "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl", ] ), +PackageDefinition( + "PkgPage", "https://github.com/JuliaDocs/PkgPage.jl", + [ + "stable" => "https://tlienart.github.io/PkgPage.jl/stable/", + "dev" => "https://tlienart.github.io/PkgPage.jl/dev/", + ], + [ + "https://codecov.io/gh/JuliaDocs/PkgPage.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/PkgPage.jl", + ] +), ] |> package_table_markdown ``` From 912f310b1a33cae6d74b33b1c7ffcaa9f2eba15a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 14:39:16 +0200 Subject: [PATCH 04/12] Regenerate --- src/index.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/index.md b/src/index.md index 25255e3..253a849 100644 --- a/src/index.md +++ b/src/index.md @@ -42,7 +42,8 @@ import Main: PackageDefinition, package_table_markdown PackageDefinition( "ANSIColoredPrinters", "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", [ - "README" => "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", + "stable" => "https://juliadocs.org/ANSIColoredPrinters.jl/stable/", + "dev" => "https://juliadocs.org/ANSIColoredPrinters.jl/dev/", ], [ "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl", @@ -69,7 +70,8 @@ PackageDefinition( PackageDefinition( "DemoCards", "https://github.com/JuliaDocs/DemoCards.jl", [ - "README" => "https://github.com/JuliaDocs/DemoCards.jl", + "stable" => "http://democards.juliadocs.org/stable/", + "dev" => "http://democards.juliadocs.org/dev/", ], [ "https://codecov.io/gh/JuliaDocs/DemoCards.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DemoCards.jl", @@ -214,7 +216,8 @@ PackageDefinition( PackageDefinition( "IOCapture", "https://github.com/JuliaDocs/IOCapture.jl", [ - "README" => "https://github.com/JuliaDocs/IOCapture.jl", + "stable" => "https://docs.juliahub.com/General/IOCapture/stable/stable/", + "dev" => "https://docs.juliahub.com/General/IOCapture/stable/dev/", ], [ "https://codecov.io/gh/JuliaDocs/IOCapture.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/IOCapture.jl", @@ -233,7 +236,8 @@ PackageDefinition( PackageDefinition( "LiveServer", "https://github.com/JuliaDocs/LiveServer.jl", [ - "README" => "https://github.com/JuliaDocs/LiveServer.jl", + "stable" => "https://juliadocs.org/LiveServer.jl/stable/", + "dev" => "https://juliadocs.org/LiveServer.jl/dev/", ], [ "https://codecov.io/gh/JuliaDocs/LiveServer.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/LiveServer.jl", @@ -252,7 +256,8 @@ PackageDefinition( PackageDefinition( "ModuleDocstrings", "https://github.com/JuliaDocs/ModuleDocstrings.jl", [ - "README" => "https://github.com/JuliaDocs/ModuleDocstrings.jl", + "stable" => "https://moduledocstrings.juliadocs.org/stable/", + "dev" => "https://moduledocstrings.juliadocs.org/dev/", ], [ "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl", From 81e5366a16fd377c9ac2b31bd0343e37bca8f53e Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 14:41:59 +0200 Subject: [PATCH 05/12] update --- update.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.jl b/update.jl index 3725c7f..cd09979 100644 --- a/update.jl +++ b/update.jl @@ -4,7 +4,7 @@ data = read(`gh repo list JuliaDocs --json "isArchived,description,homepageUrl,n repos = JSON.parse(data) -# drop archive repositories +# drop archived repositories repos = filter!(x -> !x["isArchived"], repos) repos = filter!(x -> x["name"] != "juliadocs.github.io", repos) From 47e43d8d614db3b586b0f0aeca1a93927501a0fa Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 14:53:29 +0200 Subject: [PATCH 06/12] more --- src/index.md | 10 ---------- update.jl | 23 +++++++++++++++++++---- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/index.md b/src/index.md index 253a849..61f3d26 100644 --- a/src/index.md +++ b/src/index.md @@ -16,7 +16,6 @@ JuliaDocs is the home for the following packages and repositories: * [DocInventories.jl -- Read and write documentation inventory files such as the objects.inv file generated by Documenter and Sphinx](https://github.com/JuliaDocs/DocInventories.jl) * [DocStringExtensions.jl -- Extensions for Julia's docsystem.](https://github.com/JuliaDocs/DocStringExtensions.jl) * [DocumentationGenerator.jl -- ](https://github.com/JuliaDocs/DocumentationGenerator.jl) -* [DocumentationGeneratorRegistry -- ](https://github.com/JuliaDocs/DocumentationGeneratorRegistry) * [Documenter.jl -- A documentation generator for Julia.](https://github.com/JuliaDocs/Documenter.jl) * [DocumenterCitations.jl -- DocumenterCitations.jl uses Bibliography.jl to add support for BibTeX citations and references in documentation pages generated by Documenter.jl.](https://github.com/JuliaDocs/DocumenterCitations.jl) * [DocumenterInterLinks.jl -- A plugin for Documenter.jl that enables linking between projects](https://github.com/JuliaDocs/DocumenterInterLinks.jl) @@ -106,15 +105,6 @@ PackageDefinition( "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl", ] ), -PackageDefinition( - "DocumentationGeneratorRegistry", "https://github.com/JuliaDocs/DocumentationGeneratorRegistry", - [ - "README" => "https://github.com/JuliaDocs/DocumentationGeneratorRegistry", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumentationGeneratorRegistry/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumentationGeneratorRegistry", - ] -), PackageDefinition( "Documenter", "https://github.com/JuliaDocs/Documenter.jl", [ diff --git a/update.jl b/update.jl index cd09979..0062736 100644 --- a/update.jl +++ b/update.jl @@ -1,16 +1,31 @@ +# +# This script can regenerate index.md. You can run it via +# +# julia --proj=. update.jl > src/index.md +# using JSON +# query information about all JuliaDocs repositories data = read(`gh repo list JuliaDocs --json "isArchived,description,homepageUrl,name,url,defaultBranchRef"`, String) - repos = JSON.parse(data) -# drop archived repositories +# exclude archived repositories repos = filter!(x -> !x["isArchived"], repos) -repos = filter!(x -> x["name"] != "juliadocs.github.io", repos) +# exclude some other repostiroies +excluded = [ + "juliadocs.github.io", + "DocumentationGeneratorRegistry", +] +repos = filter!(x -> x["name"] ∉ excluded, repos) +# sort alphabetical sort!(repos, by = x -> x["name"]) + +# Now we print the index.md content. This just hardcoded a header and footer. +# This is quick & dirty hack; a full template system might be nicer in theory, +# but in practice this is good enough and dead simple. print(""" # JuliaDocs @@ -32,7 +47,7 @@ for r in repos println("* [$name -- $desc]($url)") end -# TODO: should we linke to the homepage URL, if any, and provide the +# TODO: should we link to the homepage URL, if any, and provide the # repository link separately, like it was done for the cheat sheet: # # * [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) From 9f976534aff4d6ebdd010cbb1b768a8587342fc0 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 14:58:20 +0200 Subject: [PATCH 07/12] grammar --- update.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/update.jl b/update.jl index 0062736..c183d44 100644 --- a/update.jl +++ b/update.jl @@ -23,8 +23,8 @@ repos = filter!(x -> x["name"] ∉ excluded, repos) sort!(repos, by = x -> x["name"]) -# Now we print the index.md content. This just hardcoded a header and footer. -# This is quick & dirty hack; a full template system might be nicer in theory, +# Now we print the index.md content, using hardcoded header and footer. This +# is a quick & dirty hack; a full template system might be nicer in theory, # but in practice this is good enough and dead simple. print(""" # JuliaDocs From 8d2fa321d1f52143d17eceab8947b80301104b21 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 15:11:49 +0200 Subject: [PATCH 08/12] Merge lists --- make.jl | 6 ++++-- src/index.md | 60 +++++++++++++++++++++++----------------------------- update.jl | 30 ++++++++++---------------- 3 files changed, 42 insertions(+), 54 deletions(-) diff --git a/make.jl b/make.jl index ca5ff41..ec495bb 100644 --- a/make.jl +++ b/make.jl @@ -5,6 +5,7 @@ using Markdown struct PackageDefinition name :: String url :: String + desc :: String docs :: Vector{Pair{String, String}} # type => URL buildbadges :: Vector{Pair{String, String}} # badge => URL end @@ -12,6 +13,7 @@ end function markdown(p::PackageDefinition) row = Any[] push!(row, Markdown.Link(p.name, p.url)) + push!(row, Markdown.parse(p.desc)) push!(row, [ Markdown.Link( [Markdown.Image("https://img.shields.io/badge/docs-$(ver)-blue.svg", "$(ver)")], @@ -29,10 +31,10 @@ function markdown(p::PackageDefinition) end function package_table_markdown(packages) - titles = map(["Package", "Documentation", "Coverage"]) do s + titles = map(["Package", "Description", "Documentation", "Coverage"]) do s Markdown.Bold(s) end - table = Markdown.Table([titles], [:l, :c, :c]) + table = Markdown.Table([titles], [:l, :l, :c, :c]) for p in packages push!(table.rows, markdown(p)) end diff --git a/src/index.md b/src/index.md index 61f3d26..77d45ec 100644 --- a/src/index.md +++ b/src/index.md @@ -9,29 +9,6 @@ of [Julia programming language](https://julialang.org/) ecosystem. to JuliaDocs is the home for the following packages and repositories: -* [ANSIColoredPrinters.jl -- ANSI escape code translator](https://github.com/JuliaDocs/ANSIColoredPrinters.jl) -* [Changelog.jl -- A Julia package for managing changelogs](https://github.com/JuliaDocs/Changelog.jl) -* [CodeEvaluation.jl -- A small utility package to emulate executing Julia code in a clean `Main` module.](https://github.com/JuliaDocs/CodeEvaluation.jl) -* [DemoCards.jl -- Let's focus on writing demos](https://github.com/JuliaDocs/DemoCards.jl) -* [DocInventories.jl -- Read and write documentation inventory files such as the objects.inv file generated by Documenter and Sphinx](https://github.com/JuliaDocs/DocInventories.jl) -* [DocStringExtensions.jl -- Extensions for Julia's docsystem.](https://github.com/JuliaDocs/DocStringExtensions.jl) -* [DocumentationGenerator.jl -- ](https://github.com/JuliaDocs/DocumentationGenerator.jl) -* [Documenter.jl -- A documentation generator for Julia.](https://github.com/JuliaDocs/Documenter.jl) -* [DocumenterCitations.jl -- DocumenterCitations.jl uses Bibliography.jl to add support for BibTeX citations and references in documentation pages generated by Documenter.jl.](https://github.com/JuliaDocs/DocumenterCitations.jl) -* [DocumenterInterLinks.jl -- A plugin for Documenter.jl that enables linking between projects](https://github.com/JuliaDocs/DocumenterInterLinks.jl) -* [DocumenterInventoryWritingBackport.jl -- Backport of inventory writing for Documenter 0.25-1.2](https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl) -* [DocumenterMarkdown.jl -- Documenter's Markdown / MkDocs backend](https://github.com/JuliaDocs/DocumenterMarkdown.jl) -* [DocumenterMermaid.jl -- Mermaid.js diagram intergration for Documenter.jl](https://github.com/JuliaDocs/DocumenterMermaid.jl) -* [DocumenterTools.jl -- Extra tools for setting up Documenter](https://github.com/JuliaDocs/DocumenterTools.jl) -* [Franklin.jl -- (yet another) static site generator. Simple, customisable, fast, maths with KaTeX, code evaluation, optional pre-rendering, in Julia.](https://github.com/JuliaDocs/Franklin.jl) -* [FranklinTemplates.jl -- Simple website templates for Franklin.jl](https://github.com/JuliaDocs/FranklinTemplates.jl) -* [Highlights.jl -- A source code highlighter for Julia.](https://github.com/JuliaDocs/Highlights.jl) -* [IOCapture.jl -- Capturing standard output and error streams in Julia.](https://github.com/JuliaDocs/IOCapture.jl) -* [Julia-Cheat-Sheet -- Julia Cheat Sheet](https://github.com/JuliaDocs/Julia-Cheat-Sheet) -* [LiveServer.jl -- Simple development server with live-reload capability for Julia.](https://github.com/JuliaDocs/LiveServer.jl) -* [MarkdownAST.jl -- Abstract syntax tree representation of Markdown documents in Julia](https://github.com/JuliaDocs/MarkdownAST.jl) -* [ModuleDocstrings.jl -- ](https://github.com/JuliaDocs/ModuleDocstrings.jl) -* [PkgPage.jl -- Create a beautiful landing page for your package in less than 10 minutes.](https://github.com/JuliaDocs/PkgPage.jl) ## Packages @@ -40,6 +17,7 @@ import Main: PackageDefinition, package_table_markdown [ PackageDefinition( "ANSIColoredPrinters", "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", + "ANSI escape code translator", [ "stable" => "https://juliadocs.org/ANSIColoredPrinters.jl/stable/", "dev" => "https://juliadocs.org/ANSIColoredPrinters.jl/dev/", @@ -50,6 +28,7 @@ PackageDefinition( ), PackageDefinition( "Changelog", "https://github.com/JuliaDocs/Changelog.jl", + "A Julia package for managing changelogs", [ "README" => "https://github.com/JuliaDocs/Changelog.jl", ], @@ -59,6 +38,7 @@ PackageDefinition( ), PackageDefinition( "CodeEvaluation", "https://github.com/JuliaDocs/CodeEvaluation.jl", + "A small utility package to emulate executing Julia code in a clean `Main` module.", [ "README" => "https://github.com/JuliaDocs/CodeEvaluation.jl", ], @@ -68,6 +48,7 @@ PackageDefinition( ), PackageDefinition( "DemoCards", "https://github.com/JuliaDocs/DemoCards.jl", + "Let's focus on writing demos", [ "stable" => "http://democards.juliadocs.org/stable/", "dev" => "http://democards.juliadocs.org/dev/", @@ -78,6 +59,7 @@ PackageDefinition( ), PackageDefinition( "DocInventories", "https://github.com/JuliaDocs/DocInventories.jl", + "Read and write documentation inventory files such as the objects.inv file generated by Documenter and Sphinx", [ "stable" => "https://juliadocs.org/DocInventories.jl/stable/", "dev" => "https://juliadocs.org/DocInventories.jl/dev/", @@ -88,6 +70,7 @@ PackageDefinition( ), PackageDefinition( "DocStringExtensions", "https://github.com/JuliaDocs/DocStringExtensions.jl", + "Extensions for Julia's docsystem.", [ "stable" => "https://DocStringExtensions.juliadocs.org/latest/stable/", "dev" => "https://DocStringExtensions.juliadocs.org/latest/dev/", @@ -98,6 +81,7 @@ PackageDefinition( ), PackageDefinition( "DocumentationGenerator", "https://github.com/JuliaDocs/DocumentationGenerator.jl", + "", [ "README" => "https://github.com/JuliaDocs/DocumentationGenerator.jl", ], @@ -107,6 +91,7 @@ PackageDefinition( ), PackageDefinition( "Documenter", "https://github.com/JuliaDocs/Documenter.jl", + "A documentation generator for Julia.", [ "stable" => "https://documenter.juliadocs.org/stable/", "dev" => "https://documenter.juliadocs.org/dev/", @@ -117,6 +102,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterCitations", "https://github.com/JuliaDocs/DocumenterCitations.jl", + "DocumenterCitations.jl uses Bibliography.jl to add support for BibTeX citations and references in documentation pages generated by Documenter.jl.", [ "stable" => "https://juliadocs.github.io/DocumenterCitations.jl/stable/", "dev" => "https://juliadocs.github.io/DocumenterCitations.jl/dev/", @@ -127,6 +113,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterInterLinks", "https://github.com/JuliaDocs/DocumenterInterLinks.jl", + "A plugin for Documenter.jl that enables linking between projects", [ "stable" => "http://juliadocs.org/DocumenterInterLinks.jl/stable/", "dev" => "http://juliadocs.org/DocumenterInterLinks.jl/dev/", @@ -137,6 +124,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterInventoryWritingBackport", "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", + "Backport of inventory writing for Documenter 0.25-1.2", [ "README" => "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", ], @@ -146,6 +134,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterMarkdown", "https://github.com/JuliaDocs/DocumenterMarkdown.jl", + "Documenter's Markdown / MkDocs backend", [ "stable" => "https://DocumenterMarkdown.juliadocs.org/stable/", "dev" => "https://DocumenterMarkdown.juliadocs.org/dev/", @@ -156,6 +145,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterMermaid", "https://github.com/JuliaDocs/DocumenterMermaid.jl", + "Mermaid.js diagram intergration for Documenter.jl", [ "stable" => "https://juliadocs.org/DocumenterMermaid.jl/stable/", "dev" => "https://juliadocs.org/DocumenterMermaid.jl/dev/", @@ -166,6 +156,7 @@ PackageDefinition( ), PackageDefinition( "DocumenterTools", "https://github.com/JuliaDocs/DocumenterTools.jl", + "Extra tools for setting up Documenter", [ "README" => "https://github.com/JuliaDocs/DocumenterTools.jl", ], @@ -175,6 +166,7 @@ PackageDefinition( ), PackageDefinition( "Franklin", "https://github.com/JuliaDocs/Franklin.jl", + "(yet another) static site generator. Simple, customisable, fast, maths with KaTeX, code evaluation, optional pre-rendering, in Julia.", [ "stable" => "https://franklinjl.org/stable/", "dev" => "https://franklinjl.org/dev/", @@ -185,6 +177,7 @@ PackageDefinition( ), PackageDefinition( "FranklinTemplates", "https://github.com/JuliaDocs/FranklinTemplates.jl", + "Simple website templates for Franklin.jl", [ "stable" => "https://tlienart.github.io/FranklinTemplates.jl/stable/", "dev" => "https://tlienart.github.io/FranklinTemplates.jl/dev/", @@ -195,6 +188,7 @@ PackageDefinition( ), PackageDefinition( "Highlights", "https://github.com/JuliaDocs/Highlights.jl", + "A source code highlighter for Julia.", [ "stable" => "https://highlights.juliadocs.org/stable/", "dev" => "https://highlights.juliadocs.org/dev/", @@ -205,6 +199,7 @@ PackageDefinition( ), PackageDefinition( "IOCapture", "https://github.com/JuliaDocs/IOCapture.jl", + "Capturing standard output and error streams in Julia.", [ "stable" => "https://docs.juliahub.com/General/IOCapture/stable/stable/", "dev" => "https://docs.juliahub.com/General/IOCapture/stable/dev/", @@ -213,18 +208,9 @@ PackageDefinition( "https://codecov.io/gh/JuliaDocs/IOCapture.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/IOCapture.jl", ] ), -PackageDefinition( - "Julia-Cheat-Sheet", "https://github.com/JuliaDocs/Julia-Cheat-Sheet", - [ - "stable" => "https://cheatsheet.juliadocs.org/stable/", - "dev" => "https://cheatsheet.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/Julia-Cheat-Sheet/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Julia-Cheat-Sheet", - ] -), PackageDefinition( "LiveServer", "https://github.com/JuliaDocs/LiveServer.jl", + "Simple development server with live-reload capability for Julia.", [ "stable" => "https://juliadocs.org/LiveServer.jl/stable/", "dev" => "https://juliadocs.org/LiveServer.jl/dev/", @@ -235,6 +221,7 @@ PackageDefinition( ), PackageDefinition( "MarkdownAST", "https://github.com/JuliaDocs/MarkdownAST.jl", + "Abstract syntax tree representation of Markdown documents in Julia", [ "stable" => "https://juliadocs.github.io/MarkdownAST.jl/stable/", "dev" => "https://juliadocs.github.io/MarkdownAST.jl/dev/", @@ -245,6 +232,7 @@ PackageDefinition( ), PackageDefinition( "ModuleDocstrings", "https://github.com/JuliaDocs/ModuleDocstrings.jl", + "", [ "stable" => "https://moduledocstrings.juliadocs.org/stable/", "dev" => "https://moduledocstrings.juliadocs.org/dev/", @@ -255,6 +243,7 @@ PackageDefinition( ), PackageDefinition( "PkgPage", "https://github.com/JuliaDocs/PkgPage.jl", + "Create a beautiful landing page for your package in less than 10 minutes.", [ "stable" => "https://tlienart.github.io/PkgPage.jl/stable/", "dev" => "https://tlienart.github.io/PkgPage.jl/dev/", @@ -265,3 +254,8 @@ PackageDefinition( ), ] |> package_table_markdown ``` + +## Other repositories + +* [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) + diff --git a/update.jl b/update.jl index c183d44..259214c 100644 --- a/update.jl +++ b/update.jl @@ -12,10 +12,11 @@ repos = JSON.parse(data) # exclude archived repositories repos = filter!(x -> !x["isArchived"], repos) -# exclude some other repostiroies +# exclude some other repositories excluded = [ - "juliadocs.github.io", - "DocumentationGeneratorRegistry", + "juliadocs.github.io", # this repository, no point linking to it + "DocumentationGeneratorRegistry", # kinda obsolete + "Julia-Cheat-Sheet", # not a package ] repos = filter!(x -> x["name"] ∉ excluded, repos) @@ -25,7 +26,7 @@ sort!(repos, by = x -> x["name"]) # Now we print the index.md content, using hardcoded header and footer. This # is a quick & dirty hack; a full template system might be nicer in theory, -# but in practice this is good enough and dead simple. +# but in practice it is good enough and dead simple. print(""" # JuliaDocs @@ -38,21 +39,6 @@ of [Julia programming language](https://julialang.org/) ecosystem. to JuliaDocs is the home for the following packages and repositories: -""") - -for r in repos - name = r["name"] - url = r["url"] - desc = r["description"] - println("* [$name -- $desc]($url)") -end - -# TODO: should we link to the homepage URL, if any, and provide the -# repository link separately, like it was done for the cheat sheet: -# -# * [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) - -print(""" ## Packages @@ -71,6 +57,7 @@ for r in repos print(""" PackageDefinition( "$name_no_suffix", "$url", + "$desc", [ """) if isempty(homepageUrl) @@ -99,4 +86,9 @@ end print(""" ] |> package_table_markdown ``` + +## Other repositories + +* [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) + """) \ No newline at end of file From 6ddca5dfd25baec31f763756abf88048ab75376f Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 15:22:37 +0200 Subject: [PATCH 09/12] Merge update.jl into make.jl --- make.jl | 53 +++++++++++ src/index.md | 243 +-------------------------------------------------- update.jl | 94 -------------------- 3 files changed, 55 insertions(+), 335 deletions(-) delete mode 100644 update.jl diff --git a/make.jl b/make.jl index ec495bb..65da149 100644 --- a/make.jl +++ b/make.jl @@ -1,5 +1,6 @@ using Documenter using Markdown +using JSON # Types and functions to generate a Markdown table with links to package badges etc. struct PackageDefinition @@ -41,6 +42,58 @@ function package_table_markdown(packages) Markdown.MD(table) end +function generate_package_table_markdown() + # query information about all JuliaDocs repositories + data = read(`gh repo list JuliaDocs --json "isArchived,description,homepageUrl,name,url,defaultBranchRef"`, String) + repos = JSON.parse(data) + + # exclude archived repositories + repos = filter!(x -> !x["isArchived"], repos) + + # exclude some other repositories + excluded = [ + "DocumentationGeneratorRegistry", # kinda obsolete + "DocumenterInventoryWritingBackport.jl", + "juliadocs.github.io", # this repository, no point linking to it + "Julia-Cheat-Sheet", # not a package + ] + filter!(x -> x["name"] ∉ excluded, repos) + + # sort alphabetical + sort!(repos, by = x -> x["name"]) + + packages = PackageDefinition[] + for r in repos + name = r["name"] + name_no_suffix = endswith(name, ".jl") ? name[1:(end - 3)] : name + url = r["url"] + homepageUrl = r["homepageUrl"] + desc = r["description"] + + docs = Pair{String, String}[] + if isempty(homepageUrl) + push!(docs, "README" => "https://github.com/JuliaDocs/$name") + else + # HACK / workaround for Highlights.jl + if endswith(homepageUrl, "/stable") + homepageUrl = replace(homepageUrl, "/stable" => "") + end + push!(docs, "stable" => joinpath(homepageUrl, "stable/")) + push!(docs, "dev" => joinpath(homepageUrl, "dev/")) + end + + branch = r["defaultBranchRef"]["name"] + buildbadges = Pair{String, String}[ + "https://codecov.io/gh/JuliaDocs/$name/branch/$branch/graph/badge.svg" => + "https://codecov.io/gh/JuliaDocs/$name", + ] + + push!(packages, PackageDefinition(name_no_suffix, url, desc, docs, buildbadges)) + end + + return package_table_markdown(packages) +end + # Build the docs makedocs( sitename = "JuliaDocs", diff --git a/src/index.md b/src/index.md index 77d45ec..8c2b17f 100644 --- a/src/index.md +++ b/src/index.md @@ -13,249 +13,10 @@ JuliaDocs is the home for the following packages and repositories: ## Packages ```@eval -import Main: PackageDefinition, package_table_markdown -[ -PackageDefinition( - "ANSIColoredPrinters", "https://github.com/JuliaDocs/ANSIColoredPrinters.jl", - "ANSI escape code translator", - [ - "stable" => "https://juliadocs.org/ANSIColoredPrinters.jl/stable/", - "dev" => "https://juliadocs.org/ANSIColoredPrinters.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ANSIColoredPrinters.jl", - ] -), -PackageDefinition( - "Changelog", "https://github.com/JuliaDocs/Changelog.jl", - "A Julia package for managing changelogs", - [ - "README" => "https://github.com/JuliaDocs/Changelog.jl", - ], - [ - "https://codecov.io/gh/JuliaDocs/Changelog.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Changelog.jl", - ] -), -PackageDefinition( - "CodeEvaluation", "https://github.com/JuliaDocs/CodeEvaluation.jl", - "A small utility package to emulate executing Julia code in a clean `Main` module.", - [ - "README" => "https://github.com/JuliaDocs/CodeEvaluation.jl", - ], - [ - "https://codecov.io/gh/JuliaDocs/CodeEvaluation.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/CodeEvaluation.jl", - ] -), -PackageDefinition( - "DemoCards", "https://github.com/JuliaDocs/DemoCards.jl", - "Let's focus on writing demos", - [ - "stable" => "http://democards.juliadocs.org/stable/", - "dev" => "http://democards.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DemoCards.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DemoCards.jl", - ] -), -PackageDefinition( - "DocInventories", "https://github.com/JuliaDocs/DocInventories.jl", - "Read and write documentation inventory files such as the objects.inv file generated by Documenter and Sphinx", - [ - "stable" => "https://juliadocs.org/DocInventories.jl/stable/", - "dev" => "https://juliadocs.org/DocInventories.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocInventories.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocInventories.jl", - ] -), -PackageDefinition( - "DocStringExtensions", "https://github.com/JuliaDocs/DocStringExtensions.jl", - "Extensions for Julia's docsystem.", - [ - "stable" => "https://DocStringExtensions.juliadocs.org/latest/stable/", - "dev" => "https://DocStringExtensions.juliadocs.org/latest/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocStringExtensions.jl", - ] -), -PackageDefinition( - "DocumentationGenerator", "https://github.com/JuliaDocs/DocumentationGenerator.jl", - "", - [ - "README" => "https://github.com/JuliaDocs/DocumentationGenerator.jl", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumentationGenerator.jl", - ] -), -PackageDefinition( - "Documenter", "https://github.com/JuliaDocs/Documenter.jl", - "A documentation generator for Julia.", - [ - "stable" => "https://documenter.juliadocs.org/stable/", - "dev" => "https://documenter.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/Documenter.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Documenter.jl", - ] -), -PackageDefinition( - "DocumenterCitations", "https://github.com/JuliaDocs/DocumenterCitations.jl", - "DocumenterCitations.jl uses Bibliography.jl to add support for BibTeX citations and references in documentation pages generated by Documenter.jl.", - [ - "stable" => "https://juliadocs.github.io/DocumenterCitations.jl/stable/", - "dev" => "https://juliadocs.github.io/DocumenterCitations.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterCitations.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterCitations.jl", - ] -), -PackageDefinition( - "DocumenterInterLinks", "https://github.com/JuliaDocs/DocumenterInterLinks.jl", - "A plugin for Documenter.jl that enables linking between projects", - [ - "stable" => "http://juliadocs.org/DocumenterInterLinks.jl/stable/", - "dev" => "http://juliadocs.org/DocumenterInterLinks.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterInterLinks.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterInterLinks.jl", - ] -), -PackageDefinition( - "DocumenterInventoryWritingBackport", "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", - "Backport of inventory writing for Documenter 0.25-1.2", - [ - "README" => "https://github.com/JuliaDocs/DocumenterInventoryWritingBackport.jl", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterInventoryWritingBackport.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterInventoryWritingBackport.jl", - ] -), -PackageDefinition( - "DocumenterMarkdown", "https://github.com/JuliaDocs/DocumenterMarkdown.jl", - "Documenter's Markdown / MkDocs backend", - [ - "stable" => "https://DocumenterMarkdown.juliadocs.org/stable/", - "dev" => "https://DocumenterMarkdown.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterMarkdown.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterMarkdown.jl", - ] -), -PackageDefinition( - "DocumenterMermaid", "https://github.com/JuliaDocs/DocumenterMermaid.jl", - "Mermaid.js diagram intergration for Documenter.jl", - [ - "stable" => "https://juliadocs.org/DocumenterMermaid.jl/stable/", - "dev" => "https://juliadocs.org/DocumenterMermaid.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterMermaid.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterMermaid.jl", - ] -), -PackageDefinition( - "DocumenterTools", "https://github.com/JuliaDocs/DocumenterTools.jl", - "Extra tools for setting up Documenter", - [ - "README" => "https://github.com/JuliaDocs/DocumenterTools.jl", - ], - [ - "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/DocumenterTools.jl", - ] -), -PackageDefinition( - "Franklin", "https://github.com/JuliaDocs/Franklin.jl", - "(yet another) static site generator. Simple, customisable, fast, maths with KaTeX, code evaluation, optional pre-rendering, in Julia.", - [ - "stable" => "https://franklinjl.org/stable/", - "dev" => "https://franklinjl.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/Franklin.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Franklin.jl", - ] -), -PackageDefinition( - "FranklinTemplates", "https://github.com/JuliaDocs/FranklinTemplates.jl", - "Simple website templates for Franklin.jl", - [ - "stable" => "https://tlienart.github.io/FranklinTemplates.jl/stable/", - "dev" => "https://tlienart.github.io/FranklinTemplates.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/FranklinTemplates.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/FranklinTemplates.jl", - ] -), -PackageDefinition( - "Highlights", "https://github.com/JuliaDocs/Highlights.jl", - "A source code highlighter for Julia.", - [ - "stable" => "https://highlights.juliadocs.org/stable/", - "dev" => "https://highlights.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/Highlights.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/Highlights.jl", - ] -), -PackageDefinition( - "IOCapture", "https://github.com/JuliaDocs/IOCapture.jl", - "Capturing standard output and error streams in Julia.", - [ - "stable" => "https://docs.juliahub.com/General/IOCapture/stable/stable/", - "dev" => "https://docs.juliahub.com/General/IOCapture/stable/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/IOCapture.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/IOCapture.jl", - ] -), -PackageDefinition( - "LiveServer", "https://github.com/JuliaDocs/LiveServer.jl", - "Simple development server with live-reload capability for Julia.", - [ - "stable" => "https://juliadocs.org/LiveServer.jl/stable/", - "dev" => "https://juliadocs.org/LiveServer.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/LiveServer.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/LiveServer.jl", - ] -), -PackageDefinition( - "MarkdownAST", "https://github.com/JuliaDocs/MarkdownAST.jl", - "Abstract syntax tree representation of Markdown documents in Julia", - [ - "stable" => "https://juliadocs.github.io/MarkdownAST.jl/stable/", - "dev" => "https://juliadocs.github.io/MarkdownAST.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/MarkdownAST.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/MarkdownAST.jl", - ] -), -PackageDefinition( - "ModuleDocstrings", "https://github.com/JuliaDocs/ModuleDocstrings.jl", - "", - [ - "stable" => "https://moduledocstrings.juliadocs.org/stable/", - "dev" => "https://moduledocstrings.juliadocs.org/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl/branch/main/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/ModuleDocstrings.jl", - ] -), -PackageDefinition( - "PkgPage", "https://github.com/JuliaDocs/PkgPage.jl", - "Create a beautiful landing page for your package in less than 10 minutes.", - [ - "stable" => "https://tlienart.github.io/PkgPage.jl/stable/", - "dev" => "https://tlienart.github.io/PkgPage.jl/dev/", - ], - [ - "https://codecov.io/gh/JuliaDocs/PkgPage.jl/branch/master/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/PkgPage.jl", - ] -), -] |> package_table_markdown +import Main: generate_package_table_markdown +generate_package_table_markdown() ``` ## Other repositories * [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) - diff --git a/update.jl b/update.jl deleted file mode 100644 index 259214c..0000000 --- a/update.jl +++ /dev/null @@ -1,94 +0,0 @@ -# -# This script can regenerate index.md. You can run it via -# -# julia --proj=. update.jl > src/index.md -# -using JSON - -# query information about all JuliaDocs repositories -data = read(`gh repo list JuliaDocs --json "isArchived,description,homepageUrl,name,url,defaultBranchRef"`, String) -repos = JSON.parse(data) - -# exclude archived repositories -repos = filter!(x -> !x["isArchived"], repos) - -# exclude some other repositories -excluded = [ - "juliadocs.github.io", # this repository, no point linking to it - "DocumentationGeneratorRegistry", # kinda obsolete - "Julia-Cheat-Sheet", # not a package -] -repos = filter!(x -> x["name"] ∉ excluded, repos) - -# sort alphabetical -sort!(repos, by = x -> x["name"]) - - -# Now we print the index.md content, using hardcoded header and footer. This -# is a quick & dirty hack; a full template system might be nicer in theory, -# but in practice it is good enough and dead simple. -print(""" -# JuliaDocs - -This is the landing page of the [JuliaDocs GitHub organisation](https://github.com/JuliaDocs/). -JuliaDocs is an umbrella organization for documentation-related packages and repositories -of [Julia programming language](https://julialang.org/) ecosystem. - -!!! note - If you are looking for the documentation for the core Julia language, you should head over - to - -JuliaDocs is the home for the following packages and repositories: - -## Packages - -```@eval -import Main: PackageDefinition, package_table_markdown -[ -""") -for r in repos - name = r["name"] - name_no_suffix = endswith(name, ".jl") ? name[1:end-3] : name - url = r["url"] - homepageUrl = r["homepageUrl"] - desc = r["description"] - branch = r["defaultBranchRef"]["name"] - - print(""" - PackageDefinition( - "$name_no_suffix", "$url", - "$desc", - [ - """) - if isempty(homepageUrl) - print(""" - "README" => "https://github.com/JuliaDocs/$name", - """) - else - # HACK / workaround for Highlights.jl - if endswith(homepageUrl, "/stable") - homepageUrl = replace(homepageUrl, "/stable" => "") - end - print(""" - "stable" => "$(joinpath(homepageUrl,"stable/"))", - "dev" => "$(joinpath(homepageUrl,"dev/"))", - """) - end - print(""" - ], - [ - "https://codecov.io/gh/JuliaDocs/$name/branch/$branch/graph/badge.svg" => "https://codecov.io/gh/JuliaDocs/$name", - ] - ), - """) -end - -print(""" -] |> package_table_markdown -``` - -## Other repositories - -* [Julia cheat sheet](https://cheatsheet.juliadocs.org/) ([repository](https://github.com/JuliaDocs/Julia-Cheat-Sheet)) - -""") \ No newline at end of file From 10ac5d4ac46a270b7d9e108726be8b600f718177 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 15:28:28 +0200 Subject: [PATCH 10/12] tweak --- make.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/make.jl b/make.jl index 65da149..7a808df 100644 --- a/make.jl +++ b/make.jl @@ -14,7 +14,6 @@ end function markdown(p::PackageDefinition) row = Any[] push!(row, Markdown.Link(p.name, p.url)) - push!(row, Markdown.parse(p.desc)) push!(row, [ Markdown.Link( [Markdown.Image("https://img.shields.io/badge/docs-$(ver)-blue.svg", "$(ver)")], @@ -29,13 +28,14 @@ function markdown(p::PackageDefinition) ) for (image, url) in p.buildbadges ]) + push!(row, Markdown.parse(p.desc)) end function package_table_markdown(packages) - titles = map(["Package", "Description", "Documentation", "Coverage"]) do s + titles = map(["Package", "Documentation", "Coverage", "Description"]) do s Markdown.Bold(s) end - table = Markdown.Table([titles], [:l, :l, :c, :c]) + table = Markdown.Table([titles], [:l, :c, :c, :l]) for p in packages push!(table.rows, markdown(p)) end From 0125572436614f5cc243e5a57325b329192cbb7f Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 21 Oct 2025 15:37:51 +0200 Subject: [PATCH 11/12] more --- make.jl | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/make.jl b/make.jl index 7a808df..6fc9627 100644 --- a/make.jl +++ b/make.jl @@ -65,7 +65,7 @@ function generate_package_table_markdown() packages = PackageDefinition[] for r in repos name = r["name"] - name_no_suffix = endswith(name, ".jl") ? name[1:(end - 3)] : name + name_no_suffix = replace(name, ".jl" => "") url = r["url"] homepageUrl = r["homepageUrl"] desc = r["description"] @@ -74,10 +74,6 @@ function generate_package_table_markdown() if isempty(homepageUrl) push!(docs, "README" => "https://github.com/JuliaDocs/$name") else - # HACK / workaround for Highlights.jl - if endswith(homepageUrl, "/stable") - homepageUrl = replace(homepageUrl, "/stable" => "") - end push!(docs, "stable" => joinpath(homepageUrl, "stable/")) push!(docs, "dev" => joinpath(homepageUrl, "dev/")) end From 5cd6506f824bdfc1de619c3134d40baf16b02f12 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 22 Oct 2025 10:34:51 +0200 Subject: [PATCH 12/12] tweaks --- make.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/make.jl b/make.jl index 6fc9627..52eca82 100644 --- a/make.jl +++ b/make.jl @@ -35,7 +35,7 @@ function package_table_markdown(packages) titles = map(["Package", "Documentation", "Coverage", "Description"]) do s Markdown.Bold(s) end - table = Markdown.Table([titles], [:l, :c, :c, :l]) + table = Markdown.Table([titles], [:l, :l, :l, :l]) for p in packages push!(table.rows, markdown(p)) end @@ -73,8 +73,11 @@ function generate_package_table_markdown() docs = Pair{String, String}[] if isempty(homepageUrl) push!(docs, "README" => "https://github.com/JuliaDocs/$name") + elseif contains(name, "Franklin") || contains(name, "PkgPage") + # special case + push!(docs, "www" => homepageUrl) else - push!(docs, "stable" => joinpath(homepageUrl, "stable/")) + push!(docs, "stable" => homepageUrl) push!(docs, "dev" => joinpath(homepageUrl, "dev/")) end