# \[ANN\] PkgDashboards

**URL:** <https://discourse.julialang.org/t/ann-pkgdashboards/34302>\
**Category:** Package Announcements\
**Created:** [February 7, 2020, 2:31pm UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302 "2020-02-07T14:31:13Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 7, 2020, 2:31pm UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/1 "2020-02-07T14:31:13Z")

</div>

[PkgDashboards.jl](https://github.com/baggepinnen/PkgDashboards.jl) helps you create a markdown page or html page with all your badges from travis, Codecov, PkgEval, commit activity, stars and stars over time graphs.

The exported functions are

- `dashboard(target_users; output=:markdown, autoopen=true, stargazers=false, githubci=false, stars=true, activity=false)`
- `pkgdashboard(packagenames; kwargs...)`

### Arguments:

- `target_users`: a string or a vector of strings with github usernames or org names
- `output`: `:markdown` or `:html`
- `autoopen`: indicate whether or not the result is opened in editor or browser
- `githubci`: Also add a Badge for github CI
- `activity`: display number of commits per month
- `stars`: Add github stars badge
- `stargazers`: include a plot with github stars over time

## Usage:

```julia
dashboard("github_username")
dashboard(["username1", "username2"])
dashboard("github_username", output= :html, autoopen=true)

```

## Result

`dashboard("baggepinnen")`:

| URL | Build status | PkgEval | CodeCov |
| --- | --- | --- | --- |
| [baggepinnen/TotalLeastSquares](https://github.com/baggepinnen/TotalLeastSquares.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/TotalLeastSquares.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/TotalLeastSquares.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/T/TotalLeastSquares.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/TotalLeastSquares.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/TotalLeastSquares.jl) |
| [baggepinnen/DynamicMovementPrimitives](https://github.com/baggepinnen/DynamicMovementPrimitives.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/DynamicMovementPrimitives.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/DynamicMovementPrimitives.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/D/DynamicMovementPrimitives.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/DynamicMovementPrimitives.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/DynamicMovementPrimitives.jl) |
| [baggepinnen/Hyperopt](https://github.com/baggepinnen/Hyperopt.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/Hyperopt.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/Hyperopt.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/H/Hyperopt.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/Hyperopt.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/Hyperopt.jl) |
| [baggepinnen/DifferentialDynamicProgramming](https://github.com/baggepinnen/DifferentialDynamicProgramming.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/DifferentialDynamicProgramming.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/DifferentialDynamicProgramming.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/D/DifferentialDynamicProgramming.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/DifferentialDynamicProgramming.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/DifferentialDynamicProgramming.jl) |
| [baggepinnen/BlobTracking](https://github.com/baggepinnen/BlobTracking.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/BlobTracking.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/BlobTracking.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/B/BlobTracking.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/BlobTracking.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/BlobTracking.jl) |
| [baggepinnen/AutomaticDocstrings](https://github.com/baggepinnen/AutomaticDocstrings.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/AutomaticDocstrings.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/AutomaticDocstrings.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/A/AutomaticDocstrings.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/AutomaticDocstrings.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/AutomaticDocstrings.jl) |
| [baggepinnen/LengthChannels](https://github.com/baggepinnen/LengthChannels.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/LengthChannels.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/LengthChannels.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/L/LengthChannels.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/LengthChannels.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/LengthChannels.jl) |
| [baggepinnen/SingularSpectrumAnalysis](https://github.com/baggepinnen/SingularSpectrumAnalysis.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/SingularSpectrumAnalysis.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/SingularSpectrumAnalysis.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/S/SingularSpectrumAnalysis.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/SingularSpectrumAnalysis.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/SingularSpectrumAnalysis.jl) |
| [baggepinnen/BasisFunctionExpansions](https://github.com/baggepinnen/BasisFunctionExpansions.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/BasisFunctionExpansions.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/BasisFunctionExpansions.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/B/BasisFunctionExpansions.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/BasisFunctionExpansions.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/BasisFunctionExpansions.jl) |
| [baggepinnen/Robotlib](https://github.com/baggepinnen/Robotlib.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/Robotlib.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/Robotlib.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/R/Robotlib.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/Robotlib.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/Robotlib.jl) |
| [baggepinnen/MonteCarloMeasurements](https://github.com/baggepinnen/MonteCarloMeasurements.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/MonteCarloMeasurements.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/MonteCarloMeasurements.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/M/MonteCarloMeasurements.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/MonteCarloMeasurements.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/MonteCarloMeasurements.jl) |
| [baggepinnen/ThreadTools](https://github.com/baggepinnen/ThreadTools.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/ThreadTools.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/ThreadTools.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/T/ThreadTools.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/ThreadTools.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/ThreadTools.jl) |
| [baggepinnen/LinearTimeVaryingModelsBase](https://github.com/baggepinnen/LinearTimeVaryingModelsBase.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/LinearTimeVaryingModelsBase.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/LinearTimeVaryingModelsBase.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/L/LinearTimeVaryingModelsBase.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/LinearTimeVaryingModelsBase.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/LinearTimeVaryingModelsBase.jl) |
| [baggepinnen/DiskDataProviders](https://github.com/baggepinnen/DiskDataProviders.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/DiskDataProviders.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/DiskDataProviders.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/D/DiskDataProviders.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/DiskDataProviders.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/DiskDataProviders.jl) |
| [baggepinnen/LPVSpectral](https://github.com/baggepinnen/LPVSpectral.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/LPVSpectral.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/LPVSpectral.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/L/LPVSpectral.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/LPVSpectral.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/LPVSpectral.jl) |
| [baggepinnen/ControlSystemIdentification](https://github.com/baggepinnen/ControlSystemIdentification.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/ControlSystemIdentification.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/ControlSystemIdentification.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/C/ControlSystemIdentification.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/ControlSystemIdentification.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/ControlSystemIdentification.jl) |
| [baggepinnen/LowLevelParticleFilters](https://github.com/baggepinnen/LowLevelParticleFilters.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/LowLevelParticleFilters.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/LowLevelParticleFilters.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/L/LowLevelParticleFilters.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/LowLevelParticleFilters.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/LowLevelParticleFilters.jl) |
| [baggepinnen/PriorityChannels](https://github.com/baggepinnen/PriorityChannels.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/PriorityChannels.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/PriorityChannels.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/P/PriorityChannels.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/PriorityChannels.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/PriorityChannels.jl) |
| [baggepinnen/LazyWAVFiles](https://github.com/baggepinnen/LazyWAVFiles.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/LazyWAVFiles.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/LazyWAVFiles.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/L/LazyWAVFiles.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/LazyWAVFiles.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/LazyWAVFiles.jl) |
| [baggepinnen/AdaptiveFilters](https://github.com/baggepinnen/AdaptiveFilters.jl.git) | [![Build Status](https://travis-ci.org/baggepinnen/AdaptiveFilters.jl.svg?branch=master)](https://travis-ci.org/baggepinnen/AdaptiveFilters.jl) | [![PkgEval](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/A/AdaptiveFilters.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | [![codecov](https://codecov.io/gh/baggepinnen/AdaptiveFilters.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/baggepinnen/AdaptiveFilters.jl) |

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 8, 2020, 3:18am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/2 "2020-02-08T03:18:28Z")

</div>

Thank you! I wanted something like this. I’ve been using ugly oneliner [1] which is not really easy to use.

By the way, it’d be nice if `dashboard` returns a `PkgDashboard` object that implements 3-arg `show` with `text/markdown`, `text/plain`, and `text/html`. It would then be opened automatically in user’s preferred display; e.g., ElectronDisplay.jl: [[ANN] ElectronDisplay.jl v1.0.0 released](https://discourse.julialang.org/t/ann-electrondisplay-jl-v1-0-0-released/34234)

Also, is it possible to link to `https://github.com/JuliaCI/NanosoldierReports/tree/master/pkgeval/by_date/$YYYY-$MM/$DD/logs/$packagename` from the PkgEval badge? I guess figuring out the correct day is a bit tricky, though. (Maybe just use the latest day that does not return 404?)

[1] `cd ~/.julia/registries/General; grep --files-with-matches '\btkf\b' */*/Package.toml | sort | xargs dirname | sed -E 's#(.*)/(.*)#| [![PkgEval \2](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/\0.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | \2 |#'`

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [February 8, 2020, 3:52am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/3 "2020-02-08T03:52:51Z")

</div>

> [@tkf](#):
>
> Also, is it possible to link to `https://github.com/JuliaCI/NanosoldierReports/tree/master/pkgeval/by_date/$YYYY-$MM/$DD/logs/$packagename` from the PkgEval badge? I guess figuring out the correct day is a bit tricky, though. (Maybe just use the latest day that does not return 404?)

The correct approach is to use the `latest` symlink that points to the latest day: [https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by\_date/latest](https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by_date/latest)

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 8, 2020, 4:09am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/4 "2020-02-08T04:09:39Z")

</div>

Thanks, that’s good to know. Is there an easy way to resolve symlink and open the relevant page? It looks like GitHub’s web page do not resolve/redirect symlink: e.g., [https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by\_date/latest/logs/ThreadTools](https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by_date/latest/logs/ThreadTools) is 404

Maybe the easiest approach is to just fetch the “raw” content [https://raw.githubusercontent.com/JuliaCI/NanosoldierReports/master/pkgeval/by\_date/latest](https://raw.githubusercontent.com/JuliaCI/NanosoldierReports/master/pkgeval/by_date/latest) ?

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [February 8, 2020, 4:17am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/5 "2020-02-08T04:17:59Z")

</div>

If all you want is a clickable link, the best (and recommended) way is to use the following link, which will always redirect to the latest report:

```julia
https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html

```

Try it out: [https://juliaci.github.io/NanosoldierReports/pkgeval\_badges/report.html](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html)

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [February 8, 2020, 4:19am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/6 "2020-02-08T04:19:12Z")

</div>

If you want a clickable link that redirects to the specific package, that is harder.

You need to manually fetch the raw content and construct the correct link yourself.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [February 8, 2020, 4:22am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/7 "2020-02-08T04:22:14Z")

</div>

You may also be interested in my feature request here: [Link that brings you automatically to latest report for specific package · Issue #5 · JuliaCI/NanosoldierReports · GitHub](https://github.com/JuliaCI/NanosoldierReports/issues/5)

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 8, 2020, 4:26am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/8 "2020-02-08T04:26:38Z")

</div>

Thanks for opening the issue!

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 9, 2020, 6:12am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/9 "2020-02-09T06:12:39Z")

</div>

> [@tkf](#):
>
> By the way, it’d be nice if `dashboard` returns a `PkgDashboard` object that implements 3-arg `show` with `text/markdown` , `text/plain` , and `text/html` .

That’s a pretty cool idea, I’ll see what I can do 🙂

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 9, 2020, 8:14am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/10 "2020-02-09T08:14:52Z")

</div>

I hope the show methods work as intended. I pretty much only use Juno so I’m not sure how they are supposed to display, but the following should produce a nice output now

```julia
electrondisplay(dashboard("tkf", stargazers=true, activity=true))

```

Edit: In IJulia the display looks like crap for some reason unknown to me, but electrondisplay handles it well.  
Edit2: Problem fixed 🙂

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 9, 2020, 11:01pm UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/11 "2020-02-09T23:01:24Z")

</div>

Beautiful table! Thanks a lot!

---

<div class="post-metadata">

**Author:** ![tkluck](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkluck/32/15769_2.png) [@tkluck](https://discourse.julialang.org/u/tkluck)\
**Post date:** [February 10, 2020, 2:00am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/12 "2020-02-10T02:00:59Z")

</div>

I love this idea @baggepinnen ! Taking some inspiration from you I just created

[https://myshields.io/#q=user%3Abaggepinnen](https://myshields.io/#q=user%3Abaggepinnen)

The business logic is just a regex on the raw README.md. Code [is on github](https://github.com/tkluck/myshields.io) if anyone is interested 🙂

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 10, 2020, 2:27am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/13 "2020-02-10T02:27:15Z")

</div>

That could potentially be used in PkgDashboards as well to extract other insteresting badges from the readme 🙂

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 10, 2020, 2:32am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/14 "2020-02-10T02:32:30Z")

</div>

Are you sure it’s working as it’s supposed to, is [travis.com](http://travis.com) hardcoded for the travis badge? All build status badges show up as _unknown_.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [February 10, 2020, 2:38am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/15 "2020-02-10T02:38:07Z")

</div>

Also, it looks like [myshields.io](http://myshields.io) is not showing the PkgEval badges.

---

<div class="post-metadata">

**Author:** ![tkluck](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkluck/32/15769_2.png) [@tkluck](https://discourse.julialang.org/u/tkluck)\
**Post date:** [February 10, 2020, 8:05am UTC](https://discourse.julialang.org/t/ann-pkgdashboards/34302/16 "2020-02-10T08:05:46Z")

</div>

> [@dilumaluthge](#):
>
> Also, it looks like [myshields.io](http://myshields.io) is not showing the PkgEval badges.

True. We can just [add a regex here](https://github.com/tkluck/myshields.io/blob/master/shieldsdashboard.js#L1). I’ll probably get to that soon (or feel free to beat me to it by sending a pull request).

> [@baggepinnen](#):
>
> Are you sure it’s working as it’s supposed to, is [travis.com](http://travis.com) hardcoded for the travis badge? All build status badges show up as _unknown_ .

Looks like an issue with the regex; it captures all non-space characters following `/travis-ci\.org/` but in your readmes (and many others) the links are not separated by spaces. I’ll fix that too.
