Giter Site home page Giter Site logo

ada-lang-io's Introduction

ada-lang.io

Join the chat at https://gitter.im/ada-lang/ada-lang-io

A site for the open source community, by the open source Ada community as a way to help people learn about the language

Contribute

See the docs for how to contribute.

ada-lang-io's People

Contributors

8dcc avatar aj-ianozi avatar bracke avatar dkm avatar fabien-chouteau avatar gitter-badger avatar jeremygrosser avatar mgrojo avatar nimaposhtiban avatar onox avatar pyjarrett avatar reznikmm avatar simonjwright 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  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

ada-lang-io's Issues

Limit "Table of content" to level 1-2

I would appreciate to have a more compact heading table (say level 1 to 2) some-where.

  1. «Table of content» is far too long and boring to scroll (I know it’s the official one ... but Ada-Auth’s is visually more compact, and scrollable)
  2. Could you insert a specific «Table of content» for the Standard libraries at https://ada-lang.io/docs/arm/AA-0.3 ?

Thanks
William

Write content for pages in Getting Started section

I've added some stubs to Getting Started section (visible in development build):

getting-started

Content should be added to these pages (they currently just have some headers and "TODO"s) by people who want to help.

Reference Manual Integration

Top Ticket for tracking Reference Manual Integration work:

  • Internal links are broken
  • Special characters not emitted
  • Code samples split across multiple code blocks
  • Links emitted in code, but don't work
  • Hanging items don't work
  • Hanging paragraphs don't work
  • Use admonitions for "Ramifications", etc.
  • Inline formatting is ignored
  • Code samples show link text (maybe a custom code block type to support this?)
  • Syntax, Legality Rules, Static Rules, etc. should be centered.
  • Build a glossary (is this possible?)
  • #73
  • #74
  • Clause references
  • Links to Foreword, Introduction, The Standard Libraries, and Index on the TOC are broken
  • TOC contains Foreword and Introduction
  • Terms in 1.3.1 to 1.3.5 are missing (possibly a new feature of ada-auth.org's draft 34)
  • Margin text should be hidden if its corresponding admonition is also hidden
  • Prefix the paragraph ids with something like "s1", "s2", etc. (because a page contains multiple subclauses)
  • Remove AI numbers from text
  • Bugs (using https://reznikmm.github.io/ada-auth/ (draft 29) as source for paragraph numbers):
    • Paragraphs 12 .. 14 in 3.4.1 are missing when annotations are turned off
    • #72
    • Missing text in 3.5 (before 3.5.1) (see https://ada-lang.io/docs/arm/AA-3/AA-3.5/#p27.2) (This may not be a bug (but still looks weird) because of the text "Paragraphs x through y were moved to...")

Can’t run yarn

This is on macOS.

Installing node, yarn via Homebrew I get node 21.1.0, yarn 1.22.9 - the latter is ancient, I think. Yarn doesn’t run (same report as below re: TypeError: chalk__default.blue is not a function ).

Install node 20.9.0 (the LTS version), enable corepack (needs sudo to create a symlink in /usr/local/bin). Yarn is version 3.2.3.

Session output:

ramoth:ada-lang-io-2 simon$ yarn install
➤ YN0000: ┌ Resolution step
➤ YN0002: │ @docsearch/react@npm:3.2.1 [a0bc0] doesn't provide @algolia/client-search (pd46b7), requested by @algolia/autocomplete-preset-algolia
➤ YN0002: │ @mantine/core@npm:5.3.1 [26060] doesn't provide @emotion/react (pc3f11), requested by @mantine/styles
➤ YN0002: │ docusaurus-plugin-sass@npm:0.2.2 [26060] doesn't provide webpack (p4e925), requested by sass-loader
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0013: │ yallist@npm:4.0.0 can't be found in the cache and will be fetched f
➤ YN0013: │ yaml@npm:1.10.2 can't be found in the cache and will be fetched fro
➤ YN0013: │ yaml@npm:2.1.1 can't be found in the cache and will be fetched from
➤ YN0013: │ yocto-queue@npm:0.1.0 can't be found in the cache and will be fetch
➤ YN0013: │ zwitch@npm:1.0.5 can't be found in the cache and will be fetched fr
➤ YN0000: └ Completed in 0s 714ms
➤ YN0000: ┌ Link step
➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental
➤ YN0007: │ ada-lang-io@workspace:. must be built because it never has been before or the last one failed
➤ YN0007: │ core-js-pure@npm:3.25.0 must be built because it never has been before or the last one failed
➤ YN0007: │ core-js@npm:3.25.0 must be built because it never has been before or the last one failed
➤ YN0007: │ esbuild@npm:0.15.7 must be built because it never has been before or the last one failed
➤ YN0000: └ Completed in 1s 570ms
➤ YN0000: Done with warnings in 2s 490ms
ramoth:ada-lang-io-2 simon$ yarn postinstall
husky - Git hooks installed
ramoth:ada-lang-io-2 simon$ yarn start
/Users/simon/Developer/ada-lang-io-2/.yarn/__virtual__/webpackbar-virtual-871060ede2/0/cache/webpackbar-npm-5.0.2-70d85f1a62-214a734b1d.zip/node_modules/webpackbar/dist/index.cjs:621
const NEXT = " " + chalk__default.blue(pointerSmall) + " ";
                                  ^

TypeError: chalk__default.blue is not a function
    at Object.<anonymous> (/Users/simon/Developer/ada-lang-io-2/.yarn/__virtual__/webpackbar-virtual-871060ede2/0/cache/webpackbar-npm-5.0.2-70d85f1a62-214a734b1d.zip/node_modules/webpackbar/dist/index.cjs:621:35)
    at loadCJSModule (node:internal/modules/esm/translators:208:3)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:234:7)
    at ModuleJob.runSync (node:internal/modules/esm/module_job:208:17)
    at require (node:internal/modules/esm/translators:193:9)
    at Object.<anonymous> (/Users/simon/Developer/ada-lang-io-2/.yarn/__virtual__/@docusaurus-core-virtual-7264c45998/0/cache/@docusaurus-core-npm-2.2.0-7ed3f550ad-ff47e6cf85.zip/node_modules/@docusaurus/core/lib/webpack/plugins/LogPlugin.js:10:46)
    at loadCJSModule (node:internal/modules/esm/translators:208:3)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:234:7)
    at ModuleJob.runSync (node:internal/modules/esm/module_job:208:17)
    at require (node:internal/modules/esm/translators:193:9)

Node.js v20.9.0

Deleted yarn.lock, re-run: same result.

Important keywords for search engines

When searching for Ada sites one usually has to add "programming", "development" or "language", otherwise we know the usual suspects that the engine retrieves. I know the current content is only a stub, but currently there are no instances of those words (unless search engines consider the abbreviations "lang" and "dev" as synonym). In any case, I think these are important keywords to include in the final main page.

Previous / Next buttons on top of page

I would appreciate to have «Previous» / «Next» buttons (also) on top of each page.

I (we ?) go from pages to pages essentially when you are searching/reading through a Standard Library

Thanks
William

Environment setup page

Add a page to describe setting up an environment for development:

  • Using VS Code + Ada language server
  • User GNAT Studio
  • How to do debugging

Verify autodeploy/push

When I run npm run deploy it seems like it overwrites Github's targeting of ada-lang.io. I'm not sure if I missed a setting somewhere. Also, the site should autodeploy without us needing to use docusaurus script.

Upgrade to Docusaurus v3

Docusaurus v3.0 was released a few months ago. It brings a few breaking changes and major updated to its dependencies, specially MDX. They have an [upgrade guide] available that details the tasks that would need to be carried out in order to upgrade a v2 project to a v3 one.

I am opening this issue since I believe it would be best to upgrade major project dependencies, specially when there are breaking changes, in order to not fall behind and accumulate technical debt.

I personally do not have the time nor knowledge to carry out this task, but I think it would be benefitial to the project overall. The latests Docusaurus version is currently v3.1, which fixes some bugs from v3.0.

Best regards,
Fer

Integrate Reference Manual

  • Just one reference manual (no completely distinct ARM and AARM)
  • Provide a simple way (an on/off switch) to show/hide the annotations of the AARM
  • Current ARM has some code snippets, these could get syntax highlighting

Some problems in Syntax Cheat Sheet

https://ada-lang.io/docs/learn/cheat-sheet

Repeated rows:

<tr>
<td> Pointer </td>
<td> Access All </td>
</tr>
<tr>
<td> Pointer </td>
<td> Access All </td>
</tr>

What is N/A?:

<td></td>
<td>
<strong>N/A</strong>

Repetition procedure Foo procedure Foo:

<CodeBlock>overriding procedure Foo procedure Foo(obj : in Object)</CodeBlock>

What is this row?:

<td></td>
<td>
<CodeBlock>pragma Restrictions(No_Dependencies =&gt; Other_Package)</CodeBlock>

And other things that could be improved.

Integrate other personal tools available in the Ada community

It would be nice to have these "community" tools in the site. What do you think? I ping the authors so they are aware of the discussion and can express their permissions or turndowns.

I'm not sure about the technical side. I suppose the dynamic pages would need their own subdomain and hosting, but could follow the same site style and backlinks. Awesome-ada, in turn, could be copied on change and directly included in docsaurus inserting a link to the original for edition and attribution.

Mixing subprogram keywords in documentation

While the documentation does elaborate that procedures and functions can be referred to as subprograms, there are few spots where the verbiage is unclear. That is, referring to procedures as functions.

The fix can be as simple as replacing the use of function with subprogram or procedure.

Very nice job with the site! I love Ada. Looking forward to using Alire more in my Ada projects!

Add analytics

There's a Docusaurus plugin plugin-google-gtag for Google Analytics 4 (free?) if we want people to sell their soul to Google.

OSS options are Matomo (€ 19/m, cloud in Germany, see here for comparison with GA4) and PostHog (cloud (in the US?), free first 1 million events). Both can be self-hosted.

Animated sequence of background photos on landing page

In branch topic/hero-animated-bg I have implemented the CSS to perform an animation of multiple background photos. It takes about 20s to transition to the next photo.

The placeholder photos should be replaced with some showing hardware/apps which actually use Ada.

I'm not 100% sure about this feature though; it looks nice, but it also requires fetching of multiple images. It depends on whether people are excited about it or not 🙂

Add Crates page

  • List of all crates
  • Top 10 last updated crates
  • Top 10 newest crates

On a page of a crate:

  • Display crate's README.md
  • Published versions
  • Dependencies and dependent crates

Upgrade Mantine to version 7

Docusaurus 3 interactions with Mantine and the required prism-react-renderer 2+ upgrade have disable syntax highlighting on the landing page.

FAQ page

Is it worth to collect frequent questions on a dedicated page?

Doc: Environment setup

Objectives

  • Describe how to set up an environment for working in Ada.
  • Recommended IDE, Editors, and Plugins
  • Basic Alire usage
  • Debugging
  • Setting up unit tests
  • Enabling and disabling checks during development

This is separate from the tutorial, so people who don't want to go through the tutorial and just jump straight into setup.

Move AI references to outside of main text

So, this is a bit of an unconventional suggestion, and diverges significantly from the AARM/LRM at ada-auth.org, but I think it would definitely make things easier to understand and follow.

As it currently stands, AIs are liberally inserted throughout the text of the AARM, and for me at least this interrupts my reading flow. (AIs are also duplicated heavily in some sections.) Thus, my suggestion is to do what a lot of texts do when they need to cite something, and add something like a "references in text" (or "issues in text" or something along those lines) section that lists all the AIs and their titles in one convenient section. I don't know how feasible this is (it'd require modification of the formatting tool) but it would make comprehending the (annotated) reference manual much easier, I think.

Links from Wikibooks to ada-lang.io ARM

I was experimenting with the Wikibooks template we use for linking to the official ARM. My idea was to add an additional link to the ada-lang.io edition.

The links could be displayed as:

C.3.2: The Package Interrupts (Annotated) (ada-lang.io)

There is a problem with three level sections, though, the URL is a bit complex for the MediaWiki template mechanism (or my current knowledge of it). The issue is with the inclusion of the internal section title in the anchor links. Consequently, without implementing a solution here or in Wikibooks, the links would be only up to the level two section pages.

My trial is currently stored in https://en.wikibooks.org/wiki/User:ManuelGR/Template:Ada/RM

Let me know if you are interested, and when the change should be implemented, considering that the ARM formatting is still work-in-progress.

Line 5 is cut off on Ada code snippet

On the main page, the line is cut off on the Ada code snippet, at least for my computer in Firefox and Chrome. See attached screenshot.

Screen Shot 2022-09-10 at 11 42 40 AM

The simplest solution is probably to change line 5 from:

     with Dynamic_Predicate => (for all C of GUID => C in '0' .. '9' | 'a' .. 'f');

To:

     with Dynamic_Predicate =>
       (for all C of GUID => C in '0' .. '9' | 'a' .. 'f');

macOS quarantines the Alire executable

On the Ada tab, in 'Set-up Environment', it would be good if - on macOS - this additional note could be added after downloading (and unpacking) (see alire/doc/getting_started.md):

If you try to run it on recent versions of macOS, you will get a popup saying “alr” cannot be opened because the developer cannot be verified. and inviting you to move it to the bin. The way round this is to remove the quarantine attribute,

$ xattr -d com.apple.quarantine bin/alr

Broken notes in many pages of the Style Guide

For example, the indentation in this line breaks the note box:

See https://ada-lang.io/docs/style-guide/Portability#inputoutput-1

It happens after all the lists.

I run the import-style-guide expecting to find an easy-to-fix bug, but in my output all lines have correct indentation.

So, what happens? Differing pandoc versions (mine is 2.5)? Already fixed, but output not synchronized?

Paragraph 1.1.4(14) needs an alternative for assistive technology

This may not be the best place to report this, but this seemed like the best forum for it. Paragraph 1.1.4(14) (which states that "[I]f the name of any syntactic category starts with an italicized part, it is equivalent to the category name without the italicized part," and that "[T]he italicized part is intended to convey some semantic information") makes the manual difficult to comprehend (particularly in text form) via assistive technology. Though assistive technology can identify differences in font and style, it is usually a global setting, and not something that can be set at the process or document level. This makes the grammar more difficult to read because it raises questions that the document answers to individuals who can see these differences. I see a few options to resolve this problem:

  1. When generating the content of the RM and ARM, replace the nonterminals with what they represent. Using the example provided in 1.1.4(14) as an example, we would replace task_name and subtype_name with name.
  2. Provide an alternative view of the manual that performs option 1.
  3. Indicate, via extra BNF productions, what each italicized reference refers to. For example, the definition which specifies subtype_name (3.2.2(4)) would have an extra production, changing it from its current form to:
2/3     {AI05-0183-1} subtype_declaration ::= 
           subtype defining_identifier is subtype_indication
                [aspect_specification];

3/2     {AI95-00231-01} subtype_indication ::=  [null_exclusion
        ] subtype_mark [constraint]

4       subtype_mark ::= subtype_name

5       subtype_name ::= name

5.a         Ramification: Note that name includes attribute_reference; thus,
            S'Base can be used as a subtype_mark.

5.b         Reason: We considered changing subtype_mark to subtype_name.
            However, existing users are used to the word "mark," so we're
            keeping it.

6       constraint ::= scalar_constraint | composite_constraint

7       scalar_constraint ::= 
             range_constraint | digits_constraint | delta_constraint

8       composite_constraint ::= 
             index_constraint | discriminant_constraint

And so on and so forth throughout the entirety of the grammar. It might also be wise to add any other missing BNF constructs; that is, convert narrative rules into BNF, at least in the syntax summary, since that is (supposed) to be a complete description of the language, and one should be able to build a minimal parser using that summary alone, excluding all the checks and extra implementation-specific details. If this is something that is more suited to the Ada RM mailing list, or the Ada RM RFC repository that AdaCore has open, I can submit this there too, but I'm wondering if anything can be done about the manual in its current incarnation without needing to potentially publish and ratify an entirely new version.

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.