• Stars
    star
    342
  • Rank 123,697 (Top 3 %)
  • Language
    Julia
  • License
    Other
  • Created over 7 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Julia Project website

README

This is the GitHub repository for the Julia Programming Language's main website, julialang.org. The repository for the source code of the language itself can be found at github.com/JuliaLang/julia.

The Julia website is generated using GitHub pages and Franklin.jl, a Julia native package for building static websites.

Making Simple Changes

To suggest a change to the website, you can simply navigate to the page with the content you think should be changed, and edit it. You will be prompted to fork the repo (if you haven't already) and then open a Pull Request. Once your Pull Request is merged, you should see your changes show up on the website in a few minutes or less.

Build previews for each Pull Request will be linked in the comment section of the PR once the site has been successfully build.

Note: please only use fenced code blocks (i.e. code blocks delimited by backticks) and not indented code blocks.

Making More Complex Changes

To suggest a change to the website that is more significant, it is suggested that you make said changes and test them locally on your device. You can do this by simply forking the base repo, cloning it locally onto your device, making the changes you want, and then following the "Installing locally" instructions below.

Once you have validated that everything looks good, you can open a Pull Request and check the Deploy Preview from Netlify as a final sanity check.

Build previews for each Pull Request are available at: https://julialang.netlify.app (note that given the GitHub Actions design, build previews are only available for those who have write access to the repo).

Making modifications and seeing the changes locally

Clone the repository and cd to it. Start julia with julia --project and do

julia> using Pkg; Pkg.instantiate()

julia> using Franklin

julia> serve()
→ Initial full pass...
→ evaluating code [...] (learning/code-examples.md)
→ Starting the server...
✓ LiveServer listening on https://localhost:8000/ ...
  (use CTRL+C to shut down)

Navigate to localhost:8000 in a browser and you should see a preview of any modifications you make locally.

Modifying the CSS: modify the relevant files in _css/.

Modifying the HTML structure: if you want to modify the navbar, or the footer, go to _layout/ and modify the relevant template fragment.

Modifying the landing page: since the landing page has its own design, it is written in HTML with a few insertions of repurposeable fragments where appropriate, just modify index.html

Adding a blog post

Follow the blueprint of the many other blog posts in terms of folder structure and file structure. One important thing to bear in mind is that RSS is a bit picky in terms of what it can accept so be careful for what goes in

  • @def rss = ...
  • @def title = ...

In particular:

  • avoid the use of &, for instance change ML&PL to ML-PL,
  • only use plain text in rss, no links, no markup, no HTML entities.

If in doubt, after running Franklin's server, copy the content of __site/feed.xml into the w3 feed validator, it should show "Valid RSS feed".

Metadata

In order to add <meta aaa="bbb" content="ccc"> tags on your blog post, add

@def meta =[("aaa", "bbb", "ccc"),]

(you can specify multiple tags of course). See for instance Keno's recent blog post.

Looking for broken links

Every so often, one should do an in-depth check that there are no broken links. While Franklin provides a quick way to do this, it's a good idea to do this in depth from time to time. The broken-link-checker package is a pretty neat way to do this. After installing it with npm just do

blc https://julialang.org -ro

(it takes a while, and may require you to do it in several steps).

Add languages for syntax highlighting

Franklin uses highlight.js for syntax highlighting. To add a new language to the library used by this webpage, recompile the library and add a the new language to the list. From the root of the highlight.js repo:

$ node tools/build.js bash c diff javascript json julia julia-repl plaintext python ruby shell ini yaml

Copy the library from build/highlight.min.js to _libs/highlight/highlight.min.js in this repository.

Build Previews on Netlify

Currently, the build previews are run through Logan Kilpatrick's Netlify account. If the account goes offline and the previews are no longer available, all you need to do to restore them is sign up for Netlify, import a git repository (this repo), select the "gh-preview" branch, and then make the custom sub-domain "julialang.netlify.com". You should then be able to build the previews accordingly.

FAQ

tight lists

This is mostly a legacy item. If lists look wrong on the page, please open an issue. You should not have to use @@tight-list ... @@ anymore.

If you want nested lists, make sure the indentation for the nested list is made with spaces and not with tabs.

More Repositories

1

julia

The Julia Programming Language
Julia
44,029
star
2

IJulia.jl

Julia kernel for Jupyter
Julia
2,718
star
3

PackageCompiler.jl

Compile your Julia Package
Julia
1,416
star
4

juliaup

Julia installer and version multiplexer
Rust
982
star
5

Pkg.jl

Pkg - Package manager for the Julia programming language
Julia
587
star
6

JuliaSyntax.jl

The Julia compiler frontend
Julia
274
star
7

METADATA.jl

Metadata for registered Julia packages up to Julia v0.6. No longer maintained. Please see https://github.com/JuliaRegistries/General instead.
Julia
219
star
8

AllocCheck.jl

AllocCheck
Julia
215
star
9

PrecompileTools.jl

Reduce time-to-first-execution of Julia code
Julia
205
star
10

www_old.julialang.org

Julia Project web site (Old)
Jupyter Notebook
150
star
11

Compat.jl

Compatibility across Julia versions
Julia
137
star
12

Example.jl

Example Julia package repo.
Julia
123
star
13

julia-logo-graphics

official versions of the Julia logo
Julia
115
star
14

Tokenize.jl

Tokenization for Julia source code
Julia
104
star
15

JuliaParser.jl

A rewrite of Julia's parser in Julia
Julia
91
star
16

Downloads.jl

Julia
90
star
17

PackageCompilerX.jl

Julia
85
star
18

Microbenchmarks

Microbenchmarks comparing the Julia Programming language with other languages
Jupyter Notebook
83
star
19

PkgDev.jl

Tools for Julia package developers
Julia
70
star
20

Juleps

Julia Enhancement Proposals
67
star
21

FancyDiagnostics.jl

Better parser errors for Julia
Julia
44
star
22

MbedTLS.jl

Wrapper around mbedtls
Julia
42
star
23

TOML.jl

A fast TOML parser for TOML 1.0 written in Julia
Julia
33
star
24

Distributed.jl

Create and control multiple Julia processes remotely for distributed computing. Ships as a Julia stdlib.
Julia
29
star
25

JuliaDoc

Python
28
star
26

docs.julialang.org

Repository for hosting the manual for the Julia language
Julia
26
star
27

StyledStrings.jl

Write with ✨ style ✨ and ease
Julia
24
star
28

SoftGlobalScope.jl

utilities for "soft" global scope in interactive Julia environments
Julia
24
star
29

LinearAlgebra.jl

Julia
21
star
30

BugReporting.jl

Streamlines bug reporting for julia
Julia
17
star
31

devcontainer-features

Julia Development Container Feature
Shell
16
star
32

JuliaSyntaxHighlighting.jl

Julia
13
star
33

NetworkOptions.jl

Julia
12
star
34

libosxunwind

Clone of Apple's libunwind, enhanced for the Julia Profiler
C++
11
star
35

BumpStdlibs.jl

Update the hashes and checksums of all Julia stdlibs in just four clicks.
Julia
11
star
36

mintty-julia

5
star
37

devcontainer-templates

Julia Development Container Template
Shell
5
star
38

Public.jl

Julia
5
star
39

.github

Repository for default community health files
4
star
40

IJuliaCore.jl

Julia
4
star
41

VersionsJSONUtil.jl

Julia
3
star
42

pull-request-state-machine

Python
3
star
43

buildkite-rerun-failed

Julia
2
star
44

devguide.julialang.org

TeX
2
star
45

Test.jl

Julia
1
star