Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3ebcfd6
fix: resolve accessibility issues across SciX blog pages
thostetler Mar 4, 2026
74ea340
fix: improve shared a11y - label contrast, footer/nav target sizes, d…
thostetler Mar 4, 2026
99ed0fd
fix: relative font sizes and alt text on blog listing pages (sia-r74,…
thostetler Mar 4, 2026
1cb24e5
fix: add alt text to blog post images and fix heading levels (sia-r2,…
thostetler Mar 4, 2026
d19437f
fix: increase list link target sizes and fix table headers (sia-r111,…
thostetler Mar 4, 2026
655498f
fix: add alt text and fix heading levels on newer blog posts (sia-r2,…
thostetler Mar 4, 2026
c618c1c
fix: address review comments from PR #622
thostetler Mar 5, 2026
41e496a
fix: add lang="en", iframe titles, and post-title guard (sia-r4, sia-…
thostetler Mar 5, 2026
451e73c
fix: trim iframe title and guard h1.post-title in blog_page_scix (sia…
thostetler Mar 5, 2026
f51912d
fix: refactor left-nav list markup to valid li>a nesting (sia-r68)
thostetler Mar 5, 2026
11c5cbd
fix: propagate active link color and add focus-visible outline (sia-r68)
thostetler Mar 5, 2026
9f136f6
fix: wrap page content in landmark regions (sia-r57)
thostetler Mar 5, 2026
c7f8572
fix: use semantic accordion pattern for help nav (sia-r90)
thostetler Mar 5, 2026
7b0fa8a
fix: address accordion review findings (sia-r90 follow-up)
thostetler Mar 5, 2026
d5950d8
fix: add missing alt text to images (sia-r2)
thostetler Mar 5, 2026
3b1f2ef
fix: add unique aria-label to all nav landmarks (sia-r56)
thostetler Mar 5, 2026
e38e537
fix: correct heading level hierarchy to remove skips (sia-r53)
thostetler Mar 5, 2026
74fa6a6
fix: promote two inline-conditional h5 Q: headings to h3 in faqs.md (…
thostetler Mar 5, 2026
b81515d
fix: remove orphaned aria-multiselectable from left-nav accordion (si…
thostetler Mar 5, 2026
ae79a3d
fix: address review comments from PR #625
thostetler Mar 5, 2026
113e45c
fix: merge upstream master, resolve libraries index conflicts
thostetler Mar 5, 2026
cf7c797
fix: reserve space for Google search and remove slide-in animation
thostetler Mar 5, 2026
f8e3b69
Revert "fix: reserve space for Google search and remove slide-in anim…
thostetler Mar 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
.git
.github
.claude
vendor
node_modules
bower_components
*.xcf
.DS_Store
.idea
.cursor
.siteimprove
15 changes: 15 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM ruby:3.3-alpine

RUN apk add --no-cache \
build-base \
git \
&& gem install bundler

WORKDIR /site

COPY Gemfile Gemfile.lock ./
RUN bundle install --jobs 4

EXPOSE 4000

CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0"]
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,20 @@ After installing Jekyll, run the following commands to preview the site:

You will now be able to access the help pages locally at `http://0.0.0.0:4000` or `localhost:4000` (default configuration). After the website is built for the first time, you should only need to save the file, wait a second or two for it to rebuild automatically (check the terminal window where you ran `jekyll serve`), then refresh the page to see any changes.

#### Development with Docker

As an alternative, you can use Docker instead of installing Ruby locally. The only prerequisite is [Docker](https://docs.docker.com/get-docker/). A convenience script wraps the Docker Compose setup:

```
./run serve # start dev server at http://localhost:4000 (livereload)
./run build # one-shot production build
./run dev # watch + incremental rebuild (no server)
./run stop # stop running containers
./run clean # remove build artifacts and Docker volumes
```

`JEKYLL_PORT` and `JEKYLL_ENV` can be set as environment variables.

### Maintainer

Mugdha
6 changes: 6 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ plugins:
last-modified-at:
date-format: '%Y-%m-%dT%H:%M:%S%:z'

exclude:
- Dockerfile
- docker-compose.yml
- run
- vendor

defaults:
- scope:
path: ''
Expand Down
2 changes: 1 addition & 1 deletion _includes/_blogcontent/2015-07-15-introducing-bumblebee.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

<img src="{{ site.baseurl }}/blog/images/blog_2015-07-15_adsbumblebee.png" width="128"><br>
<img src="{{ site.baseurl }}/blog/images/blog_2015-07-15_adsbumblebee.png" width="128" alt="ADS Bumblebee logo"><br>
The Astrophysics Data System (ADS) is a tool for finding astronomy and planetary science publications. ADS currently has three different interfaces:

* ~~[ADS “Classic”](http://adsabs.harvard.edu/abstract_service.html) -- the one you all know and love,~~ *We're slowly removing Classic servers from use and the redirects will stop working in the near future. Please update your bookmarks to point directly to the [new website](https://ui.adsabs.harvard.edu/) (edited 11/2021).*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@ For many scientists, it's all about the numbers and when it comes to evaluating
To get started, go to [ADS Bumblebee](https://ui.adsabs.harvard.edu) and perform an [author query](../help/search/search-syntax/):

<div class="text-center">
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image02.png" class="img-responsive"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image02.png" class="img-responsive" alt="Screenshot of the ADS Bumblebee author search query form"/>
</div>

On the search results page, click the Explore button and select Citation Metrics:

<div class="text-center">
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image00.png" class="img-responsive"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image00.png" class="img-responsive" alt="Screenshot of the ADS search results page with the Explore menu showing Citation Metrics option"/>
</div>

The top panel displayed is a graphical representation of the search results as a histogram of the number of products published per year.

<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image01.png" class="img-responsive"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image01.png" class="img-responsive" alt="Histogram showing number of publications per year for a given author in ADS Citation Metrics"/>

Use this panel as a sanity check that your search is selecting the publications you are interested in, since all of the indices are calculated based on this set. On the left side of the panel, the total number of publications and the number of those which are refereed are listed. On the histogram, you can mouse over any data point to see the actual values. The first result set is for the default amount of publications (300). If you have more, you can specify that number in the box at the top of the overview (up to the maximum of 2,000). We expect to be able to increase this maximum at some point in the future.


There are panels that display information about Citations and Reads, but let’s focus on the Indices. The panel illustrates the values of various indices on any given year.

<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image03.png" class="img-responsive"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-10-21_image03.png" class="img-responsive" alt="Panel showing citation indices including h-index and other metrics over time in ADS"/>

On the left, the present value of many popular indices are calculated. Mouse over the help icon next to each index to get a brief description of how it’s calculated.

Expand Down
4 changes: 2 additions & 2 deletions _includes/_blogcontent/2015-11-03-ads-private-libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ The ADS libraries allow you to maintain a collection of bibcodes within your own
To get started, simply [create an ADS user account](https://ui.adsabs.harvard.edu/#user/account/register) and [make a query](https://ui.adsabs.harvard.edu/#search/q=author%3A"Accomazzi%2C+A.") of the papers you wish to add to a library. Select the papers that you are interested in and you will now have the option to add them to a new library or one that already exists.

<div class="text-center">
<img src="{{ site.baseurl }}/blog/images/blog_2015-11-02_image01.png" align="center" width="1200" class="img-thumbnail"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-11-02_image01.png" align="center" width="1200" class="img-thumbnail" alt="Screenshot of ADS search results page showing the option to add selected papers to a library"/>
</div>
<br>
Find your libraries by going to your user area.

<div class="text-center">
<img src="{{ site.baseurl }}/blog/images/blog_2015-11-02_image02.png" align="center" width="400" class="img-thumbnail"/>
<img src="{{ site.baseurl }}/blog/images/blog_2015-11-02_image02.png" align="center" width="400" class="img-thumbnail" alt="Screenshot of the ADS user area showing the personal libraries section"/>
</div>

You can view metrics, create exports, and visualise graphs for each of your libraries, much like in the standard search result pages. Currently, you can make your libraries public to be viewed by other people with a unique URL by visiting the permissions section.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
On average, articles get cited in a pretty predictable pattern. An article gets published, it takes a little while to get "absorbed" by the scientific community, and then, if it resonates, it starts getting citations. Something along the lines of figure 4 in my paper <a href="https://ui.adsabs.harvard.edu/#abs/2006JEPub...9....2H/abstract" target="_blank">"Effect of E-printing on Citation Rates in Astronomy and Physics", Journal of Electronic Publishing, vol. 9, p. 2</a>:

<div class="text-center">
<img class="img-thumbnail" src="{{ site.baseurl }}/blog/images/blog_2015-11-17_image01.gif" />
<img class="img-thumbnail" src="{{ site.baseurl }}/blog/images/blog_2015-11-17_image01.gif" alt="Line chart showing the typical citation rate pattern for a paper over time, peaking then declining" />
</div>

In the pre-Internet days, this meant that people had to work their way through abstract books and reading the tables of contents from volumes on the shelves of their local library. The principle, nevertheless, is the same, just with a different time scale. When you have to physically work your way through shelves and volumes, it obviously takes more time to gather your bibliography, when writing a paper in this pre-Internet era. Even when you allow for these longer time scales, there are still papers that take longer, way longer, to be cited than others. <a href="https://twitter.com/TodLauer/status/665283076835033088" target="_blank">Todd Lauer coined the phrase "long-fuse" papers on Twitter</a> (in a discussion with <a href="https://twitter.com/JossBlandHawtho/status/647199763851448321" target="_blank">Joss Bland-Hawthorn</a>) and wondered about how to detect these. That is what this blog is about. One attempt at finding them. The figure below shows one fine example of such a "long-fuse" publication: <a href="https://ui.adsabs.harvard.edu/#abs/1937ApJ....86..217Z/abstract" target="_blank">"On the Masses of Nebulae and of Clusters of Nebulae", by F. Zwicky (1937), Astrophysical Journal, vol. 86, p.217</a>
Expand Down
16 changes: 8 additions & 8 deletions _includes/_blogcontent/2016-02-17-building-an-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ Underneath the new user interface of the ADS, ADS Beta (or Bumblebee), there is

*FYI: this is more technical, and repetitively uses a cooking/Wrestling theme.*

### Ingredients
## Ingredients
The following is needed for the wrecipe:

1. An ADS account and an ADS API key (make an account [here](https://ui.adsabs.harvard.edu/#user/account/register), and then go to User Settings -> Customize -> API Token)
2. A [Heroku account](http://herokuapp.com)
3. Python "unofficial ADS client" by Andy Casey (https://github.com/andycasey/ads)

### Step 1: Decide what your application should do
## Step 1: Decide what your application should do

First, we decided to create an application that pits two authors against one another by comparing their publication metrics against each other. Second, apply the 90s-00s WWE/WWF theme.

<div class="text-center">
<img class="img-thumbnail" src="{{ site.base_url }}/blog/images/blog_2016-02-17_image01.jpg"/>
<img class="img-thumbnail" src="{{ site.base_url }}/blog/images/blog_2016-02-17_image01.jpg" alt="WWE-style promotional graphic for the ADS Author Smackdown app concept"/>
</div>

### Step 2: Obtain the information you need from the ADS
## Step 2: Obtain the information you need from the ADS

We wanted to compare two authors against each other, *reasonably* fairly. One possible approach is to just compare total citations of one author to another, but obviously this can lead to biases given that someone who works longer should have more citations, people who have more papers from collaborations will have more citations, etc. To get around this, we chose to use the RIQ, a metric that is meant to *fairly* compare two authors. You can read more about this metric [here](https://ui.adsabs.harvard.edu/#abs/2012PLoSO...746428P/abstract). Of course, there are problems with this metric too, but.....

Expand Down Expand Up @@ -50,11 +50,11 @@ Once you have the relevant bibcodes, we need to ask the metrics end point for th

The above is fairly simple, and so you could do it via curl requests as outlined in our [API help pages](https://github.com/adsabs/adsabs-dev-api), or write your own client in the language of your choice.

### Step 3: Dish out your logic in a web app
## Step 3: Dish out your logic in a web app

Our application will receive two authors names, and return the RIQs of each author, which will then display the winner (and loser) on the front-end application. To do this, we built a back-end application using Python-Flask, and a front-end application written in JavaScript. If you want to see the full code, you can see the Flask backend [here](https://github.com/jonnybazookatone/authorsmackdown) and the JavaScript frontend [here](https://github.com/aholachek/smackdown). At this stage you can utilise your favourite web application, cgi-bins, ruby on rails, go-lang, etc.

### Step 4: Decide how to deliver your app to the public
## Step 4: Decide how to deliver your app to the public

You can opt to host your application locally if you prefer, and there are a plethora of free options on the internet. To get things running quickly, we chose to host our application on Heroku app (http://herokuapp.com). You only need to do two things:

Expand All @@ -63,11 +63,11 @@ You can opt to host your application locally if you prefer, and there are a plet

*Note* If you use your own API token for an application that is available to other users, your rate limits will be consumed as normal, and may run out during a 24 hour period. If you believe your application deserves its own rate limits then feel free to tweet us [@adsabs](http://twitter.com/adsabs) or [contact us directly](adshelp@cfa.harvard.edu).

### Step 5: Leave to cool for 5 mins and add a cliché title
## Step 5: Leave to cool for 5 mins and add a cliché title

<div class="text-center">
<a href="http://authorsmackdown.herokuapp.com/">
<img class="img-thumbnail" src="{{ site.base_url }}/blog/images/blog_2016-02-17_image02.png"/>
<img class="img-thumbnail" src="{{ site.base_url }}/blog/images/blog_2016-02-17_image02.png" alt="Screenshot of the Author Smackdown web application comparing two authors' publication metrics"/>
</a>
</div>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

<img src="{{ site.base_url }}/blog/images/blog_2016-03-16_image.png" width="128"><br>
<img src="{{ site.base_url }}/blog/images/blog_2016-03-16_image.png" width="128" alt="NASA logo"><br>

NASA Astrophysics is, and has always been, a leader in providing open access to scientific data. With small exceptions, all data from NASA missions are publically available. Indeed NASA has also been the leader in creating systems to make the access of these data easy and useful.

Expand Down
6 changes: 3 additions & 3 deletions _includes/_blogcontent/2017-10-05-100M-citations.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ The ADS has reached its 100,000,000th citation! We hit this milestone the last w
Our citations database has doubled in roughly the last 6 years. The growth in citations is rapid: the number of citations in the database increased <a href="https://ui.adsabs.harvard.edu/#abs/2007ASPC..377...69A/abstract" target="_blank">nearly five-fold in the last decade</a> and by <a href="https://ui.adsabs.harvard.edu/#abs/1999AAS...195.8209D/abstract" target="_blank">two orders of magnitude in the last two decades</a>.


<img src="/blog/images/blog_2017-10-05_image01.png" width="600">
<img src="/blog/images/blog_2017-10-05_image01.png" width="600" alt="Bar chart showing growth in ADS citation count over time, reaching 100 million citations">

The number of records in the database that have been cited at least once has also increased over the same timespan, though not as quickly as the number of citations. The number of records in physics and astronomy that have been cited at least once has nearly doubled in the last 8 years. The more rapid increase in the number of citations than in the number of papers being cited is more easily visualized by the figure below, and is best understood when thinking of the citation dataset as a network of papers connected by citations. The figure, originally published as figure 4 in <a href="https://ui.adsabs.harvard.edu/#abs/2012opsa.book..253H/abstract" target="_blank">"The ADS in the Information Age - Impact on Discovery"</a> and using data from 1980--2006, shows the number of edges (or number of citations) as a function of the number of nodes (or records that have been cited). The nonlinear growth of the number of citations is evidence of network densification.

<img src="/blog/images/blog_2017-10-05_image02.png" width="600" title="Citations (edges) vs. records (nodes), for the period from 1980 to 2006">
<img src="/blog/images/blog_2017-10-05_image02.png" width="600" title="Citations (edges) vs. records (nodes), for the period from 1980 to 2006" alt="Scatter plot showing nonlinear growth of citations versus cited records in ADS from 1980 to 2006">

This is partly a consequence of the growth in the average number of references in a bibliography, seen in the figure below (originally figure 5 from the <a href="https://ui.adsabs.harvard.edu/#abs/2012opsa.book..253H/abstract" target="_blank">same publication</a>). This trend has only increased since widespread adoption of electronic publishing in the late 1990s, seen as the upwards deviation from the linear trend in bibliography growth.

<img src="/blog/images/blog_2017-10-05_image03.png" width="600">
<img src="/blog/images/blog_2017-10-05_image03.png" width="600" alt="Line chart showing growth in average number of references per bibliography in ADS publications over time">

The process by which a paper is cited in the ADS is not always obvious to our users. When a paper is ingested, the publisher-provided reference list is read. (For arXiv e-prints or other works without separate reference lists, the paper’s full text is scanned and references are extracted directly from the text.) Individual reference strings are recognized and the bibliographic tokens within them are parsed. We then attempt to match the parsed reference metadata against the existing records within ADS. When a possible match is found, we compute a similarity score between the parsed reference data and that of the potential match in ADS. If the similarity score is high enough, the reference is accepted and a reference/citation pair is created between the referencing paper and the cited paper. The citations table is formed by inverting the references table. The resulting citations table is then checked for duplicates, such as from previous versions of the citing paper that have appeared on the arXiv.

Expand Down
Loading