Add the basic template to generate webpage

This commit is contained in:
Gelieza K committed 2023-07-31 15:13:50 +02:00
1 parent 5b47a090a5
commit 65e88dff8e
41 files changed
+47715

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
name: CI
on:
push:
branches:
- main
tags: ['*']
pull_request:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1.9'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
docs:
name: Documentation
runs-on: ubuntu-latest
permissions:
contents: write
statuses: write
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@v1
with:
version: '1'
- name: Set up Python
uses: actions/setup-python@v4.7.0
with:
python-version: '3.9'
- name: Install nbconvert
run: |
python -m pip install jupyter nbconvert
- name: Configure doc environment
run: |
julia --project=docs/ -e '
using Pkg
Pkg.develop(PackageSpec(path=pwd()))
Pkg.instantiate()'
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+10
View File
@@ -0,0 +1,10 @@
name = "XM_40017"
uuid = "bac2549d-7fb4-47a9-ab16-d1e9b77d8fc7"
authors = ["Francesc Verdugo <f.verdugo.rojano@vu.nl>"]
version = "0.1.0"
[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[targets]
test = ["Test"]
+7
View File
@@ -0,0 +1,7 @@
# XM_40017
Jupyter notebook scripts for the course Programming Large-Scale Parallel Systems (XM_40017) at Vrije Universiteit Amsterdam.
- [**Go to webpage**](https://fverdugo.github.io/XM_40017/dev)
## Run webpage locally
In XM_40017 folder, call `using LiveServer; servedocs(skip_dir=joinpath("docs","src","notebook-output"))` in terminal.
+3
View File
@@ -0,0 +1,3 @@
build/
site/
Manifest.toml
+3
View File
@@ -0,0 +1,3 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
XM_40017 = "bac2549d-7fb4-47a9-ab16-d1e9b77d8fc7"
+62
View File
@@ -0,0 +1,62 @@
using XM_40017
using Documenter
# Convert to html using nbconvert
function convert_notebook_to_html(notebook_path; output_name = "index", output_dir = "./docs/src/notebook-output", theme = "dark")
command_jup = "jupyter"
command_nbc = "nbconvert"
output_format = "--to=html"
theme = "--theme=$theme"
output = "--output=$output_name"
output_dir = "--output-dir=$output_dir"
infile = notebook_path
run(`$command_jup $command_nbc $output_format $output $output_dir $theme $infile`)
end
# Resize iframes using IframeResizer
function modify_notebook_html( html_name )
content = open( html_name, "r" ) do html_file
read( html_file, String )
end
content = replace(content,
r"(<script\b[^>]*>[\s\S]*?<\/script>\K)" =>
s"\1\n\t<script src='../assets/iframeResizer.contentWindow.min.js'></script>\n";
count = 1
)
content = replace_colors(content)
open( html_name, "w" ) do html_file
write( html_file, content )
end
return nothing
end
# Replace colors to match Documenter.jl
function replace_colors(content)
content = replace( content, "--jp-layout-color0: #111111;" => "--jp-layout-color0: #1f2424;")
content = replace(content, "--md-grey-900: #212121;" => "--md-grey-900: #282f2f;")
return content
end
convert_notebook_to_html("docs/src/notebooks/matrix_matrix.ipynb", output_name = "matrix_matrix")
modify_notebook_html("docs/src/notebook-output/matrix_matrix.html")
convert_notebook_to_html("docs/src/notebooks/notebook-hello.ipynb", output_name = "notebook-hello")
modify_notebook_html("docs/src/notebook-output/notebook-hello.html")
makedocs(;
modules=[XM_40017],
authors="Francesc Verdugo <f.verdugo.rojano@vu.nl>",
repo="https://github.com/fverdugo/XM_40017/blob/{commit}{path}#{line}",
sitename="XM_40017",
format=Documenter.HTML(;
assets = ["assets/iframeResizer.min.js", "assets/custom.css"],
prettyurls=get(ENV, "CI", "false") == "true",
canonical="https://fverdugo.github.io/XM_40017",
edit_link="main",),
pages=["Home" => "index.md","Hello World" => "notebook-hello.md", "Notebooks"=>["Matrix Multiplication"=>"matrix_matrix.md"]],
)
deploydocs(;
repo="github.com/fverdugo/XM_40017",
devbranch="main",
)
+4
View File
@@ -0,0 +1,4 @@
#documenter .docs-sidebar .docs-logo > img,
html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
max-height: 8em;
}
+9
View File
@@ -0,0 +1,9 @@
/*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v4.3.5 - 2023-03-08
* Desc: Include this file in any page being loaded into an iframe
* to force the iframe to resize to the content size.
* Requires: iframeResizer.min.js on host page.
* Copyright: (c) 2023 David J. Bradshaw - dave@bradshaw.net
* License: MIT
*/
!function(a){if("undefined"!=typeof window){var r=!0,P="",u=0,c="",s=null,D="",d=!1,j={resize:1,click:1},l=128,q=!0,f=1,n="bodyOffset",m=n,H=!0,W="",h={},g=32,B=null,p=!1,v=!1,y="[iFrameSizer]",J=y.length,w="",U={max:1,min:1,bodyScroll:1,documentElementScroll:1},b="child",V=!0,X=window.parent,T="*",E=0,i=!1,Y=null,O=16,S=1,K="scroll",M=K,Q=window,G=function(){x("onMessage function not defined")},Z=function(){},$=function(){},_={height:function(){return x("Custom height calculation function not defined"),document.documentElement.offsetHeight},width:function(){return x("Custom width calculation function not defined"),document.body.scrollWidth}},ee={},te=!1;try{var ne=Object.create({},{passive:{get:function(){te=!0}}});window.addEventListener("test",ae,ne),window.removeEventListener("test",ae,ne)}catch(e){}var oe,o,I,ie,N,A,C={bodyOffset:function(){return document.body.offsetHeight+ye("marginTop")+ye("marginBottom")},offset:function(){return C.bodyOffset()},bodyScroll:function(){return document.body.scrollHeight},custom:function(){return _.height()},documentElementOffset:function(){return document.documentElement.offsetHeight},documentElementScroll:function(){return document.documentElement.scrollHeight},max:function(){return Math.max.apply(null,e(C))},min:function(){return Math.min.apply(null,e(C))},grow:function(){return C.max()},lowestElement:function(){return Math.max(C.bodyOffset()||C.documentElementOffset(),we("bottom",Te()))},taggedElement:function(){return be("bottom","data-iframe-height")}},z={bodyScroll:function(){return document.body.scrollWidth},bodyOffset:function(){return document.body.offsetWidth},custom:function(){return _.width()},documentElementScroll:function(){return document.documentElement.scrollWidth},documentElementOffset:function(){return document.documentElement.offsetWidth},scroll:function(){return Math.max(z.bodyScroll(),z.documentElementScroll())},max:function(){return Math.max.apply(null,e(z))},min:function(){return Math.min.apply(null,e(z))},rightMostElement:function(){return we("right",Te())},taggedElement:function(){return be("right","data-iframe-width")}},re=(oe=Ee,N=null,A=0,function(){var e=Date.now(),t=O-(e-(A=A||e));return o=this,I=arguments,t<=0||O<t?(N&&(clearTimeout(N),N=null),A=e,ie=oe.apply(o,I),N||(o=I=null)):N=N||setTimeout(Oe,t),ie});k(window,"message",function(t){var n={init:function(){W=t.data,X=t.source,se(),q=!1,setTimeout(function(){H=!1},l)},reset:function(){H?R("Page reset ignored by init"):(R("Page size reset by host page"),Me("resetPage"))},resize:function(){L("resizeParent","Parent window requested size check")},moveToAnchor:function(){h.findTarget(i())},inPageLink:function(){this.moveToAnchor()},pageInfo:function(){var e=i();R("PageInfoFromParent called from parent: "+e),$(JSON.parse(e)),R(" --")},message:function(){var e=i();R("onMessage called from parent: "+e),G(JSON.parse(e)),R(" --")}};function o(){return t.data.split("]")[1].split(":")[0]}function i(){return t.data.slice(t.data.indexOf(":")+1)}function r(){return t.data.split(":")[2]in{true:1,false:1}}function e(){var e=o();e in n?n[e]():("undefined"==typeof module||!module.exports)&&"iFrameResize"in window||window.jQuery!==a&&"iFrameResize"in window.jQuery.prototype||r()||x("Unexpected message ("+t.data+")")}y===(""+t.data).slice(0,J)&&(!1===q?e():r()?n.init():R('Ignored message of type "'+o()+'". Received before initialization.'))}),k(window,"readystatechange",Ne),Ne()}function ae(){}function k(e,t,n,o){e.addEventListener(t,n,!!te&&(o||{}))}function ue(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ce(e){return y+"["+w+"] "+e}function R(e){p&&"object"==typeof window.console&&console.log(ce(e))}function x(e){"object"==typeof window.console&&console.warn(ce(e))}function se(){function e(e){return"true"===e}function t(e,t){return"function"==typeof e&&(R("Setup custom "+t+"CalcMethod"),_[t]=e,e="custom"),e}{var n;n=W.slice(J).split(":"),w=n[0],u=a===n[1]?u:Number(n[1]),d=a===n[2]?d:e(n[2]),p=a===n[3]?p:e(n[3]),g=a===n[4]?g:Number(n[4]),r=a===n[6]?r:e(n[6]),c=n[7],m=a===n[8]?m:n[8],P=n[9],D=n[10],E=a===n[11]?E:Number(n[11]),h.enable=a!==n[12]&&e(n[12]),b=a===n[13]?b:n[13],M=a===n[14]?M:n[14],v=a===n[15]?v:e(n[15]),R("Initialising iFrame ("+window.location.href+")"),"iFrameResizer"in window&&Object===window.iFrameResizer.constructor&&(n=window.iFrameResizer,R("Reading data from page: "+JSON.stringify(n)),Object.keys(n).forEach(de,n),G="onMessage"in n?n.onMessage:G,Z="onReady"in n?n.onReady:Z,T="targetOrigin"in n?n.targetOrigin:T,m="heightCalculationMethod"in n?n.heightCalculationMethod:m,M="widthCalculationMethod"in n?n.widthCalculationMethod:M,m=t(m,"height"),M=t(M,"width"))}function o(e){F(0,0,e.type,e.screenY+":"+e.screenX)}function i(e,t){R("Add event listener: "+t),k(window.document,e,o)}R("TargetOrigin for parent set to: "+T),le("margin",function(e,t){-1!==t.indexOf("-")&&(x("Negative CSS value ignored for "+e),t="");return t}("margin",c=a===c?u+"px":c)),le("background",P),le("padding",DLine truncated
//# sourceMappingURL=iframeResizer.contentWindow.map
+8
View File
@@ -0,0 +1,8 @@
/*! iFrame Resizer (iframeSizer.min.js ) - v4.3.5 - 2023-03-08
* Desc: Force cross domain iframes to size to content.
* Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
* Copyright: (c) 2023 David J. Bradshaw - dave@bradshaw.net
* License: MIT
*/
!function(d){var c,u,a,v,x,I,M,r,f,k,i,l,z;function m(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function F(e,n,i){e.addEventListener(n,i,!1)}function B(e,n,i){e.removeEventListener(n,i,!1)}function p(e){return x+"["+(n="Host page: "+(e=e),n=window.top!==window.self?window.parentIFrame&&window.parentIFrame.getId?window.parentIFrame.getId()+": "+e:"Nested host page: "+e:n)+"]";var n}function t(e){return k[e]?k[e].log:u}function O(e,n){o("log",e,n,t(e))}function E(e,n){o("info",e,n,t(e))}function R(e,n){o("warn",e,n,!0)}function o(e,n,i,t){!0===t&&"object"==typeof window.console&&console[e](p(n),i)}function w(e){function i(){t("Height"),t("Width"),P(function(){H(w),C(b),l("onResized",w)},w,"init")}function n(){var e=p.slice(I).split(":"),n=e[1]?parseInt(e[1],10):0,i=k[e[0]]&&k[e[0]].iframe,t=getComputedStyle(i);return{iframe:i,id:e[0],height:n+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.paddingTop?parseInt(e.paddingTop,10):0,e=e.paddingBottom?parseInt(e.paddingBottom,10):0;return n+e}(t)+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.borderTopWidth?parseInt(e.borderTopWidth,10):0,e=e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0;return n+e}(t),width:e[2],type:e[3]}}function t(e){var n=Number(k[b]["max"+e]),i=Number(k[b]["min"+e]),e=e.toLowerCase(),t=Number(w[e]);O(b,"Checking "+e+" is in range "+i+"-"+n),t<i&&(t=i,O(b,"Set "+e+" to min value")),n<t&&(t=n,O(b,"Set "+e+" to max value")),w[e]=""+t}function o(){var t=e.origin,o=k[b]&&k[b].checkOrigin;if(o&&""+t!="null"&&!function(){if(o.constructor!==Array)return e=k[b]&&k[b].remoteHost,O(b,"Checking connection is from: "+e),t===e;var e,n=0,i=!1;for(O(b,"Checking connection is from allowed list of origins: "+o);n<o.length;n++)if(o[n]===t){i=!0;break}return i}())throw new Error("Unexpected message received from: "+t+" for "+w.iframe.id+". Message was: "+e.data+". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.");return 1}function a(e){return p.slice(p.indexOf(":")+v+e)}function s(i,t){var e,n,o;e=function(){var e,n;A("Send Page Info","pageInfo:"+(e=document.body.getBoundingClientRect(),n=w.iframe.getBoundingClientRect(),JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(document.documentElement.clientHeight,window.innerHeight||0),clientWidth:Math.max(document.documentElement.clientWidth,window.innerWidth||0),offsetTop:parseInt(n.top-e.top,10),offsetLeft:parseInt(n.left-e.left,10),scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,documentHeight:document.documentElement.clientHeight,documentWidth:document.documentElement.clientWidth,windowHeight:window.innerHeight,windowWidth:window.innerWidth})),i,t)},n=32,z[o=t]||(z[o]=setTimeout(function(){z[o]=null,e()},n))}function r(e){e=e.getBoundingClientRect();return W(b),{x:Math.floor(Number(e.left)+Number(M.x)),y:Math.floor(Number(e.top)+Number(M.y))}}function d(e){var n=e?r(w.iframe):{x:0,y:0},i={x:Number(w.width)+n.x,y:Number(w.height)+n.y};O(b,"Reposition requested from iFrame (offset x:"+n.x+" y:"+n.y+")"),window.top===window.self?(M=i,c(),O(b,"--")):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](i.x,i.y):R(b,"Unable to scroll to requested position, window.parentIFrame not found")}function c(){!1===l("onScroll",M)?S():C(b)}function u(e){var e=e.split("#")[1]||"",n=decodeURIComponent(e),n=document.getElementById(n)||document.getElementsByName(n)[0];n?(n=r(n),O(b,"Moving to in page link (#"+e+") at x: "+n.x+" y: "+n.y),M={x:n.x,y:n.y},c(),O(b,"--")):window.top===window.self?O(b,"In page link #"+e+" not found"):window.parentIFrame?window.parentIFrame.moveToAnchor(e):O(b,"In page link #"+e+" not found and window.parentIFrame not found")}function f(e){var n,i={};i=0===Number(w.width)&&0===Number(w.height)?{x:(n=a(9).split(":"))[1],y:n[0]}:{x:w.width,y:w.height},l(e,{iframe:w.iframe,screenX:Number(i.x),screenY:Number(i.y),type:w.type})}function l(e,n){return T(b,e,n)}function m(){switch(k[b]&&k[b].firstRun&&k[b]&&(k[b].firstRun=!1),w.type){case"close":N(w.iframe);break;case"message":n=a(6),O(b,"onMessage passed: {iframe: "+w.iframe.id+", message: "+n+"}"),l("onMessage",{iframe:w.iframe,message:JSON.parse(n)}),O(b,"--");break;case"mouseenter":f("onMouseEnter");break;case"mouseleave":f("onMouseLeave");break;case"autoResize":k[b].autoResize=JSON.parse(a(9));break;case"scrollTo":d(!1);break;case"scrollToOffset":d(!0);break;case"pageInfo":s(k[b]&&k[b].iframe,b),r=b,e("Add ",F),k[r]&&(k[r].stopPageInfo=o);break;case"pageInfoStop":k[b]&&k[b].stopPageInfo&&(k[b].stopPageInfo(),delete k[b].stopPageInfo);break;case"inPageLink":u(a(9));break;case"reset":j(w);break;case"init":i(),l("onInit",w.iframe);break;default:0===Number(w.width)&&0===Number(w.height)?R("Unsupported message received ("+w.type+"), this is likely due to the iframe containing a later version of iframe-resizer than the parent page"):i()}function e(n,i){function t()Line truncated
//# sourceMappingURL=iframeResizer.map
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

+7
View File
@@ -0,0 +1,7 @@
```@meta
CurrentModule = XM_40017
```
# XM_40017
Welcome!
+31
View File
@@ -0,0 +1,31 @@
```@meta
EditURL = "https://github.com/fverdugo/XM_40017/blob/main/notebooks/notebook.ipynb"
```
```@raw html
<div class="admonition is-success">
<header class="admonition-header">Tip</header>
<div class="admonition-body">
<ul>
<li>
Download this notebook and run it locally on your machine [recommended]. Click <a href="notebooks/matrix_matrix.ipynb" download>here</a>.
</li>
<li>
You can also run this notebook in the cloud using Binder. Click <a href="https://mybinder.org/v2/gh/fverdugo/XM_40017/gh-pages?filepath=dev/notebook.ipynb">here</a>
.
</li>
</ul>
</div>
</div>
```
```@raw html
<iframe id="notebook" src="../notebook-output/matrix_matrix.html" style="width:100%"></iframe>
<script>
document.addEventListener('DOMContentLoaded', function(){
var myIframe = document.getElementById("notebook");
iFrameResize({log:true}, myIframe);
});
</script>
```
+32
View File
@@ -0,0 +1,32 @@
```@meta
EditURL = "https://github.com/fverdugo/XM_40017/blob/main/docs/src/notebooks/notebook-hello.ipynb"
```
```@raw html
<div class="admonition is-success">
<header class="admonition-header">Tip</header>
<div class="admonition-body">
<ul>
<li>
Download this notebook and run it locally on your machine [recommended]. Click <a href="notebooks/notebook-hello.ipynb" download>here</a>.
</li>
<li>
You can also run this notebook in the cloud using Binder. Click <a href="https://mybinder.org/v2/gh/fverdugo/XM_40017/gh-pages?filepath=dev/notebook-hello.ipynb">here</a>
.
</li>
</ul>
</div>
</div>
```
```@raw html
<iframe id="notebook" src="../notebook-output/notebook-hello.html" style="width:100%"></iframe>
<script>
document.addEventListener('DOMContentLoaded', function(){
var myIframe = document.getElementById("notebook");
iFrameResize({log:true}, myIframe);
});
</script>
```
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File renamed without changes.
File renamed without changes.
+187
View File
@@ -0,0 +1,187 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "babf8079",
"metadata": {},
"source": [
"# Hello, world!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f71f2545",
"metadata": {},
"outputs": [],
"source": [
"] add Distributed"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4d6b67b6",
"metadata": {},
"outputs": [],
"source": [
"] add https://github.com/fverdugo/W2bYx4.git"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "815d977e",
"metadata": {},
"outputs": [],
"source": [
"using W2bYx4"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2cf68b65",
"metadata": {},
"outputs": [],
"source": [
"W2bYx4.greet()"
]
},
{
"cell_type": "markdown",
"id": "81236a40",
"metadata": {},
"source": [
"This is an attached picture:"
]
},
{
"attachments": {
"logo.png": {
"image/png": "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 truncated
}
},
"cell_type": "markdown",
"id": "7c2e8d25",
"metadata": {},
"source": [
"\n",
" <div>\n",
"<img src=\"attachment:logo.png\" align=\"left\" width=\"200\"/>\n",
"</div>\n"
]
},
{
"attachments": {
"logo.png": {
"image/png": "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 truncated
}
},
"cell_type": "markdown",
"id": "d0f1685d",
"metadata": {},
"source": [
"Another attached picture with markdown syntax `![]()`: \n",
"\n",
"\n",
"![logo.png](attachment:logo.png)"
]
},
{
"cell_type": "markdown",
"id": "7f4de0d2",
"metadata": {},
"source": [
"A picture embedded with Base64: \n",
"\n",
"\n",
"\n",
"<div>\n",
"<img src=\"data:image/png;base64,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 truncated
"</div>"
]
},
{
"cell_type": "markdown",
"id": "0d36cf9e",
"metadata": {},
"source": [
"This is a linked picture:"
]
},
{
"cell_type": "markdown",
"id": "0b541664",
"metadata": {},
"source": [
"<div>\n",
"<img src=\"https://raw.githubusercontent.com/fverdugo/W2bYx4/main/notebooks/figures/logo.png\" align=\"left\" width=\"200\"/>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"id": "cae7f8ac",
"metadata": {},
"source": [
"```julia\n",
"julia> 1 + 1\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6603cd99",
"metadata": {},
"outputs": [],
"source": [
"1+1"
]
},
{
"cell_type": "markdown",
"id": "c3b59ed4",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-warning\">\n",
"<b>Warning:</b> Make sure that the file <code>\"hello.jl\"</code> is located in the current working directory of your Julia session.\n",
"</div>"
]
},
{
"cell_type": "markdown",
"id": "5b3e3d68",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\">\n",
"<b>Tip:</b> Avoid calling Julia code from the terminal\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b7267f6e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.9.1",
"language": "julia",
"name": "julia-1.9"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
+5
View File
@@ -0,0 +1,5 @@
module XM_40017
greet() = print("Hello World!")
end # module XM_40017
View File
Whitespace-only changes.