11ty / eleventy

A simpler site generator. Transforms a directory of templates (of varying types) into HTML.
https://www.11ty.dev/
MIT License
16.91k stars 491 forks source link

Package diagram for Eleventy #1464

Open Ryuno-Ki opened 3 years ago

Ryuno-Ki commented 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

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.

binyamin commented 3 years ago

@Ryuno-Ki should this be a GitHub discussion thread instead?

Ryuno-Ki commented 3 years ago

Hm, it is already a set of issues and a GitHub project. Not sure.

binyamin commented 3 years ago

okay, you win 😛