function updateDownloadLink()

in src/assets/js/archive.js [69:98]


function updateDownloadLink(releases, os) {
  var channel = "stable";
  var releasesForChannel = releases.releases.filter(function (release) {
    return release.channel == channel;
  });
  if (!releasesForChannel.length)
    return;

  var release = releasesForChannel[0];
  var linkSegments = release.archive.split("/");
  var archiveFilename = linkSegments[linkSegments.length - 1]; // Just the filename part of url
  var downloadLink = $(".download-latest-link-" + os);
  downloadLink
    .text(archiveFilename)
    .attr("href", releases.base_url + "/" + release.archive);

  // Update download-filename placeholders:
  $(".download-latest-link-filename-" + os).text(archiveFilename);
  $(".download-latest-link-filename").text(archiveFilename);

  // Update inlined filenames in <code> element text nodes:
  var fileNamePrefix = 'flutter_';
  var code = $('code:contains("' + fileNamePrefix + '")');
  var textNode = $(code).contents().filter(function() {
    return this.nodeType == 3 && this.textContent.includes(fileNamePrefix);
  });
  var text = $(textNode).text();
  var newText = text.replace(new RegExp('^(.*?)\\b' + fileNamePrefix + '\\w+_v.*'), '$1' + archiveFilename);
  $(textNode).replaceWith(newText);
}