Skip to content
Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
8dc6878
Add CodeMeta-Pyramids theme files
meldra Oct 7, 2025
f3b27db
Cut over to CodeMeta-Pyramids theme from hugo-material
meldra Oct 7, 2025
4f303d7
Removing the hugo-material theme as it is no longer needed.
meldra Oct 7, 2025
397152f
Removing duplicate/unnecessary css.
meldra Oct 7, 2025
c99178c
Restore material-kit js, needed for responsive navigation with tweaks
meldra Oct 9, 2025
cb4cea2
Tweak the nav js to cope with page refreshes
meldra Oct 9, 2025
34825f6
Add dark mode with toggler switch in nav.
meldra Oct 9, 2025
f660161
Make the dark mode js more robust (I hope)
meldra Oct 10, 2025
1214f1f
More darkmode js refactoring
meldra Oct 11, 2025
d21d122
Style tweaks; codeblocks now nicer in both modes
meldra Oct 13, 2025
0d8f4a8
Remove unneeded template login.html
meldra Oct 15, 2025
dd054c9
Add layout with custom TableOfContents in left sidebar
meldra Oct 15, 2025
4d37dfb
Add sidenav layout to terms, user-guide, developer-guide pages
meldra Oct 15, 2025
a665c4f
Move RSS links to a link (with icon) after the footer nav (supercedes…
meldra Oct 15, 2025
3b4a9b2
Add a partial for the supporter acknowledgements
meldra Oct 16, 2025
fbd4b95
Add a news partial for landing layout prep.
meldra Oct 16, 2025
9435b67
Add first round of changes for landing layout.
meldra Oct 16, 2025
06044a6
Swap index page to landing layout
meldra Oct 16, 2025
df0fd56
Add footer links per #83
meldra Oct 21, 2025
3600b0c
Add sidenav to additional pages
meldra Oct 21, 2025
f255450
Display tweaks for supporters section
meldra Oct 21, 2025
46be23c
Add some static news links for now
meldra Oct 22, 2025
11a694e
Make landing columns collapse to one on tiny screens
meldra Oct 22, 2025
aa8e9d5
Add buttons where crosswalks may be expected
meldra Oct 22, 2025
ee66491
Fix color contrast and link visual indicators for accessibility
meldra Oct 22, 2025
5f9d438
Add missing image alt and label text
meldra Oct 22, 2025
bd7e4ed
Add missing label for darkmode toggle
meldra Oct 22, 2025
a01d65c
Remove zoom prevention for accessibility
meldra Oct 22, 2025
257115d
Final (tm) sweep of accessibility tweaks
meldra Oct 22, 2025
37d24e2
Fix skip link alignment on tiny screens
meldra Oct 22, 2025
557bde4
Adjust skip id to h1 rather than subsequent content
meldra Oct 22, 2025
97f2fd9
Add missed non-colour visual indicators for main/footer navs
meldra Oct 22, 2025
5606a69
Merge pull request #80 from meldra/refresh-2025
moranegg Oct 24, 2025
4416fd6
Add workflow for periodically fetching the currently decided feed
meldra Oct 29, 2025
ce62072
Add carousel for RSMD recommendations
meldra Oct 29, 2025
ba9e681
Move original front page content, add less verbose copy with key info…
meldra Oct 29, 2025
b88e711
Move the buttons to the left landing region
meldra Oct 29, 2025
9e40000
Make news sidebar rss based, and limitable by config
meldra Oct 30, 2025
9021bee
Add a full news page for everything in the feeds
meldra Oct 30, 2025
cebad4a
Add current softwareheritage.org/tag/codemeta/feed/ file
meldra Nov 5, 2025
9da2f09
Make RSMD info on front page driven by a data file
meldra Nov 5, 2025
73cd767
Minor fixes
meldra Nov 6, 2025
08b9c2c
Archive google doc notes for this page
meldra Nov 6, 2025
ce95633
Fix accidental omission when converting to data-driven
meldra Nov 6, 2025
655d035
Add more content to sidebar
meldra Nov 6, 2025
48b9360
Add missing supporter cards, fix links.
meldra Nov 6, 2025
87ff7ca
Add JS refreshing to the news displays
meldra Nov 13, 2025
02b0a36
Put codemeta-generator in an iframe on the /create page, with a short…
meldra Nov 13, 2025
73820b1
Remove supporter card text links, fix card aspect ratio
meldra Nov 14, 2025
21083c7
Reword intro content to link to original front page text
meldra Nov 14, 2025
020bc83
Add direct link to the generator on the create page
meldra Nov 14, 2025
2ab77d4
Last sweep of accessibility compliance
meldra Nov 15, 2025
296d046
Merge branch 'master' into content-2025
meldra Nov 15, 2025
8eb1edb
Apply suggestions from code review
meldra Nov 16, 2025
ee086cc
Apply suggestions from code review
meldra Nov 17, 2025
10c3c30
Deduplicate news js, make it handle multiple feeds
meldra Nov 17, 2025
7553715
Retire the iframe in favour of a button per review.
meldra Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 27 additions & 0 deletions .github/workflows/news.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Update news

on:
schedule:
# Get the feed every day at 1:13 UTC
- cron: "13 1 * * *"
# allow manual update
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Download File
run: |
curl https://www.softwareheritage.org/tag/codemeta/feed/ --output ./data/feeds/softwareheritage.xml
working-directory: ${{ github.workspace }}
- name: Commit and Push Changes
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
git add ./data/feeds/
git commit -m 'Update news'
git push
29 changes: 19 additions & 10 deletions config.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
theme = "hugo-material"
theme = "CodeMeta-Pyramids"
baseurl = "/"
relativeurls = true
title = "The CodeMeta Project"
Expand All @@ -7,7 +7,6 @@ disqusShortname = ""
ignoreFiles = ["\\.Rmd$", "_files$", "_cache$", "\\.csv", "\\.R"]
publishDir = "../website"


[[menu.main]]
name = "Home"
url = "/index.html"
Expand Down Expand Up @@ -41,24 +40,32 @@ publishDir = "../website"
url = "/tools"
weight = 8

[[menu.footer]]
name = "Source code on Github"
url = "https://github.com/codemeta/"
pre = "<i class='bi-github'></i>"
weight = 1
[[menu.footer]]
name = "Governance"
url = "https://codemeta.github.io/governance/"
weight = 2
[[menu.footer]]
name = "Scicodes Consortium"
url = "https://scicodes.net/"
weight = 3


[params]
name = "codemeta"
github = "codemeta"
custom_css = ["glyphicon.css"]
#custom_css = ["cboettig.css"]
repo = "codemeta.github.io"
background = "img/pyramids.jpg"

newslimit = 5

date_format = "Mon, Jan 2, 2006"
description = "A Rosetta Stone for Software Metadata"

# options for highlight.js (version, additional languages, and theme)
highlightjsVersion = "9.10.0"
highlightCDN = "//cdn.bootcss.com"
highlightjsLang = ["r", "yaml", "json"]
highlightjsTheme = "github"

[params.logo]
url = "logo.png"
width = 50
Expand All @@ -69,3 +76,5 @@ publishDir = "../website"
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
style = 'pygments'
55 changes: 43 additions & 12 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,54 @@
---
title: "The CodeMeta Project"
layout: landing
---

## Motivation
## Introducing CodeMeta

Research relies heavily on scientific software, and a large and growing fraction of researchers are engaged in developing software as part of their own research ([Hannay et al 2009](https://doi.org/10.1109/SECSE.2009.5069155 "How do scientists develop and use scientific software?")). Despite this, _infrastructure to support the preservation, discovery, reuse, and attribution of software_ lags substantially behind that of other research products such as journal articles and research data. This lag is driven not so much by a lack of technology as it is by a lack of unity: existing mechanisms to archive, document, index, share, discover, and cite software contributions are heterogeneous among both disciplines and archives and rarely meet best practices ([Howison 2015](https://doi.org/10.1002/asi.23538 "Software in the scientific literature: Problems with seeing, finding, and using software mentioned in the biology literature")). Fortunately, a rapidly growing movement to improve preservation, discovery, reuse and attribution of academic software is now underway: a recent [NIH report](http://softwarediscoveryindex.org), conferences and working groups of [FORCE11](https://www.force11.org/), [WSSSPE](http://wssspe.researchcomputing.org.uk/) & [Software Sustainability Institute](http://www.software.ac.uk/), and the rising adoption of repositories like [GitHub](https://github.com), [Zenodo](https://zenodo.org), [figshare](https://figshare.com) & [DataONE](https://www.dataone.org) by academic software developers. Now is the time to improve how these resources can talk to each other.
Software development creates changes, and scientific research requires
reproducibility. Since software is routinely used in research projects,
this can cause problems.

## What can software metadata do for you?
_**CodeMeta acts as a vital bridge between these disciplines.**_

What metadata you want from software is determined by your use case. If your primary concerns are credit for academic software, then you're most interested in _citation_ metadata. If you're trying to replicate some analysis, you worry more about versions and dependencies than about authors and titles. And if you seek to discover software you don't already know about that is suitable for a particular task, well then you are interested more in keywords and descriptions. Frequently, developers of scientific software, repositories that host that software, and users themselves are interested in more than one of these objectives, and others besides.
[Aiming to solve this problem](/background), CodeMeta was founded in 2016
by a consortium of researchers. Using existing standards such as Schema.org
terms and JSON-LD, CodeMeta is now a recognised framework that is employed
by a worldwide community of developers, researchers, and archivists.

Different software repositories, software languages and scientific domains denote this information in different ways, which makes it difficult or impossible for tools to work across these different sources without losing valuable information along the way. For instance, a fantastic collaboration between GitHub and figshare provides researchers a way to import software on the former into the persistent archive of the latter, getting a permanent identifier, a DOI in the process. To assign a DOI, figshare must then pass metadata about the object to DataCite, the central DOI provider for all repositories. While this makes DataCite a powerful aggregator, the lack of a crosswalk table means that much valuable metadata is currently lost along the way, such as the original software license, platform, and so forth. Any tool or approach working across software repositories faces similar challenges without a crosswalk table to translate between these.
When used and maintained in code repositories and software distribution
systems, CodeMeta enables the exact version of a library or application,
that has been used and cited in scientific and other research, to be
reliably identified and reused.

For more detail, [visit the project on GitHub](https://github.com/codemeta/codemeta) or check back here soon.
### Research Software MetaData Guidelines

## Special thanks to our supporters
CodeMeta is suggested for use by the following
[Research Software MetaData Guidelines](https://fair-impact.github.io/RSMD-guidelines/)
recommendations:

<img width="50px" src="/img/nsf.jpg"/>
<img width="50px" src="/img/datacite.png"/>
<img width="50px" src="/img/github.png"/>
<img width="50px" src="/img/figshare.png"/>
<img width="50px" src="/img/zenodo.jpg"/>
{{< rsmd >}}

## Use Cases

Credit
: CodeMeta's _citation_ metadata is useful for ensuring that authors get
credit for their software, when it is used for published research.

Reproducibility
: Tracking the software libraries and applications used in research, using
CodeMeta's _versions_ and _dependencies_ metadata, ensures that important
findings can be reviewed and verified with greater accuracy.
Comment on lines +38 to +41
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Off-topic for this PR, but I find that dependency metadata in Codemeta is either missing or unusable because it's underspecified


Discovery
: Finding software is easier with CodeMeta's _keywords_ and _descriptions_
metadata. These terms allow everyone to discover relevant software, and use
or contribute to it.

## Connecting via Crosswalks

Repositories, software languages, and scientific domains often have different
vocabularies for their metadata. Our Crosswalks exist to provide a reliable
path to interoperability. By mapping each of these formats to CodeMeta via a
Crosswalk, CodeMeta acts as a translation layer for data to be converted
freely, preserving information that would otherwise be lost.
16 changes: 16 additions & 0 deletions content/background.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "The CodeMeta Project"
layout: sidenav
---

## Motivation

Research relies heavily on scientific software, and a large and growing fraction of researchers are engaged in developing software as part of their own research ([Hannay et al 2009](https://doi.org/10.1109/SECSE.2009.5069155 "How do scientists develop and use scientific software?")). Despite this, _infrastructure to support the preservation, discovery, reuse, and attribution of software_ lags substantially behind that of other research products such as journal articles and research data. This lag is driven not so much by a lack of technology as it is by a lack of unity: existing mechanisms to archive, document, index, share, discover, and cite software contributions are heterogeneous among both disciplines and archives and rarely meet best practices ([Howison 2015](https://doi.org/10.1002/asi.23538 "Software in the scientific literature: Problems with seeing, finding, and using software mentioned in the biology literature")). Fortunately, a rapidly growing movement to improve preservation, discovery, reuse and attribution of academic software is now underway: a recent [NIH report](http://softwarediscoveryindex.org), conferences and working groups of [FORCE11](https://www.force11.org/), [WSSSPE](http://wssspe.researchcomputing.org.uk/) & [Software Sustainability Institute](http://www.software.ac.uk/), and the rising adoption of repositories like [GitHub](https://github.com), [Zenodo](https://zenodo.org), [figshare](https://figshare.com) & [DataONE](https://www.dataone.org) by academic software developers. Now is the time to improve how these resources can talk to each other.

## What can software metadata do for you?

What metadata you want from software is determined by your use case. If your primary concerns are credit for academic software, then you're most interested in _citation_ metadata. If you're trying to replicate some analysis, you worry more about versions and dependencies than about authors and titles. And if you seek to discover software you don't already know about that is suitable for a particular task, well then you are interested more in keywords and descriptions. Frequently, developers of scientific software, repositories that host that software, and users themselves are interested in more than one of these objectives, and others besides.

Different software repositories, software languages and scientific domains denote this information in different ways, which makes it difficult or impossible for tools to work across these different sources without losing valuable information along the way. For instance, a fantastic collaboration between GitHub and figshare provides researchers a way to import software on the former into the persistent archive of the latter, getting a permanent identifier, a DOI in the process. To assign a DOI, figshare must then pass metadata about the object to DataCite, the central DOI provider for all repositories. While this makes DataCite a powerful aggregator, the lack of a crosswalk table means that much valuable metadata is currently lost along the way, such as the original software license, platform, and so forth. Any tool or approach working across software repositories faces similar challenges without a crosswalk table to translate between these.

For more detail, [visit the project on GitHub](https://github.com/codemeta/codemeta) or check back here soon.
55 changes: 52 additions & 3 deletions content/create.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,60 @@
---
title: "Create a CodeMeta file"
#layout: login
layout: wide
---

Need to generate a CodeMeta compliant metadata file? Try out the [CodeMeta Generator](https://codemeta.github.io/codemeta-generator), which was created by the folks at [Software Heritage](https://www.softwareheritage.org).
Need to generate a CodeMeta compliant metadata file? The folks at
[Software Heritage](https://www.softwareheritage.org) maintain this tool to
make that easy.

The form below is both a generator and a validator for `codemeta.json` files.
It can be [accessed directly](https://github.com/codemeta/codemeta-generator).

## Create a new CodeMeta file

Generate a CodeMeta file by filling out the fields in the form below
according to the [CodeMeta terms](/terms) definitions. The `Name` field in
the first section is mandatory.

Providing the `Name` of your software will result in a basic `codemeta.json`
output in the final textarea. Filling out additional fields will build a
more complete file. The version of CodeMeta can be selected with the
`Generate codemeta.json v2.0` or `Generate codemeta.json v3.0` buttons above
the final textarea.

Some fields require specific formatting. The example text in the fields will
hint the required formatting. Errors will be highlighted by the generator as
they are encountered.

Your generated file may be copied from the text area, or downloaded with the
`Download codemeta.json` button above the field.

## Check a CodeMeta file

Pasting the contents of your current `codemeta.json` file into the final
textarea will allow you to:
- Validate the syntax with the `Validate codemeta.json` button, and
- Pre-fill the other form fields with your current values using the
`Import codemeta.json` button.

{{< rawhtml >}}
<script type="text/javascript">
function iframeResize() {
const iFrameID = document.getElementById('generator');
if(iFrameID) {
iFrameID.height = "";
iFrameID.height = (iFrameID.contentWindow.document.body.scrollHeight + 50) + "px";
}
}
window.addEventListener('resize', function() {
iframeResize()
});

</script>
<iframe id="generator" title="CodeMeta Generator" onload="iframeResize()" src="/codemeta-generator" class="d-inline-block w-100" frameborder="0">
If there is no form visible here, you can also access the [CodeMeta Generator](https://codemeta.github.io/codemeta-generator) directly. This may be due to browser security settings.
</iframe>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this on Firefox 140.4.0esr:

Screenshot 2025-11-16 at 00-48-12 The CodeMeta Project

But also, why replace the link with an iframe? The codemeta generator intentionally uses a theme adapted from Codemeta's with smaller margins so it's usable on small screens, but with an iframe the margins are more than doubled.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really not sure why it's not displaying full-height for you here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the rationale for preferring the iframe solution was the loss of the site's menu when sent directly to the generator, but @moranegg can clarify more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can drop the iframe.
With @meldra we tried to find an elegant solution without leaving the website.
This is not a blocker; we can keep the text and a button to the CodeMeta generator site.

Thank you @progval, for your careful review here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@moranegg

No problem! I've pushed 7553715

Screenshot 2025-11-17 at 15 19 20

Do we also want the button on the front page to go there directly or should it still point to /create ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also want the button on the front page to go there directly or should it still point to /create ?

I have a weak preference for the former.


<a href="https://www.softwareheritage.org">
<img src="/img/swh-logo.png" style="height: 50px;"/> Software Heritage</a>
<img alt="" src="/img/swh-logo.png" style="height: 50px;"/> Software Heritage</a>
{{< /rawhtml >}}
1 change: 1 addition & 0 deletions content/developer-guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: CodeMeta Developer Guide
layout: sidenav
---

This guide is intended for software developers who require detailed information about the CodeMeta project's
Expand Down
1 change: 1 addition & 0 deletions content/jsonld.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "The CodeMeta JSON-LD Representation"
layout: sidenav
---

CodeMeta uses JSON-LD to represent and translate between software metadata formats.
Expand Down
6 changes: 6 additions & 0 deletions content/news.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Codemeta News
layout: single
---

{{< news >}}
1 change: 1 addition & 0 deletions content/terms.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: CodeMeta Terms
layout: sidenav
---

## Terms from Schema.org
Expand Down
1 change: 1 addition & 0 deletions content/tools.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Tools
layout: sidenav
---

This page lists some existing tools to help with CodeMeta files.
Expand Down
8 changes: 6 additions & 2 deletions content/use-cases.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
layout: single
---

Edited Use cases
CodeMeta meeting in Portland
Created 20160415 (use cases group pulled from here 230pm 20160516) https://docs.google.com/document/d/1SalOP_tLw7FC6jnoz5hJBB2jA7xBClKqc88wgmJu5Ro/edit
Created 20160415 (use cases group pulled from here 230pm 20160516) [PDF export of google doc notes](/CodeMeta_Software_Use_Cases-Day2PM_WrkngGrp.pdf)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx




Expand Down Expand Up @@ -296,4 +300,4 @@ datacite/crossref/orcid -- utility providers
``Repository'' refers to public software repositories such as GitHub, Netlib, Comprehensive R Archive Network (CRAN), and institutional repositories. \item `


``Citation manager`` refers to people and organizations that create scholarly reference management software and websites including Zotero, Mendeley, EndNote, RefWorks, BibDesk, etc., that manage citation information and semi-automatically insert those citations into research products.
``Citation manager`` refers to people and organizations that create scholarly reference management software and websites including Zotero, Mendeley, EndNote, RefWorks, BibDesk, etc., that manage citation information and semi-automatically insert those citations into research products.
1 change: 1 addition & 0 deletions content/user-guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: User Guide
layout: sidenav
---

## Generating a CodeMeta file
Expand Down
Loading