1
1
mirror of https://github.com/anoma/juvix.git synced 2024-09-11 08:15:41 +03:00
Juvix empowers developers to write code in a high-level, functional language, compile it to gas-efficient output VM instructions, and formally verify the safety of their contracts prior to deployment and execution.
Go to file
Jonathan Cubides bd16d3ef2a
Add support for Literate Juvix Markdown (#2448)
This PR adds an initial support for Literate Juvix Markdown files, files
with the extension `.juvix.md`.

Here is a small example of such a file: `Test.juvix.md`.

<pre>
# This is a heading
Lorem ...

```juvix
module Test;

type A := a;

fun : A -> A 
 | _ := a;
```
Other text
</pre>


This initial support enables users to execute common commands such as
typechecking, compilation, and HTML generation. Additionally, a new
command called `markdown` has been introduced. This command replaces
code blocks marked with the juvix attribute with their respective HTML
output, much like the output we obtain when running `juvix html`. In
this version, comments are ignored in the output, including judoc
blocks.

- We intend to use this new feature in combination with this Python
plugin (https://github.com/anoma/juvix-mkdocs) to enhance our
documentation site.



https://github.com/anoma/juvix/assets/1428088/a0c17f36-3d76-42cc-a571-91f885866874


## Future work

Open as issues once this PR is merged, we can work on the following:

- Support imports of Juvix Markdown modules (update the path resolver to
support imports of Literate Markdown files)
- Support (Judoc) comments in md Juvix blocks
- Support Markdown in Judoc blocks
- Update Text editor support, vscode extension and emacs mode (the
highlighting info is a few characters off in the current state)



- Closes #1839 
- Closes #1719
2023-11-10 13:55:36 +01:00
.devcontainer Update pre-commit to check JSON formatting (#2400) 2023-09-28 14:55:35 +02:00
.github Cache .hie directory in CI (#2490) 2023-11-01 14:15:53 +01:00
app Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
assets Remove unused files (#2398) 2023-09-28 14:20:19 +02:00
bench Fix benchmark wasmer command (#2268) 2023-08-03 13:44:36 +01:00
examples Migrate all Juvix projects from juvix.yaml to Package.juvix in the repository (#2503) 2023-11-07 18:11:02 +00:00
gnuplot Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
include/package/PackageDescription Version the PackageDescription module (#2478) 2023-10-30 11:33:36 +00:00
juvix-stdlib@708d920c6e Literal casting (#2457) 2023-11-03 10:01:03 +01:00
licenses Remove unused files (#2398) 2023-09-28 14:20:19 +02:00
runtime Update clang formatting (#2465) 2023-10-23 19:12:56 +02:00
src/Juvix Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
test Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
tests Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
.clang-format Juvix C runtime (#1580) 2022-11-03 09:38:09 +01:00
.github_changelog_generator Update Changelog v0.2.3 🎉 2022-08-15 12:24:42 +02:00
.gitignore Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
.gitmodules Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
.hlint.yaml Add default arguments (#2408) 2023-10-10 23:28:06 +02:00
.pre-commit-config.yaml Update clang formatting (#2465) 2023-10-23 19:12:56 +02:00
cabal.hie.yaml Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
cabal.project Update stackage resolver to LTS 21.6 (#2275) 2023-08-11 11:49:33 +02:00
cabal.project.freeze Update stackage resolver to LTS 21.6 (#2275) 2023-08-11 11:49:33 +02:00
CHANGELOG.md Bump version to 0.5.3 (#2492) 2023-11-01 16:18:33 +00:00
cntlines.sh Minor refactor and script update (#2261) 2023-07-27 17:57:20 +02:00
CONTRIBUTING.md Fix baseUrl for juvix docs in Doctor command (#2122) 2023-05-24 12:14:30 +02:00
LICENSE.md Add new README and md files (#1904) 2023-03-21 20:01:48 +01:00
Makefile test: Run juvix format on juvix packages rather than files (#2505) 2023-11-08 15:54:35 +00:00
migrate-juvix-yaml.sh Migrate all Juvix projects from juvix.yaml to Package.juvix in the repository (#2503) 2023-11-07 18:11:02 +00:00
package.yaml Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01:00
README.md Fix tara url svg (#2406) 2023-09-28 19:05:05 +02:00
stack.hie.yaml Refactor hie.yaml and add entry in the readme (#1672) 2022-12-20 16:45:48 +01:00
stack.yaml Update stackage resolver to LTS 21.6 (#2275) 2023-08-11 11:49:33 +02:00

Juvix

Tara the Juvix mascot

CI Status

The Juvix compiler CI

Nightly build, release and benchmark

Codebase
Open the Juvix Standard Lib in Github Codespace

This repository is specifically dedicated to the compiler of the Juvix programming language.

For any Juvix-related inquiries, we strongly advise visiting the following resources.

Our documentation offers an in-depth understanding of the Juvix programming language. It encompasses a language reference, examples, blog posts, and numerous other resources to facilitate effective use of Juvix.