Open Ryuno-Ki opened 3 years ago
Looking towards a v1.0 release I was wondering, how the codebase might look like.
So I wrote a script, that walks through the whole codebase (starting at cmd.js and following require()s): https://github.com/11ty/eleventy/compare/878425b035e082e152c0e53963aa6788c3fcb0db...Ryuno-Ki:chore/trace-imports-with-mermaid
cmd.js
require()
The output is a mermaid file:
classDiagram class CMD CMD <|-- ELEVENTYERRORHANDLER CMD <|-- ELEVENTY CMD <|-- ELEVENTYCOMMANDCHECK class ELEVENTYERRORHANDLER ELEVENTYERRORHANDLER <|-- ELEVENTYERRORUTIL class ELEVENTY ELEVENTY <|-- TEMPLATEPATH ELEVENTY <|-- TEMPLATEDATA ELEVENTY <|-- TEMPLATECONTENT ELEVENTY <|-- TEMPLATEWRITER ELEVENTY <|-- ELEVENTYEXTENSIONMAP ELEVENTY <|-- ELEVENTYERRORHANDLER ELEVENTY <|-- ELEVENTYSERVE ELEVENTY <|-- ELEVENTYWATCH ELEVENTY <|-- ELEVENTYWATCHTARGETS ELEVENTY <|-- ELEVENTYFILES ELEVENTY <|-- TEMPLATECACHE ELEVENTY <|-- PLURALIZE ELEVENTY <|-- DELETEREQUIRECACHE ELEVENTY <|-- CONFIG ELEVENTY <|-- BENCHMARKMANAGER class ELEVENTYCOMMANDCHECK ELEVENTYCOMMANDCHECK <|-- ELEVENTYBASEERROR class ELEVENTYERRORUTIL ELEVENTYERRORUTIL <|-- TEMPLATECONTENTPREMATUREUSEERROR class TEMPLATEPATH class TEMPLATEDATA TEMPLATEDATA <|-- MERGE TEMPLATEDATA <|-- TEMPLATERENDER TEMPLATEDATA <|-- TEMPLATEPATH TEMPLATEDATA <|-- TEMPLATEGLOB TEMPLATEDATA <|-- ELEVENTYEXTENSIONMAP TEMPLATEDATA <|-- ELEVENTYBASEERROR TEMPLATEDATA <|-- CONFIG TEMPLATEDATA <|-- DELETEREQUIRECACHE TEMPLATEDATA <|-- BENCHMARKMANAGER TEMPLATEDATA <|-- BENCHMARKMANAGER class TEMPLATECONTENT TEMPLATECONTENT <|-- ELEVENTYEXTENSIONMAP TEMPLATECONTENT <|-- TEMPLATEDATA TEMPLATECONTENT <|-- TEMPLATERENDER TEMPLATECONTENT <|-- TEMPLATEPATH TEMPLATECONTENT <|-- ELEVENTYBASEERROR TEMPLATECONTENT <|-- ELEVENTYERRORUTIL TEMPLATECONTENT <|-- CONFIG TEMPLATECONTENT <|-- BENCHMARKMANAGER class TEMPLATEWRITER TEMPLATEWRITER <|-- TEMPLATE TEMPLATEWRITER <|-- TEMPLATEPATH TEMPLATEWRITER <|-- TEMPLATEMAP TEMPLATEWRITER <|-- ELEVENTYFILES TEMPLATEWRITER <|-- ELEVENTYEXTENSIONMAP TEMPLATEWRITER <|-- ELEVENTYBASEERROR TEMPLATEWRITER <|-- ELEVENTYERRORHANDLER TEMPLATEWRITER <|-- ELEVENTYERRORUTIL TEMPLATEWRITER <|-- CONFIG class ELEVENTYEXTENSIONMAP ELEVENTYEXTENSIONMAP <|-- TEMPLATEENGINEMANAGER ELEVENTYEXTENSIONMAP <|-- TEMPLATEPATH ELEVENTYEXTENSIONMAP <|-- CONFIG class ELEVENTYSERVE ELEVENTYSERVE <|-- TEMPLATEPATH ELEVENTYSERVE <|-- CONFIG class ELEVENTYWATCH ELEVENTYWATCH <|-- TEMPLATEPATH class ELEVENTYWATCHTARGETS ELEVENTYWATCHTARGETS <|-- TEMPLATEPATH ELEVENTYWATCHTARGETS <|-- DELETEREQUIRECACHE class ELEVENTYFILES ELEVENTYFILES <|-- ELEVENTYEXTENSIONMAP ELEVENTYFILES <|-- TEMPLATEDATA ELEVENTYFILES <|-- TEMPLATEGLOB ELEVENTYFILES <|-- TEMPLATEPATH ELEVENTYFILES <|-- TEMPLATEPASSTHROUGHMANAGER ELEVENTYFILES <|-- CONFIG ELEVENTYFILES <|-- BENCHMARKMANAGER class TEMPLATECACHE class PLURALIZE class DELETEREQUIRECACHE class CONFIG CONFIG <|-- TEMPLATECONFIG class BENCHMARKMANAGER BENCHMARKMANAGER <|-- BENCHMARKGROUP class ELEVENTYBASEERROR class TEMPLATECONTENTPREMATUREUSEERROR TEMPLATECONTENTPREMATUREUSEERROR <|-- ELEVENTYBASEERROR class MERGE class TEMPLATERENDER TEMPLATERENDER <|-- TEMPLATEPATH TEMPLATERENDER <|-- ELEVENTYBASEERROR TEMPLATERENDER <|-- ELEVENTYEXTENSIONMAP TEMPLATERENDER <|-- CONFIG class TEMPLATEGLOB TEMPLATEGLOB <|-- TEMPLATEPATH class TEMPLATE TEMPLATE <|-- TEMPLATEDATA TEMPLATE <|-- TEMPLATECONTENT TEMPLATE <|-- TEMPLATEPATH TEMPLATE <|-- TEMPLATEPERMALINK TEMPLATE <|-- TEMPLATEPERMALINKNOWRITE TEMPLATE <|-- TEMPLATELAYOUT TEMPLATE <|-- TEMPLATEFILESLUG TEMPLATE <|-- COMPUTEDDATA TEMPLATE <|-- PAGINATION TEMPLATE <|-- TEMPLATECONTENTPREMATUREUSEERROR TEMPLATE <|-- BENCHMARKMANAGER class TEMPLATEMAP TEMPLATEMAP <|-- TEMPLATECOLLECTION TEMPLATEMAP <|-- ELEVENTYERRORUTIL TEMPLATEMAP <|-- USINGCIRCULARTEMPLATECONTENTREFERENCEERROR TEMPLATEMAP <|-- ELEVENTYCONFIG TEMPLATEMAP <|-- ELEVENTYBASEERROR class TEMPLATEENGINEMANAGER TEMPLATEENGINEMANAGER <|-- CONFIG class TEMPLATEPASSTHROUGHMANAGER TEMPLATEPASSTHROUGHMANAGER <|-- CONFIG TEMPLATEPASSTHROUGHMANAGER <|-- ELEVENTYEXTENSIONMAP TEMPLATEPASSTHROUGHMANAGER <|-- ELEVENTYBASEERROR TEMPLATEPASSTHROUGHMANAGER <|-- TEMPLATEPASSTHROUGH TEMPLATEPASSTHROUGHMANAGER <|-- TEMPLATEPATH class TEMPLATECONFIG TEMPLATECONFIG <|-- TEMPLATEPATH TEMPLATECONFIG <|-- ELEVENTYBASEERROR TEMPLATECONFIG <|-- ELEVENTYCONFIG TEMPLATECONFIG <|-- DELETEREQUIRECACHE TEMPLATECONFIG <|-- DEFAULTCONFIG class BENCHMARKGROUP BENCHMARKGROUP <|-- BENCHMARK class TEMPLATEPERMALINK TEMPLATEPERMALINK <|-- TEMPLATEPATH class TEMPLATEPERMALINKNOWRITE class TEMPLATELAYOUT TEMPLATELAYOUT <|-- TEMPLATELAYOUTPATHRESOLVER TEMPLATELAYOUT <|-- TEMPLATECONTENT TEMPLATELAYOUT <|-- TEMPLATEDATA TEMPLATELAYOUT <|-- TEMPLATEPATH TEMPLATELAYOUT <|-- TEMPLATECACHE TEMPLATELAYOUT <|-- CONFIG class TEMPLATEFILESLUG TEMPLATEFILESLUG <|-- TEMPLATEPATH class COMPUTEDDATA COMPUTEDDATA <|-- COMPUTEDDATAQUEUE COMPUTEDDATA <|-- COMPUTEDDATATEMPLATESTRING COMPUTEDDATA <|-- COMPUTEDDATAPROXY class PAGINATION PAGINATION <|-- ELEVENTYBASEERROR PAGINATION <|-- CONFIG class TEMPLATECOLLECTION TEMPLATECOLLECTION <|-- SORTABLE TEMPLATECOLLECTION <|-- TEMPLATEPATH class USINGCIRCULARTEMPLATECONTENTREFERENCEERROR USINGCIRCULARTEMPLATECONTENTREFERENCEERROR <|-- ELEVENTYBASEERROR class ELEVENTYCONFIG ELEVENTYCONFIG <|-- USERCONFIG class TEMPLATEPASSTHROUGH TEMPLATEPASSTHROUGH <|-- TEMPLATEPATH TEMPLATEPASSTHROUGH <|-- ELEVENTYBASEERROR TEMPLATEPASSTHROUGH <|-- BENCHMARKMANAGER class BENCHMARK class TEMPLATELAYOUTPATHRESOLVER TEMPLATELAYOUTPATHRESOLVER <|-- CONFIG TEMPLATELAYOUTPATHRESOLVER <|-- TEMPLATEPATH class COMPUTEDDATAQUEUE class COMPUTEDDATATEMPLATESTRING class COMPUTEDDATAPROXY class SORTABLE SORTABLE <|-- CAPITALIZE class USERCONFIG USERCONFIG <|-- ELEVENTYBASEERROR USERCONFIG <|-- BENCHMARKMANAGER USERCONFIG <|-- BENCHMARKMANAGER class CAPITALIZE
You can past that into the Live editor: https://mermaid-js.github.io/mermaid-live-editor/
The result looks like this: eleventy-dep-graph.svg.zip (GitHub does not allow SVG directly - and you can barely read a PNG).
I'd like to have this issue discuss about how to better structure the project.
@Ryuno-Ki should this be a GitHub discussion thread instead?
Hm, it is already a set of issues and a GitHub project. Not sure.
okay, you win 😛
Looking towards a v1.0 release I was wondering, how the codebase might look like.
So I wrote a script, that walks through the whole codebase (starting at
cmd.js
and followingrequire()
s): https://github.com/11ty/eleventy/compare/878425b035e082e152c0e53963aa6788c3fcb0db...Ryuno-Ki:chore/trace-imports-with-mermaidThe output is a mermaid file:
You can past that into the Live editor: https://mermaid-js.github.io/mermaid-live-editor/
The result looks like this: eleventy-dep-graph.svg.zip (GitHub does not allow SVG directly - and you can barely read a PNG).
I'd like to have this issue discuss about how to better structure the project.