├── app ├── pages │ └── contribute.html ├── sass │ ├── pages │ │ ├── pages.sass │ │ ├── search.sass │ │ ├── activities.sass │ │ ├── owner.sass │ │ ├── categories.sass │ │ ├── home.sass │ │ └── release.sass │ ├── components │ │ ├── breadcrumbs.sass │ │ ├── label.sass │ │ ├── with-image.sass │ │ ├── site-footer.sass │ │ ├── tabs.sass │ │ ├── shard-info.sass │ │ ├── version-info.sass │ │ ├── shard-card.sass │ │ ├── metrics.sass │ │ └── site-header.sass │ ├── _vars.scss │ ├── main.sass │ ├── _typography.sass │ └── _fonts.css └── views │ ├── macros │ ├── icons.j2 │ ├── date.j2 │ ├── links.j2 │ └── shard-card.j2 │ ├── releases │ ├── show.html.j2 │ ├── releases.html.j2 │ ├── activity.html.j2 │ ├── _infobox.html.j2 │ ├── _layout.html.j2 │ ├── dependencies.html.j2 │ ├── _dependencies.html.j2 │ └── _header.html.j2 │ ├── search.html.j2 │ ├── categories │ ├── index.html.j2 │ └── show.html.j2 │ ├── includes │ ├── footer.html.j2 │ └── icons.svg │ ├── layout.html.j2 │ ├── owners │ ├── index.html.j2 │ └── show.html.j2 │ ├── pages │ ├── contribute.html.j2 │ └── imprint.html.j2 │ ├── stats.html.j2 │ └── home.html.j2 ├── CHECKS ├── .gitignore ├── public ├── assets │ └── fonts │ │ ├── roboto-v20-latin-300.eot │ │ ├── roboto-v20-latin-300.ttf │ │ ├── roboto-v20-latin-300.woff │ │ ├── roboto-v20-latin-500.eot │ │ ├── roboto-v20-latin-500.ttf │ │ ├── roboto-v20-latin-500.woff │ │ ├── roboto-v20-latin-700.eot │ │ ├── roboto-v20-latin-700.ttf │ │ ├── roboto-v20-latin-700.woff │ │ ├── roboto-mono-v7-latin-100.eot │ │ ├── roboto-mono-v7-latin-100.ttf │ │ ├── roboto-mono-v7-latin-300.eot │ │ ├── roboto-mono-v7-latin-300.ttf │ │ ├── roboto-mono-v7-latin-500.eot │ │ ├── roboto-mono-v7-latin-500.ttf │ │ ├── roboto-v20-latin-300.woff2 │ │ ├── roboto-v20-latin-500.woff2 │ │ ├── roboto-v20-latin-700.woff2 │ │ ├── roboto-v20-latin-italic.eot │ │ ├── roboto-v20-latin-italic.ttf │ │ ├── roboto-v20-latin-italic.woff │ │ ├── roboto-v20-latin-regular.eot │ │ ├── roboto-v20-latin-regular.ttf │ │ ├── roboto-mono-v7-latin-100.woff │ │ ├── roboto-mono-v7-latin-100.woff2 │ │ ├── roboto-mono-v7-latin-300.woff │ │ ├── roboto-mono-v7-latin-300.woff2 │ │ ├── roboto-mono-v7-latin-500.woff │ │ ├── roboto-mono-v7-latin-500.woff2 │ │ ├── roboto-v20-latin-300italic.eot │ │ ├── roboto-v20-latin-300italic.ttf │ │ ├── roboto-v20-latin-500italic.eot │ │ ├── roboto-v20-latin-500italic.ttf │ │ ├── roboto-v20-latin-700italic.eot │ │ ├── roboto-v20-latin-700italic.ttf │ │ ├── roboto-v20-latin-italic.woff2 │ │ ├── roboto-v20-latin-regular.woff │ │ ├── roboto-v20-latin-regular.woff2 │ │ ├── roboto-mono-v7-latin-regular.eot │ │ ├── roboto-mono-v7-latin-regular.ttf │ │ ├── roboto-mono-v7-latin-regular.woff │ │ ├── roboto-v20-latin-300italic.woff │ │ ├── roboto-v20-latin-300italic.woff2 │ │ ├── roboto-v20-latin-500italic.woff │ │ ├── roboto-v20-latin-500italic.woff2 │ │ ├── roboto-v20-latin-700italic.woff │ │ ├── roboto-v20-latin-700italic.woff2 │ │ └── roboto-mono-v7-latin-regular.woff2 └── prism.css ├── src ├── cli.cr ├── assets.cr ├── page │ ├── owner.cr │ ├── category.cr │ └── shard.cr ├── page.cr ├── raven.cr ├── crinja_lib.cr ├── crinja_models.cr ├── api.cr ├── app.cr └── db.cr ├── .travis ├── integration-spec.sh └── deploy.sh ├── Procfile ├── shard.yml ├── docker-compose.yml ├── LICENSE ├── Dockerfile ├── .travis.yml ├── shard.lock └── Makefile /app/pages/contribute.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contribute 3 | --- 4 | -------------------------------------------------------------------------------- /app/sass/pages/pages.sass: -------------------------------------------------------------------------------- 1 | .containers.page 2 | max-width: 60rem 3 | -------------------------------------------------------------------------------- /CHECKS: -------------------------------------------------------------------------------- 1 | WAIT=1 2 | ATTEMPTS=3 3 | 4 | /deploy_status OK 5 | /shards/crinja crinja 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /docs/ 2 | /lib/ 3 | /bin/ 4 | /.shards/ 5 | *.dwarf 6 | .env 7 | /catalog/* 8 | /public/assets/css/style.css 9 | -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-100.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-100.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-100.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-300.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-300.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-500.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-500.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-italic.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-italic.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-italic.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-regular.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-regular.ttf -------------------------------------------------------------------------------- /src/cli.cr: -------------------------------------------------------------------------------- 1 | require "./app" 2 | 3 | case command = ARGV[0]? 4 | when "assets:precompile" 5 | assets_precompile 6 | else 7 | Kemal.run 8 | end 9 | -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-100.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-100.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-100.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-100.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-300.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-300.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-500.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-500.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300italic.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300italic.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500italic.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500italic.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700italic.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700italic.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-italic.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-regular.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-regular.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-regular.eot -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-regular.ttf -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-regular.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300italic.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-300italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-300italic.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500italic.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-500italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-500italic.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700italic.woff -------------------------------------------------------------------------------- /public/assets/fonts/roboto-v20-latin-700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-v20-latin-700italic.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/roboto-mono-v7-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shardbox/shardbox-web/HEAD/public/assets/fonts/roboto-mono-v7-latin-regular.woff2 -------------------------------------------------------------------------------- /app/views/macros/icons.j2: -------------------------------------------------------------------------------- 1 | {% macro icon(name) %} 2 | 5 | {% endmacro %} 6 | -------------------------------------------------------------------------------- /.travis/integration-spec.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | set -e 3 | 4 | make bin/app 5 | export DATABASE_URL=$TEST_DATABASE_URL 6 | bin/app & 7 | sleep 1 8 | curl http://localhost:3000/ -v > /dev/null 9 | -------------------------------------------------------------------------------- /app/sass/components/breadcrumbs.sass: -------------------------------------------------------------------------------- 1 | .breadcrumbs 2 | .breadcrumb 3 | text-decoration: none 4 | color: var(--color-lighter) 5 | text-transform: uppercase 6 | 7 | ::after 8 | content: " ›" 9 | -------------------------------------------------------------------------------- /.travis/deploy.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | set -e 3 | echo -e "$SSH_PRIVATE_KEY" > private_ssh_key 4 | chmod 0700 private_ssh_key 5 | 6 | GIT_SSH_COMMAND='ssh -i private_ssh_key' git push ssh://dokku@shardbox.org/shardbox master 7 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: env SENTRY_DSN_VAR=SENTRY_DSN_WEB KEMAL_ENV=production bin/app --port $PORT 2 | worker: env SENTRY_DSN_VAR=SENTRY_DSN_WORKER bin/worker loop 3 | release: dbmate --no-dump-schema --migrations-dir lib/shardbox-core/db/migrations up 4 | -------------------------------------------------------------------------------- /app/sass/components/label.sass: -------------------------------------------------------------------------------- 1 | .label 2 | color: #333 3 | padding: .1em .2em 4 | border-radius: .3em 5 | font-size: 90% 6 | font-weight: 500 7 | &__archived 8 | background-color: var(--color-archived) 9 | &__sync_failed 10 | background-color: var(--color-sync-failed) 11 | -------------------------------------------------------------------------------- /app/sass/pages/search.sass: -------------------------------------------------------------------------------- 1 | 2 | .search-results 3 | > .shard-card 4 | display: grid 5 | grid-template-columns: 1fr min-content 6 | grid-template-areas: "categories repo-info" "name repo-info" "description description" "shard-info shard-info" 7 | & + & 8 | margin-top: 1rem 9 | -------------------------------------------------------------------------------- /app/sass/pages/activities.sass: -------------------------------------------------------------------------------- 1 | .activity-set 2 | margin: .5em 0 3 | 4 | + .activity-set::before 5 | content: "" 6 | width: 4em 7 | border-top: 3px dotted #ccc 8 | display: block 9 | margin-bottom: .5em 10 | 11 | .activity:not(:first-child) 12 | margin-left: 2rem 13 | color: #555 14 | -------------------------------------------------------------------------------- /app/views/macros/date.j2: -------------------------------------------------------------------------------- 1 | {% macro release_date(released_at) -%} 2 | {{ time_date(released_at, title="Released on {{date}}") }} 3 | {%- endmacro %} 4 | 5 | {% macro time_date(date) -%} 6 | {%- endmacro %} 8 | -------------------------------------------------------------------------------- /app/sass/_vars.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --color-body: #222; 3 | --color-link: #20b; 4 | --color-link-hover: #30a; 5 | --color-light: #555; 6 | --color-light-link: #888; 7 | --color-light-hover: #444; 8 | --color-lighter: #888; 9 | --color-archived: #ddccbb; 10 | --color-sync-failed: #ffeecc; 11 | --color-code-background: #fdf6e3; 12 | --color-code: #657b83; 13 | --color-latest: hsl(116, 100%, 33%); 14 | --color-yanked: hsl(46, 100%, 33%); 15 | } 16 | -------------------------------------------------------------------------------- /app/sass/components/with-image.sass: -------------------------------------------------------------------------------- 1 | .with-image 2 | display: grid 3 | grid-template-columns: max-content max-content 4 | 5 | > img 6 | grid-row: 1/3 7 | grid-column: 1 8 | align-self: center 9 | margin-right: .6em 10 | border-radius: 50% 11 | width: 2em 12 | 13 | > :not(img) 14 | grid-column: 2 15 | line-height: 1.3 16 | align-self: flex-end 17 | margin: 0 18 | 19 | + :not(img) 20 | align-self: flex-start 21 | -------------------------------------------------------------------------------- /app/sass/components/site-footer.sass: -------------------------------------------------------------------------------- 1 | .site-footer 2 | display: flex 3 | background: #f3f3f3 4 | padding: 1rem 3rem 5 | border-top: 2px solid #ccc 6 | 7 | > * 8 | flex-basis: 33% 9 | flex-grow: 1 10 | margin: 1rem 11 | 12 | > h3 13 | font-weight: 300 14 | font-size: 1rem 15 | 16 | .links 17 | display: flex 18 | flex-direction: column 19 | align-items: start 20 | --color-link: var(--color-light-link) 21 | --color-link-hover: var(--color-light-hover) 22 | 23 | > a 24 | margin: .1em 0 25 | -------------------------------------------------------------------------------- /app/sass/components/tabs.sass: -------------------------------------------------------------------------------- 1 | .tabs 2 | display: flex 3 | flex-direction: row 4 | 5 | > a 6 | padding: .4em .8em .2em 7 | color: var(--color-body) 8 | background: #eee 9 | margin-right: 0px 10 | border-top: 4px solid #eee 11 | border-bottom: 1px solid #ddd 12 | font-size: 110% 13 | 14 | + a 15 | border-left: 1px solid #ddd 16 | 17 | &.current 18 | font-weight: bold 19 | background: white 20 | border-top-color: #ddd 21 | border-bottom-color: transparent 22 | 23 | &:hover, &:focus 24 | border-top-color: #ddd 25 | -------------------------------------------------------------------------------- /app/sass/pages/owner.sass: -------------------------------------------------------------------------------- 1 | .owner-title.with-image 2 | margin-top: 1rem 3 | margin-bottom: 2rem 4 | > img 5 | width: 10em 6 | margin-right: 1em 7 | 8 | .metrics--owner 9 | background-color: #fff 10 | border-radius: .75em 11 | max-width: 60em 12 | padding: 1em 13 | margin: auto 14 | 15 | // owners index 16 | .owner-item > .metrics 17 | padding: 0 18 | 19 | .owner-item 20 | @extend .category-item 21 | padding: .5em 22 | 23 | > .owner 24 | margin: .3em .5em .6em 25 | 26 | .owner_slug 27 | font-size: 90% 28 | color: var(--color-light) 29 | letter-spacing: .02em 30 | -------------------------------------------------------------------------------- /app/sass/components/shard-info.sass: -------------------------------------------------------------------------------- 1 | .shard-infos, .shard-info 2 | color: var(--color-light) 3 | font-weight: 300 4 | .shard-info 5 | margin: 0 6 | 7 | > * + * 8 | margin-left: .6em 9 | &::before 10 | content: "• " 11 | margin-left: -.5em 12 | position: absolute 13 | &--release > * + * 14 | &::before 15 | line-height: 1.7 16 | 17 | &--release 18 | .datapoint--version 19 | font-size: 1.5rem 20 | 21 | &--list 22 | .datapoint--dependencies 23 | width: 100% 24 | 25 | + .datapoint 26 | margin-left: 0 27 | &::before 28 | display: none 29 | -------------------------------------------------------------------------------- /app/sass/main.sass: -------------------------------------------------------------------------------- 1 | @import "vars" 2 | @import "./fonts" 3 | @import "typography" 4 | @import "components/breadcrumbs" 5 | @import "components/label" 6 | @import "components/metrics" 7 | @import "components/shard-card" 8 | @import "components/shard-info" 9 | @import "components/site-header" 10 | @import "components/site-footer" 11 | @import "components/tabs" 12 | @import "components/version-info" 13 | @import "components/with-image" 14 | @import "pages/activities" 15 | @import "pages/categories" 16 | @import "pages/home" 17 | @import "pages/owner" 18 | @import "pages/pages" 19 | @import "pages/release" 20 | @import "pages/search" 21 | -------------------------------------------------------------------------------- /src/assets.cr: -------------------------------------------------------------------------------- 1 | require "sass" 2 | 3 | PUBLIC_PATH = Path.posix("public") 4 | CSS_PATH = Path.posix("/", "assets", "css") 5 | STYLE_PATH = CSS_PATH.join("style.css") 6 | 7 | unless File.readable?(PUBLIC_PATH.join(STYLE_PATH)) 8 | get STYLE_PATH.to_s do |context| 9 | context.response.headers["Content-Type"] = "text/css" 10 | compile_sass 11 | end 12 | end 13 | 14 | def compile_sass 15 | Sass.compile_file("app/sass/main.sass", is_indented_syntax_src: true, include_path: "app/sass/") 16 | end 17 | 18 | def assets_precompile 19 | Dir.mkdir_p(PUBLIC_PATH.join(CSS_PATH)) 20 | File.write(PUBLIC_PATH.join(STYLE_PATH), compile_sass) 21 | end 22 | -------------------------------------------------------------------------------- /app/sass/components/version-info.sass: -------------------------------------------------------------------------------- 1 | .version-info 2 | display: flex 3 | align-items: center 4 | 5 | .shard-card & 6 | align-items: baseline 7 | 8 | > .icon 9 | font-size: 80% 10 | align-self: center 11 | margin-top: 0 12 | 13 | > .version 14 | margin-left: .2rem 15 | margin-right: .3rem 16 | 17 | > .badge--latest, 18 | > .badge--yanked 19 | @extend .badge 20 | margin-left: .2rem 21 | margin-right: .2rem 22 | font-size: 70% 23 | 24 | > .badge--latest 25 | color: var(--color-latest) 26 | > .badge--yanked 27 | color: var(--color-yanked) 28 | 29 | > .released_at, 30 | > .created_at 31 | margin-left: .3rem 32 | font-size: 80% 33 | -------------------------------------------------------------------------------- /app/views/releases/show.html.j2: -------------------------------------------------------------------------------- 1 | {% extends "releases/_layout.html.j2" %} 2 | 3 | {% block page_title %}{{ shard.display_name }}@{{ release.version }} on Shardbox{% endblock %} 4 | 5 | {% block release_main %} 6 | {% if readme %} 7 |
You can add this shard as a dependency by adding the following lines
13 | to the dependencies section in your shard.yml:
{{ shard.name }}:
15 | {{ repo.ref.resolver }}: {{ repo.ref.url }}
16 | version: ~> {{ release.version }}
17 | "{{ query }}"There were no results for your search ;-(
20 |Maybe you want to browse the categories instead?
21 | {% endfor %} 22 |{{ category.description | markdown_inline }}
19 | {% endif %} 20 | 21 |
13 | Help wanted!
14 | You're welcome to help improve shardbox by categorizing shards, updating
15 | categories and contributing to the shardbox app.
16 |
20 | The catalog is managed at 21 | 22 | {{ icon("github") }} 23 | shardbox/catalog 24 | . 25 | Feel free to send pull requests against this repo. 26 |
27 |28 | Changes will be imported into the shardbox database. 29 | 30 | Instructions on how to edit the catalog are available in the 31 | README.md. 32 |
33 |34 | Good places to start: 35 |
36 |50 | The shardbox app is written in Crystal and consist of two shards: 51 |
52 |{{ owner.description | markdown_inline }}
30 | {% endif %} 31 | 32 | {% if owner.website_url %} 33 |34 | {{ icon("globe") }} {{ nice_url(owner.website_url) }} 35 |
36 | {% endif %} 37 || Total shards | {{ stats.shards_count }} | 15 |
|---|---|
| Total repos | {{ stats.repos_count }} | 16 |
| Dependencies | {{ stats.dependencies_count }} | 17 |
| Dev dependencies | {{ stats.dev_dependencies_count }} | 18 |
| Uncategorized shards | {{ stats.uncategorized_count }} 19 | {{ percent(stats.uncategorized_count / stats.shards_count) }} | 20 |
| Resolvers |
27 |
|
33 | |||
|---|---|---|---|---|
| Licenses |
35 |
|
41 | |||
shard.yml Keys |
43 |
44 |
|
50 |
| Crystal Versions |
53 |
|
59 |
|---|
{{ shard.name }}: 3 | {{ repo.ref.resolver }}: {{ repo.ref.url }} 4 | {% if release.version != "HEAD" %}version: ~> {{ release.version }}{% endif %}5 | 6 | 39 | 40 |
13 | Information in accordance with §5 TMG 14 | and responsible for contents: 15 |
16 | 17 | Johannes Werner Müller28 |
We are responsible for our own content in accordance with § 7 Abs. 1 TMG. 29 | According to §§ 8 to 10 TMG, however, we as a service provider are not obliged 30 | to monitor transmitted or stored external information or to investigate 31 | circumstances that indicate an illegal activity. 32 | Thus the removal or blocking of the use of information under the general 33 | laws remain unaffected. 34 | A liability in this regard, however, is only possible from the date of 35 | knowledge of a specific infringement. Upon notification of appropriate 36 | violations, we will remove this content immediately. 37 |
38 | 39 |41 | Our offer contains links to external websites on whose content we have 42 | no influence. Therefore we can not assume any liability for these external 43 | contents. The content of the linked pages is always the responsibility 44 | of the respective provider or operator of the pages. The linked pages 45 | were checked the time of the link to possible leftover. Illegal content 46 | was not recognizable at the time of linking. A permanent content control 47 | of the linked pages is, however, unreasonable without concrete evidence 48 | of an infringement. Upon notification of violations, we will remove such 49 | links immediately. 50 |
51 | 52 |54 | The pages of the driver are in content and works in the pages include 55 | the copyright. The duplication, processing, distribution and any kind of 56 | exploitation outside the limits of copyright require the written consent 57 | of the respective author or creator. Downloads and copies of this site 58 | are for private, non-commercial use only. As far as the contents on this 59 | side were not created by the operator, the copyrights of third parties 60 | are considered. In particular contents of third parties are marked as 61 | such. If you want to be wary of a breach of original rights, please 62 | notify us accordingly. Upon notification of violations, we will thus 63 | remove content immediately. 64 |
65 |13 | Listing {{ stats.shards_count }} shards 14 | with {{ stats.dependencies_count }} dependencies. 15 |
16 | 17 |18 | {% if stats.uncategorized_count > 0 %} 19 | {{ stats.uncategorized_count }} are uncategorized. 20 | {{ icon("tools") }} Help categorize them 21 | {% else %} 22 | You can help adding and improving the catalog. 23 | {{ icon("tools") }} Contribute 24 | {% endif %} 25 |
26 |{{ name }}: {{ version }}{{ dep.dependency.spec }}
39 | {{ dep.dependency.spec }}
77 | {{ name }}: {{ version }}{{ dep.dependency.spec }}
27 | {{ dep.dependency.spec }}
59 |