Code Monkey home page Code Monkey logo

grain-lang.org's Introduction

Grain Website

Documentation for the Grain programming language at grain-lang.org.

Netlify Status

About

This documentation site is a Hexo site. All of the docs are generated from Markdown files, and Hexo builds a static website that is hosted on Netlify.

Contributing

Cloning the Repository

Since this repo contains a git submodule, it's easiest to clone while including submodules:

git clone [email protected]:grain-lang/grain-lang.org.git --recurse-submodules

If you've already cloned the repo without the submodules, you can pull them like so:

git pull --recurse-submodules

Editing a Document

To make a change to a document, edit the corresponding Markdown file in src. The file path matches the URL path after /docs, but if you have trouble finding the page you're looking for, you can click the "Edit on GitHub" button at the top of page on the website.

Adding a New Document

Create your new Markdown file in src. You'll also need to update docs_config.yml to include your new page in the sidebar. Each document starts with some front-matter, which is a bit of yml/json that is given to the renderer. For now, this only includes the title of the page. Since the title of the page is an h1, headers in your document should begin at level 2:

---
title: Some Title of Some Topic
---

## Content Begins Here

Previewing the Site

Once a PR is created, Netlify will create a preview site and comment on the PR with a link. If you'd like to view your changes locally,

For the docs, run:

npm install
npm run start-docs

For the blog, run:

npm install
npm run start-blog

This will install all build dependencies and serve the website on port 3000.

grain-lang.org's People

Contributors

0xtmphey avatar av8ta avatar c0d3d avatar cometkim avatar conaclos avatar davidpratten avatar dependabot[bot] avatar designsbysm avatar ecancino avatar grainbot avatar handlebauer avatar jghoman avatar jturner avatar keichinger avatar marcusroberts avatar marktiedemann avatar maxnordlund avatar ohana54 avatar ospencer avatar peblair avatar phated avatar razzius avatar saulecabrera avatar seanchen1991 avatar shimaore avatar spotandjake avatar technosophos avatar tiegz avatar tomayac avatar tomc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grain-lang.org's Issues

Document destructuring

There's a very brief mention of destructuring of tuples in the Basics section of the guide, but we don't really discuss them anywhere else. We should add more thorough destructuring information, both in the guide and on the Bindings page.

Show nav links on mobile

Right now, you can't use the nav links on mobile (on the home page) because they're hidden. As a first pass, we could just do the same thing that we do on the docs.

Discussion: How should we document the language itself

Currently, not much of the language itself is documented on the website. I just found Bindings today and noticed that it has a pretty plain way of representing the language constructs for let bindings.

I wonder if there's a better and more clear way for us to document the actual language.

Page: Difference between X (or why X instead of X)

When shown Grain, many people ask questions like "What's the difference between Grain and OCaml?" or "Why didn't you just compile OCaml to WASM?", etc etc.

I think we could have a page for why Grain exists and how it differs from OCaml/Reason/Rust/Insert-functional-language-here.

[Windows] Can't build the docs on Windows

Problem Description

Currently, it seems that the docs can be built only on Linux & MacOS but not on Windows.

Steps to reproduce

  1. Clone the repository & initialize the submodules.
  2. Run npm install
  3. Run npm run start-docs

Expected behavior

The docs should build & the stdout should show that the static files are being served on port 3000.

Actual behavior

The docs are built but the express server doesn't serve them on 3000.

Additional Information

OS Platform & Version: Windows 10, Version 10.0.18363, Build 18363

Document type system specifics

This would be a page on what kind of type system we have, features, etc. It should live in the language constructs section (though we should consider renaming that section).

Related: #82

Github Pages HTTPS

Github pages now supports HTTPS and uses a CDN, so no need for the current reverse proxy.

Hello world

As a very beginner, I would find a "hello world" example useful.

Being able to see the results in the interactive console would also help me with a fast confirmation that my setup is OK.

Blog?

I'd like to write a blog introducing the let mut feature that was PRed today. I didn't get a chance to write it tonight, but I hope to put something together soon.

It would be great to be able to include the blog posts in the static site generator engine.

Streamline local development

Because the docs and the blog are separate Hexo sites, there are separate commands to run the combined server. I think this can be solved using yarn workspaces.

See #87 as well.

Dark mode

It'd be pretty sick if there were a dark mode option for the docs.

Improve instructions for Getting Grain on Windows

You can download it directly from GitHub.

For Linux and MacOS, there's an added "(...) or using curl."

Since 2018, curl is available on Windows by default (see: https://devblogs.microsoft.com/commandline/tar-and-curl-come-to-windows/). So the docs could be updated.

Alternatively, ...

..., if you want to support older systems, there's the Invoke-WebRequest PowerShell cmdlet that can be used to download a file (e.g. Invoke-WebRequest -Uri <URL> -OutFile <FILE> -UseBasicParsing or iwr <URL> -o <FILE> -useb for short).


You’ll either want to put it into your path or keep it inside your project and invoke with ./grain-win-x64.exe.

./ only works in PowerShell. In cmd, you'd want .\:

C:\> ./grain-win-x64.exe -v
'.' is not recognized as an internal or external command,
operable program or batch file.

C:\> .\grain-win-x64.exe -v
Grain cli 0.3.1
Grain compiler 0.3.1

.\ works in PowerShell, too, so I'd suggest using .\grain-win-x64.exe instead.

As a side note, ...

..., if you want to save 4 characters, you can omit .exe: Since .exe is defined as a path extension in the PATHEXT environment variable, .\grain-win-x64 is equivalent to .\grain-win-x64.exe in both cmd and PowerShell.

Also, if the file is in the same directory, .\ is not necessary in cmd, so grain-win-x64 -v is equivalent to .\grain-win-x64 -v. (This does not apply to PowerShell, however.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.