Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check for broken links in the CI test job #369

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
6 changes: 5 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
---
layout: page
title: Swift Contributors
permalink: /CONTRIBUTORS

# Weirdly, CONTRIBUTORS.md is getting rendered as CONTROBUTORS.html.
# That permalink setting, though, is getting rendered in it's rel=canonical,
# and we don't want it to be broken.
permalink: /CONTRIBUTORS.html
---

{% include_relative CONTRIBUTORS.txt %}
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ source 'https://rubygems.org'
gem 'jekyll', '~> 4.2.1'
gem 'jekyll-redirect-from'

# html-proofer checks for broken links.
# used in docker-compose.yml test job
gem 'html-proofer'

gem "webrick", "~> 1.7"
43 changes: 43 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,19 +1,44 @@
GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
afm (0.2.2)
async (2.6.4)
console (~> 1.10)
fiber-annotation
io-event (~> 1.1)
timers (~> 4.1)
colorator (1.1.0)
concurrent-ruby (1.1.10)
console (1.23.2)
fiber-annotation
fiber-local
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
ffi (1.15.5)
fiber-annotation (0.2.0)
fiber-local (1.0.0)
forwardable-extended (2.6.0)
hashery (2.1.2)
html-proofer (5.0.8)
addressable (~> 2.3)
async (~> 2.1)
nokogiri (~> 1.13)
pdf-reader (~> 2.11)
rainbow (~> 3.0)
typhoeus (~> 1.3)
yell (~> 2.0)
zeitwerk (~> 2.5)
http_parser.rb (0.8.0)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
io-event (1.3.2)
jekyll (4.2.2)
addressable (~> 2.4)
colorator (~> 1.0)
Expand Down Expand Up @@ -44,26 +69,44 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
nokogiri (1.15.4-arm64-darwin)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
pdf-reader (2.11.0)
Ascii85 (~> 1.0)
afm (~> 0.2.1)
hashery (~> 2.0)
ruby-rc4
ttfunk
public_suffix (4.0.7)
racc (1.7.1)
rainbow (3.1.1)
rb-fsevent (0.11.1)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.28.0)
ruby-rc4 (0.1.5)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
timers (4.3.5)
ttfunk (1.7.0)
typhoeus (1.4.0)
ethon (>= 0.9.0)
unicode-display_width (1.8.0)
webrick (1.7.0)
yell (2.2.2)
zeitwerk (2.6.11)

PLATFORMS
ruby

DEPENDENCIES
html-proofer
jekyll (~> 4.2.1)
jekyll-redirect-from
webrick (~> 1.7)
Expand Down
5 changes: 5 additions & 0 deletions _data/go_further.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,32 @@
content_type: article
content_url: /documentation/articles/value-and-reference-types.html
thumbnail_url: #TBD
thumbnail_alt:
release_date: 2023-04-29
external: false
- title: "Generics"
description: "In Swift, generics are a fundamental way to write abstract code. This video walks through the basics of Swift Generics and introducing generics into your code."
content_type: video
content_url: https://developer.apple.com/videos/play/wwdc2022/110352/
thumbnail_url: /assets/images/getting-started/swift-generics-thumbnail.jpg
thumbnail_alt: "A block thumbnail image with three emoji icons: a femail farmer, a cow, and a carrot."
release_date: 2021-06-09
external: true
- title: "Concurrency"
description: "Swift has concurrency features built into the language making it easier to write concurrent code with the assistance of the compiler. This video introduces the async/await mechanism, a key part of Swift Concurrency."
content_type: video
content_url: https://developer.apple.com/videos/play/wwdc2021/10132/
thumbnail_url: /assets/images/getting-started/meet-async-await-thumbnail.jpg
thumbnail_alt: |
A thumbnail image describing a concurrent sequence diagram with five blocks: green into yellow into purple into another yello into another green.
release_date: 2021-06-08
external: true
- title: "Regular Expressions"
description: "Swift provides first-class regular expression support, commonly known as regex, for effective string processing. This video gives an overview of the power and flexibility of Swift Regex."
content_type: video
content_url: https://developer.apple.com/videos/play/wwdc2022/110357/
thumbnail_url: /assets/images/getting-started/regular-expression-thumbnail.jpg
thumbnail_alt: "An image describing a block of code about Regular Expression syntax."
release_date: 2022-06-07
external: true

2 changes: 1 addition & 1 deletion _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@
- title: Blog Post Contributions
name: website-and-blog-post-contributions
- title: Swift Evolution
name: evolution-process
name: swift-evolution
- title: Good First Issues
name: good-first-issues
- title: Contributing Code
Expand Down
4 changes: 2 additions & 2 deletions _includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<p class="copyright">Copyright © {{ site.time | date: '%Y' }} Apple Inc. All rights reserved.</p>
<p class="trademark">Swift and the Swift logo are trademarks of Apple Inc.</p>
<p class="privacy">
<a href="//www.apple.com/privacy/privacy-policy/">Privacy Policy</a>
<a href="//www.apple.com/legal/privacy/en-ww/cookies/">Cookies</a>
<a href="https://www.apple.com/privacy/privacy-policy/">Privacy Policy</a>
<a href="https://www.apple.com/legal/privacy/en-ww/cookies/">Cookies</a>
</p>
</div>
<div class="footer-other">
Expand Down
2 changes: 1 addition & 1 deletion _posts/2015-12-03-swift-3-api-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,5 @@ list](/community/#swift-evolution).
[clang-importer-proposal]: https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md "Better Translation of Objective-C APIs into Swift proposal"
[swift-3-api-guidelines-repo]: https://github.com/apple/swift-3-api-guidelines-review "Swift 3 API Design Guidelines review repository"
[objc-cocoa-guidelines]: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html "Objective-C Coding Guidelines for Cocoa"
[swift-evolution]: /contributing/#evolution-process "Swift evolution process"
[swift-evolution]: /contributing/#swift-evolution "Swift evolution process"
[core-libraries]: /core-libraries "Swift core libraries"
2 changes: 1 addition & 1 deletion _posts/2015-12-03-welcome.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ This website is the home of the Swift project with links to the resources you wi
* The [Swift mailing lists](/community/#mailing-lists) are how we interact
* The [Getting Started](/getting-started/) pages will help you setup a Swift development environment
* The [Download](/download/) page includes pre-built binaries for the supported platforms
* The [Swift Evolution Process](/contributing/#evolution-process) describes how new features are proposed
* The [Swift Evolution Process](/contributing/#swift-evolution) describes how new features are proposed


Welcome to the open source Swift community.
Expand Down
2 changes: 1 addition & 1 deletion _posts/2016-03-21-swift-2.2-released.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Official binaries for Ubuntu 14.04 and Ubuntu 15.10 are [available for download]

#### Apple (Xcode)

For development on Apple's platforms, Swift 2.2 ships as part of [Xcode 7.3](https://developer.apple.com/xcode/download/).
For development on Apple's platforms, Swift 2.2 ships as part of [Xcode 7.3](https://developer.apple.com/download/all/?q=xcode).

### Sources

Expand Down
4 changes: 2 additions & 2 deletions _posts/2021-02-22-black-history-month.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ There are many Black developers in the Swift community creating educational reso

## Pushing Swift in new directions

[Marc Aupont](https://twitter.com/digimarktech) is pushing the boundaries of the Swift ecosystem by using Swift in embedded systems. Learn about how Marc built a robot car using a Raspberry Pi running Swift in his talk from try! Swift NYC 2019: [Swift Without Screens - Powering Connected Devices](https://www.youtube.com/watch?v=VILUaec-sCs). Marc goes into greater detail on writing Swift code for Raspberry Pi in the iPhreaks podcast episode: [iPS 296: Swift on Raspberry PI](https://devchat.tv/iphreaks/ips-296-swift-on-raspberry-pi-with-marc-aupont/).
[Marc Aupont](https://twitter.com/digimarktech) is pushing the boundaries of the Swift ecosystem by using Swift in embedded systems. Learn about how Marc built a robot car using a Raspberry Pi running Swift in his talk from try! Swift NYC 2019: [Swift Without Screens - Powering Connected Devices](https://www.youtube.com/watch?v=VILUaec-sCs). Marc goes into greater detail on writing Swift code for Raspberry Pi in the iPhreaks podcast episode: [iPS 296: Swift on Raspberry PI](https://podcasts.apple.com/pl/podcast/ips-296-swift-on-raspberry-pi-with-marc-aupont/id634022060?i=1000480314894).

[Ish ShaBazz](https://twitter.com/ishabazz) is presenting the Swift community with a different perspective by emphasizing the human side of programming. In his powerful talk from SwiftFest Boston 2019, [Programming with a Purpose](https://www.youtube.com/watch?v=M-7DQJbMapI&feature=youtu.be), Ish tells his inspirational story of how he discovered his purpose, and the valuable lessons he learned along the way, including conquering imposter syndrome with curiosity, and overcoming fear in programming, public speaking, and life.

Expand All @@ -25,4 +25,4 @@ To help young readers discover books written by and featuring people of color, [

## Join in on the celebration!

We are grateful for the perspectives, resources, and innovation that the Black community has brought to Swift. Please join in on the Black History Month celebration over on the [Community Showcase forum](https://forums.swift.org/c/community-showcase/) and share how the Black community has made a positive impact on your journey with Swift. If you are a member of the Black Swift community, we highly encourage you to [join Black in Swift](/diversity/#community-groups) to connect with others in the community!
We are grateful for the perspectives, resources, and innovation that the Black community has brought to Swift. Please join in on the Black History Month celebration over on the [Community Showcase forum](https://forums.swift.org/c/community-showcase/) and share how the Black community has made a positive impact on your journey with Swift. If you are a member of the Black Swift community, we highly encourage you to [join Black in Swift](/diversity/#community-groups) to connect with others in the community!
2 changes: 1 addition & 1 deletion _posts/2023-03-30-swift-5.8-released.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: Swift 5.8 Released!
author: [alexandersandberg]
---

Swift 5.8 is now officially released! 🎉 This release includes major additions to the [language and standard library](#language-and-standard-library), including `hasFeature` to support piecemeal adoption of upcoming features, an improved [developer experience](#developer-experience), improvements to tools in the Swift ecosystem including [Swift-DocC](#swift-docc), [Swift Package Manager](#swift-package-manager), and [SwiftSyntax](#swiftsyntax), refined [Windows support](#windows-platform), and more.
Swift 5.8 is now officially released! 🎉 This release includes major additions to the [language and standard library]({% link _posts/2023-03-30-swift-5.8-released.md%}#language-and-standard-library), including `hasFeature` to support piecemeal adoption of upcoming features, an improved [developer experience](#developer-experience), improvements to tools in the Swift ecosystem including [Swift-DocC](#swift-docc), [Swift Package Manager](#swift-package-manager), and [SwiftSyntax](#swiftsyntax), refined [Windows support](#windows-platform), and more.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is an example of how we can use a liquid helper to build a link, achieving two things:

  1. Since this link includes relative path to this article, when excerpt gets rendered on /blog/ page, the link would still be valid.
  2. {% link %} performs a validation when it's rendering. If the resulting link is invalid, it won't render, and the generation will fail.

The amount of work to change all links lime that would be colossal, though.

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 wonder if we can add a custom tag, something like anchor_url(to_post=post.slug, anchor) and then just search and replace links in posts where <a href="#{whatever}".

That way, it would be easier to convert them all in one pass.


Thank you to everyone in the Swift community who made this release possible. Your Swift Forums discussions, bug reports, pull requests, educational content, and other contributions are always appreciated!

Expand Down
2 changes: 1 addition & 1 deletion community/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ The current Core Team members are:

[Contact via Forums](https://forums.swift.org/new-message?groupname=language-workgroup)

The Language Steering Group comprises experts that the Swift Project Lead and the Core Team have identified as possessing a balance of perspectives and expertise to review, guide, and strategically align changes to the language mindfully. The Language Steering Group reviews and helps iterate [language evolution proposals](/contributing/#evolution-process) from the community, acting as the approver of these proposals. Workgroup members help drive the Swift language forward coherently to create the best possible general-purpose programming language. The Language Steering Group membership is expected to change over time.
The Language Steering Group comprises experts that the Swift Project Lead and the Core Team have identified as possessing a balance of perspectives and expertise to review, guide, and strategically align changes to the language mindfully. The Language Steering Group reviews and helps iterate [language evolution proposals](/contributing/#swift-evolution) from the community, acting as the approver of these proposals. Workgroup members help drive the Swift language forward coherently to create the best possible general-purpose programming language. The Language Steering Group membership is expected to change over time.

The current Language Steering Group members are:

Expand Down
2 changes: 0 additions & 2 deletions contributing/_swift-evolution-process.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
<a name="evolution-process"></a>

## Swift Evolution

Shaping the future of Swift is a community effort that anyone can participate in via the [Evolution section of the Swift forums][swift-evolution-forums].
Expand Down
8 changes: 8 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ services:
&& bundle exec jekyll doctor --source /srv/jekyll --destination /output
&& bundle exec jekyll build --source /srv/jekyll --destination /output"

check-links:
<<: *common
command: /bin/bash -cl "/code/scripts/check_links.sh"
volumes:
- .:/srv/jekyll:cached
- ./.output:/output:z
- .:/code:z

website:
<<: *common
command: /bin/bash -cl "bundle check && bundle exec jekyll serve --source /srv/jekyll --destination /output --host 0.0.0.0 --watch"
Expand Down