A site for the open source community, by the open source Ada community as a way to help people learn about the language
See the docs for how to contribute.
An Open Source Community site for Ada
Home Page: https://ada-lang.io
License: Apache License 2.0
A site for the open source community, by the open source Ada community as a way to help people learn about the language
See the docs for how to contribute.
I would appreciate to have a more compact heading table (say level 1 to 2) some-where.
Thanks
William
Themes from prism-react-renderer are kinda ugly.
Investigate using using Shiki through docusaurus-preset-shiki-twoslash, which uses vscode grammers. Shiki themes.
Top Ticket for tracking Reference Manual Integration work:
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.
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.
The repo misses a license file.
Tracker ticket to show I've applied for Algolia search support, as recommended in the Docusaurus.io docs.
Could you enable Slack support for this repo(/organization)?
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
The main page SVGs are black on transparent background, so they don't show up well in dark mode.
Hey guys,
Looking at the logo for some time now, I did a revision I think is better. Here it is in case you would like to change:
https://github.com/ohenley/files/blob/master/ada_logo_orbitron.svg
Thx!
Add a page to describe setting up an environment for development:
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.
This is especially apparent in https://ada-lang.io/docs/arm/AA-A/AA-A.10/
Add some code blocks with syntax highlighting in a few tabs showcasing some features of the language:
Interactive (user can edit code and hit 'Compile and run' button) would be even nicer.
I'm not sure the best way to do this, which is why I'm opening an issue here.
The table of language comparisons on Programming-with-Ada is awesome. The question is about the appropriate way to port it over to markdown and maybe make it easier to read.
Should it have toggles to enable/disable the C++ and/or Rust columns?
Should this table be generated by data instead of being hardcoded?
Currently, alireVersion
is hardcoded in src/pages/index.js. Instead, fetch https://api.github.com/repos/alire-project/alire/releases/latest somehow before yarn build
and yarn start
.
Use a custom plugin with loadContent() (docusaurus-plugin-remote-content accepts only .md files)
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
Generate versioned files for [83/95/]2005/2012/2022
https://ada-lang.io/docs/learn/cheat-sheet
Repeated rows:
ada-lang-io/docs/learn/cheat-sheet.mdx
Lines 24 to 31 in 36c5ff1
What is N/A?:
ada-lang-io/docs/learn/cheat-sheet.mdx
Lines 135 to 137 in 36c5ff1
Repetition procedure Foo procedure Foo
:
ada-lang-io/docs/learn/cheat-sheet.mdx
Line 675 in 36c5ff1
What is this row?:
ada-lang-io/docs/learn/cheat-sheet.mdx
Lines 235 to 237 in 36c5ff1
And other things that could be improved.
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.
Page "The Big Five Structural Elements" reads like an introduction. The content of page "Building Blocks" could be modified and then appended to the former.
"The Core Tenet of Ada" section in "Building Blocks" also has a quite a big code block.
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!
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.
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 🙂
On a page of a crate:
In 3.2 Types and Subtypes The paragraph number 3 has the content of the actual paragraph number 2 in the 22ARM chapter 3.2.
Also in 3.2 Types and Subtypes There is no paragraph number 4.
So, because of these two drops, the actual paragraph number 3 is numbered 5.
Docusaurus 3 interactions with Mantine and the required prism-react-renderer 2+ upgrade have disable syntax highlighting on the landing page.
If I’m on this page: https://ada-lang.io/docs/arm/AA-10/AA-10.1/#1013--subunits-of-compilation-units and I click on the (15) I end up here: https://ada-lang.io/docs/arm/AA-10/AA-10.1/#p15.
Note, the para number in the ARM is 14, http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-10-1-3.html#p14
Is it worth to collect frequent questions on a dedicated page?
This is separate from the tutorial, so people who don't want to go through the tutorial and just jump straight into setup.
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.
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.
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.
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');
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
For example, the indentation in this line breaks the note box:
ada-lang-io/docs/style-guide/Portability.mdx
Line 2048 in 637c3ca
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?
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:
task_name
and subtype_name
with name
.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.
Both search and usenet sites are light background with dark text. It'd be great if there was a way we could somewhat closely match the colorscheme of the main site with a dark theme with matching contrast. @JeremyGrosser
Use the new 'official' Ada logo?
The only list with online/print books is on the https://github.com/ohenley/awesome-ada page, but it isn't clear on ada-lang.io that that's where a user can find that list.
(if @ohenley is OK with it)
Arg recently created a new website for providing community input in order to simplify the process of suggesting new Ada features or RM corrections:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.