├── .gitignore
├── .gitpod.yml
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE-SAMPLECODE
├── LICENSE-SUMMARY
├── README.md
├── archetypes
└── default.md
├── config.toml
├── content
├── _index.md
├── builtin
│ ├── _index.md
│ ├── parallelized.md
│ ├── rcf.md
│ ├── resnet.md
│ └── xgboost.md
├── cleanup
│ ├── _index.md
│ ├── sagemaker.md
│ └── workspace.md
├── conclusion
│ ├── _index.md
│ └── conclusion.md
├── custom
│ ├── _index.md
│ ├── algo.md
│ ├── code.md
│ └── containers.md
├── introduction
│ ├── _index.md
│ ├── concepts.md
│ └── notebook.md
├── prerequisites
│ ├── _index.md
│ ├── cloud9.md
│ ├── jupyter.md
│ └── prerequisites.md
├── security_for_sysops
│ ├── _index.md
│ ├── best_practice
│ │ ├── _index.md
│ │ ├── best_practice_lab.md
│ │ └── service_catalog.md
│ ├── detective
│ │ ├── _index.md
│ │ ├── detective_controls.md
│ │ └── detective_lab.md
│ ├── faq.md
│ ├── preventive
│ │ ├── _index.md
│ │ ├── preventive_controls.md
│ │ └── preventive_lab.md
│ ├── scenario.md
│ ├── secure_notebook
│ │ ├── _index.md
│ │ ├── secure_notebook.md
│ │ └── secure_notebook_lab.md
│ ├── security_overview.md
│ ├── summary.md
│ ├── team_resources
│ │ ├── _index.md
│ │ ├── secure_environment_lab.md
│ │ └── secure_networking.md
│ └── tools.md
└── security_for_users
│ ├── _index.md
│ ├── environment
│ ├── _index.md
│ ├── env_deploy_lab.md
│ ├── secure_notebook.md
│ └── secure_notebook_lab.md
│ ├── faq.md
│ ├── notebook
│ ├── _index.md
│ ├── ml_lifecycle.md
│ ├── notebook_lab_01.md
│ └── notebook_lab_02.md
│ ├── scenario.md
│ ├── security_overview.md
│ ├── summary.md
│ └── tools.md
├── index.html
├── layouts
└── partials
│ ├── custom-footer.html
│ ├── logo.html
│ └── menu-footer.html
├── package.json
├── static
├── .DS_Store
├── 640px-Amazon_Web_Services_Logo.svg.png
├── AWS-Logo.svg
├── Amazon_Web_Services_Logo.svg
├── css
│ └── theme-mine.css
├── images
│ ├── Bill_drift.png
│ ├── Label_drift.png
│ ├── MM_dataframe.png
│ ├── Marriage_drift.png
│ ├── caltech-256-bathtub.jpg
│ ├── catalog_notebook_url.png
│ ├── jupyter_notebook.png
│ ├── launch_product_status.png
│ ├── launch_sagemaker_role.png
│ ├── notebook_network.png
│ ├── product_version.png
│ ├── provisioned_notebook.png
│ ├── provisioned_product.png
│ ├── provisioned_product_slim.png
│ ├── region-selection.png
│ ├── sec-ds-architecture-simplified-v1.jpg
│ ├── sec-ds-architecture-simplified-v2.png
│ ├── sec-jupyter_notebooks.png
│ ├── sec-takeaways.png
│ ├── sm-console-services.png
│ ├── sm-containers.gif
│ ├── sm-dev-environment.png
│ ├── sm-endpoint-config.png
│ ├── sm-endpoint.png
│ ├── sm-jupyter-cells.png
│ ├── sm-jupyter-homepage.png
│ ├── sm-model.png
│ ├── sm-notebook-instances.png
│ ├── sm-notebook-settings.png
│ ├── sm-open-notebook.png
│ ├── sm-overview.png
│ ├── sm-role-popup.png
│ ├── sm-setup-cloud9-terminal.png
│ ├── sm-videogames-cloud9.png
│ ├── sm-videogames-endpoint-config.png
│ ├── sm-videogames-endpoint.png
│ ├── sm-videogames-model.png
│ ├── update_product_version.png
│ ├── update_provisioned_product.png
│ └── vpc_endpoint.png
├── js
│ └── shortbreadv1.js
└── notebooks
│ ├── .DS_Store
│ ├── data_distribution_types.ipynb
│ ├── image-classification-fulltraining.ipynb
│ ├── mxnet_mnist_byom.zip
│ ├── tensorflow_abalone_age_predictor.zip
│ └── video-game-sales-xgboost.ipynb
└── themes
├── .DS_Store
└── hugo-theme-learn
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── archetypes
├── chapter.md
└── default.md
├── exampleSite
├── LICENSE.md
├── config.toml
├── content
│ ├── _index.en.md
│ ├── _index.fr.md
│ ├── basics
│ │ ├── _index.en.md
│ │ ├── _index.fr.md
│ │ ├── _index.zh.md
│ │ ├── configuration
│ │ │ ├── _index.en.md
│ │ │ └── _index.fr.md
│ │ ├── installation
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ └── images
│ │ │ │ └── chapter.png
│ │ ├── requirements
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ └── images
│ │ │ │ └── magic.gif
│ │ └── style-customization
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ └── images
│ │ │ ├── blue-variant.png
│ │ │ ├── green-variant.png
│ │ │ └── red-variant.png
│ ├── cont
│ │ ├── _index.en.md
│ │ ├── _index.fr.md
│ │ ├── archetypes.en.md
│ │ ├── archetypes.fr.md
│ │ ├── i18n
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ └── images
│ │ │ │ └── i18n-menu.gif
│ │ ├── icons.en.md
│ │ ├── markdown.en.md
│ │ ├── markdown.fr.md
│ │ ├── menushortcuts.en.md
│ │ ├── menushortcuts.fr.md
│ │ ├── pages
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ └── images
│ │ │ │ ├── frontmatter-icon.png
│ │ │ │ ├── pages-chapter.png
│ │ │ │ └── pages-default.png
│ │ ├── tags.en.md
│ │ └── tags.fr.md
│ ├── credits.en.md
│ ├── credits.fr.md
│ ├── shortcodes
│ │ ├── _index.en.md
│ │ ├── _index.fr.md
│ │ ├── attachments.en.files
│ │ │ ├── BachGavotteShort.mp3
│ │ │ ├── Carroll_AliceAuPaysDesMerveilles.pdf
│ │ │ ├── adivorciarsetoca00cape.pdf
│ │ │ ├── hugo.png
│ │ │ └── movieselectricsheep-flock-244-32500-2.mp4
│ │ ├── attachments.en.md
│ │ ├── attachments.fr.files
│ │ │ ├── BachGavotteShort.mp3
│ │ │ ├── Carroll_AliceAuPaysDesMerveilles.pdf
│ │ │ ├── adivorciarsetoca00cape.pdf
│ │ │ ├── hugo.png
│ │ │ └── movieselectricsheep-flock-244-32500-2.mp4
│ │ ├── attachments.fr.md
│ │ ├── button.en.md
│ │ ├── button.fr.md
│ │ ├── children
│ │ │ ├── _index.en.md
│ │ │ ├── _index.fr.md
│ │ │ ├── children-1
│ │ │ │ ├── _index.en.md
│ │ │ │ ├── _index.fr.md
│ │ │ │ └── children-1-1
│ │ │ │ │ ├── _index.en.md
│ │ │ │ │ ├── _index.fr.md
│ │ │ │ │ └── children-1-1-1
│ │ │ │ │ ├── _index.en.md
│ │ │ │ │ ├── _index.fr.md
│ │ │ │ │ └── children-1-1-1-1
│ │ │ │ │ ├── _index.en.md
│ │ │ │ │ ├── _index.fr.md
│ │ │ │ │ └── children-1-1-1-1-1
│ │ │ │ │ ├── _index.en.md
│ │ │ │ │ └── _index.fr.md
│ │ │ ├── children-2
│ │ │ │ ├── _index.en.md
│ │ │ │ ├── _index.fr.md
│ │ │ │ ├── test3.en.md
│ │ │ │ └── test3.fr.md
│ │ │ ├── children-3
│ │ │ │ ├── _index.en.md
│ │ │ │ └── _index.fr.md
│ │ │ ├── children-4
│ │ │ │ ├── _index.en.md
│ │ │ │ └── _index.fr.md
│ │ │ ├── test.en.md
│ │ │ └── test.fr.md
│ │ ├── expand.en.md
│ │ ├── expand.fr.md
│ │ ├── mermaid.en.md
│ │ ├── mermaid.fr.md
│ │ ├── notice.en.md
│ │ ├── notice.fr.md
│ │ ├── siteparam.en.md
│ │ └── siteparam.fr.md
│ ├── showcase.en.md
│ └── showcase.fr.md
├── layouts
│ ├── partials
│ │ ├── custom-footer.html
│ │ ├── logo.html
│ │ └── menu-footer.html
│ └── shortcodes
│ │ └── ghcontributors.html
└── static
│ ├── css
│ └── theme-mine.css
│ ├── fonts
│ ├── monogramos-webfont.eot
│ ├── monogramos-webfont.svg
│ ├── monogramos-webfont.ttf
│ ├── monogramos-webfont.woff
│ └── monogramos-webfont.woff2
│ └── images
│ └── showcase
│ ├── inteliver_docs.png
│ ├── tat.png
│ └── tshark_dev.png
├── i18n
├── ar.toml
├── de.toml
├── en.toml
├── es.toml
├── fr.toml
├── hi.toml
├── id.toml
├── ja.toml
├── nl.toml
├── pt.toml
├── ru.toml
├── tr.toml
└── zh-cn.toml
├── images
├── screenshot.png
└── tn.png
├── layouts
├── 404.html
├── _default
│ ├── list.html
│ └── single.html
├── index.html
├── index.json
├── partials
│ ├── custom-comments.html
│ ├── custom-footer.html
│ ├── custom-header.html
│ ├── favicon.html
│ ├── footer.html
│ ├── header.html
│ ├── logo.html
│ ├── menu-footer.html
│ ├── menu.html
│ ├── meta.html
│ ├── search.html
│ ├── tags.html
│ └── toc.html
└── shortcodes
│ ├── attachments.html
│ ├── button.html
│ ├── children.html
│ ├── expand.html
│ ├── mermaid.html
│ ├── notice.html
│ ├── ref.html
│ ├── relref.html
│ └── siteparam.html
├── netlify.toml
├── static
├── css
│ ├── atom-one-dark-reasonable.css
│ ├── auto-complete.css
│ ├── featherlight.min.css
│ ├── fontawesome-all.min.css
│ ├── hugo-theme.css
│ ├── hybrid.css
│ ├── nucleus.css
│ ├── perfect-scrollbar.min.css
│ ├── tags.css
│ ├── theme-blue.css
│ ├── theme-green.css
│ ├── theme-red.css
│ └── theme.css
├── fonts
│ ├── Inconsolata.eot
│ ├── Inconsolata.svg
│ ├── Inconsolata.ttf
│ ├── Inconsolata.woff
│ ├── Novecentosanswide-Normal-webfont.eot
│ ├── Novecentosanswide-Normal-webfont.svg
│ ├── Novecentosanswide-Normal-webfont.ttf
│ ├── Novecentosanswide-Normal-webfont.woff
│ ├── Novecentosanswide-Normal-webfont.woff2
│ ├── Novecentosanswide-UltraLight-webfont.eot
│ ├── Novecentosanswide-UltraLight-webfont.svg
│ ├── Novecentosanswide-UltraLight-webfont.ttf
│ ├── Novecentosanswide-UltraLight-webfont.woff
│ ├── Novecentosanswide-UltraLight-webfont.woff2
│ ├── Work_Sans_200.eot
│ ├── Work_Sans_200.svg
│ ├── Work_Sans_200.ttf
│ ├── Work_Sans_200.woff
│ ├── Work_Sans_200.woff2
│ ├── Work_Sans_300.eot
│ ├── Work_Sans_300.svg
│ ├── Work_Sans_300.ttf
│ ├── Work_Sans_300.woff
│ ├── Work_Sans_300.woff2
│ ├── Work_Sans_500.eot
│ ├── Work_Sans_500.svg
│ ├── Work_Sans_500.ttf
│ ├── Work_Sans_500.woff
│ └── Work_Sans_500.woff2
├── images
│ ├── clippy.svg
│ ├── favicon.png
│ └── gopher-404.jpg
├── js
│ ├── auto-complete.js
│ ├── clipboard.min.js
│ ├── featherlight.min.js
│ ├── highlight.pack.js
│ ├── hugo-learn.js
│ ├── jquery-3.3.1.min.js
│ ├── jquery.sticky.js
│ ├── learn.js
│ ├── lunr.min.js
│ ├── modernizr.custom-3.6.0.js
│ ├── perfect-scrollbar.jquery.min.js
│ ├── perfect-scrollbar.min.js
│ └── search.js
├── mermaid
│ ├── mermaid.css
│ ├── mermaid.dark.css
│ ├── mermaid.forest.css
│ └── mermaid.js
└── webfonts
│ ├── fa-brands-400.eot
│ ├── fa-brands-400.svg
│ ├── fa-brands-400.ttf
│ ├── fa-brands-400.woff
│ ├── fa-brands-400.woff2
│ ├── fa-regular-400.eot
│ ├── fa-regular-400.svg
│ ├── fa-regular-400.ttf
│ ├── fa-regular-400.woff
│ ├── fa-regular-400.woff2
│ ├── fa-solid-900.eot
│ ├── fa-solid-900.svg
│ ├── fa-solid-900.ttf
│ ├── fa-solid-900.woff
│ └── fa-solid-900.woff2
├── theme.toml
└── wercker.yml
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | package-lock.json
3 |
--------------------------------------------------------------------------------
/.gitpod.yml:
--------------------------------------------------------------------------------
1 | tasks:
2 | - init: npm install && npm run build
3 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guidelines
2 |
3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
4 | documentation, we greatly value feedback and contributions from our community.
5 |
6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
7 | information to effectively respond to your bug report or contribution.
8 |
9 |
10 | ## Reporting Bugs/Feature Requests
11 |
12 | We welcome you to use the GitHub issue tracker to report bugs or suggest features.
13 |
14 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
15 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
16 |
17 | * A reproducible test case or series of steps
18 | * The version of our code being used
19 | * Any modifications you've made relevant to the bug
20 | * Anything unusual about your environment or deployment
21 |
22 |
23 | ## Contributing via Pull Requests
24 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
25 |
26 | 1. You are working against the latest source on the *master* branch.
27 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
28 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
29 |
30 | To send us a pull request, please:
31 |
32 | 1. Fork the repository.
33 | 2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
34 | 3. Ensure local tests pass.
35 | 4. Commit to your fork using clear commit messages.
36 | 5. Send us a pull request, answering any default questions in the pull request interface.
37 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
38 |
39 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
40 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
41 |
42 |
43 | ## Finding contributions to work on
44 | Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.
45 |
46 |
47 | ## Code of Conduct
48 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
49 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
50 | opensource-codeofconduct@amazon.com with any additional questions or comments.
51 |
52 |
53 | ## Security issue notifications
54 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
55 |
56 |
57 | ## Licensing
58 |
59 | See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
60 |
61 | We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
62 |
--------------------------------------------------------------------------------
/LICENSE-SAMPLECODE:
--------------------------------------------------------------------------------
1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | software and associated documentation files (the "Software"), to deal in the Software
5 | without restriction, including without limitation the rights to use, copy, modify,
6 | merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7 | permit persons to whom the Software is furnished to do so.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
10 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
11 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
12 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
13 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
14 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15 |
--------------------------------------------------------------------------------
/LICENSE-SUMMARY:
--------------------------------------------------------------------------------
1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 |
3 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file.
4 |
5 | The sample code within this documentation is made available under the MIT-0 license. See the LICENSE-SAMPLECODE file.
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://gitpod.io/#https://github.com/aws-samples/sagemaker-workshop)
2 |
3 | # Amazon SageMaker Workshop
4 |
5 | The Amazon SageMaker Workshop is publicly available at https://sagemaker-workshop.com/.
6 |
7 | ### Setup:
8 |
9 | #### Install Hugo:
10 | On a mac:
11 |
12 | `brew install hugo`
13 |
14 | On Linux:
15 | - Download from the releases page: https://github.com/gohugoio/hugo/releases/tag/v0.37
16 | - Extract and save the executable to `/usr/local/bin`
17 |
18 | #### Download Hugo themes:
19 | Download the Hugo Theme Learn submodule:
20 | `git submodule update --recursive --init`
21 |
22 | #### Install node packages:
23 | `npm install`
24 |
25 | #### Run Hugo locally:
26 | `npm run server`
27 | or
28 | `npm run test` to see stubbed in draft pages.
29 |
30 | #### View Hugo locally:
31 | Visit http://localhost:1313/ to see the site.
32 |
33 | #### Making Edits:
34 | As you save edits to a page, the site will live-reload to show your changes.
35 |
36 | #### Auto Deploy:
37 | Any commits to master will auto build and deploy in a couple of minutes. You can see the currently deployed hash at the bottom of the menu panel.
38 |
39 | note: shift-reload may be necessary in your browser to reflect the latest changes.
40 |
41 | ## License Summary
42 |
43 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file.
44 |
45 | The sample code within this documentation is made available under the MIT-0 license. See the LICENSE-SAMPLECODE file.
46 |
--------------------------------------------------------------------------------
/archetypes/default.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "{{ replace .Name "-" " " | title }}"
3 | date: {{ .Date }}
4 | draft: true
5 | ---
6 |
7 |
--------------------------------------------------------------------------------
/config.toml:
--------------------------------------------------------------------------------
1 | baseURL = "https://sagemaker-workshop.com"
2 | languageCode = "en-us"
3 | defaultContentLanguage = "en"
4 | title = "Amazon SageMaker Workshop"
5 | theme = "hugo-theme-learn"
6 | uglyurls = true
7 | googleAnalytics = "UA-119576367-1"
8 |
9 | [blackfriday]
10 | hrefTargetBlank = true
11 |
12 | [params]
13 | themeVariant = "mine"
14 | showVisitedLinks = false
15 | author = "Daniele Stroppa"
16 | description = "Amazon SageMaker Workshop"
17 | disableSearch = false
18 | disableAssetsBusting = false
19 | disableLanguageSwitchingButton = true
20 | disableShortcutsTitle=true
21 |
22 | [[menu.shortcuts]]
23 | name = " @moviolone"
24 | identifier = "tw"
25 | url = "https://twitter.com/intent/user?screen_name=moviolone"
26 | weight = 1
27 |
28 | [outputs]
29 | home = [ "HTML", "AMP", "RSS", "JSON"]
30 | page = [ "HTML", "AMP"]
31 |
--------------------------------------------------------------------------------
/content/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Amazon SageMaker Workshop"
3 | chapter: true
4 | weight: 1
5 | ---
6 |
7 | ## Amazon SageMaker Workshop
8 |
9 | Amazon SageMaker is a fully managed service that enables developers and data scientists to quickly and easily build, train, and deploy machine learning models at any scale. This workshop will guide you through using the numerous features of SageMaker.
10 |
11 | 
12 |
13 | You'll start by creating a SageMaker notebook instance with the required permissions. You will then interact with SageMaker via sample Jupyter notebooks, the AWS CLI, the SageMaker console, or all three. During the workshop, you'll explore various data sets, create model training jobs using SageMaker's hosted training feature, and create endpoints to serve predictions from your models using SageMaker's hosted endpoint feature.
14 |
--------------------------------------------------------------------------------
/content/builtin/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Using Built-in Algorithms"
3 | chapter = true
4 | weight = 30
5 | +++
6 |
7 | The focus of this module is on SageMaker's built-in algorithms. These algorithms are ready-to-use, scalable, and provide many other conveniences. The module shows how to use SageMaker's built-in algorithms via hosted Jupyter notebooks, the AWS CLI, and the SageMaker console. You'll also see different strategies to distribute your data when training your models across a cluster of machines. To proceed to this module you need to have completed the [Cloud9 Setup](../prerequisites/cloud9.html) and [Creating a Notebook Instance](../introduction/notebook.html) sections in the previous module.
8 |
--------------------------------------------------------------------------------
/content/builtin/rcf.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Anomaly Detection with Random Cut Forest"
3 | chapter = false
4 | weight = 3
5 | +++
6 |
7 | In this section, you'll work your way through a Jupyter notebook that demonstrates how to use a built-in algorithm in SageMaker. More specifically, you'll use SageMaker's [Random Cut Forest (RCF)](https://docs.aws.amazon.com/sagemaker/latest/dg/randomcutforest.html) algorithm, an algorithm designed to detect anomalous data points within a dataset. Examples of when anomalies are important to detect include when website activity uncharacteristically spikes, when temperature data diverges from a periodic behaviour, or when changes to public transit ridership reflect the occurrence of a special event.
8 |
9 | In this notebook, we will use the SageMaker RCF algorithm to train a model on the [Numenta Anomaly Benchmark (NAB) NYC Taxi dataset](https://github.com/numenta/NAB/blob/master/data/realKnownCause/nyc_taxi.csv) which records the amount New York City taxi ridership over the course of six months. We will then use this model to predict anomalous events by emitting an "anomaly score" for each data point.
10 |
11 | ### Running the notebook
12 |
13 | 1. Access the SageMaker notebook instance you created earlier. Open the [**SageMaker Examples**](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-nbexamples.html) tab.
14 |
15 | 2. In the *Introduction to Amazon Algorithms* section locate the *random_cut_forest.ipynb* notebook and create a copy by clicking on **Use**.
16 |
17 | 3. You are now ready to begin the notebook.
18 |
19 | 4. In the ```bucket = '<>'``` code line, paste the name of the S3 bucket you created in Module 1 to replace ```<>```. The code line should now read similar to ```bucket = 'smworkshop-john-smith'```. Do NOT paste the entire path (s3://.......), just the bucket name.
20 |
21 | 5. Follow the directions in the notebook. The notebook will walk you through the data preparation, training, hosting, and validating the model with Amazon SageMaker. Once completed, return from the notebook to these instructions to move to the next Module.
22 |
--------------------------------------------------------------------------------
/content/builtin/resnet.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Image Classification with ResNet"
3 | chapter = false
4 | weight = 2
5 | +++
6 |
7 | In this section, you'll work your way through a Jupyter notebook that demonstrates how to use a built-in algorithm in SageMaker. More specifically, you'll use SageMaker's [image classification](https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) algorithm, a supervised learning algorithm that takes an image as input and classifies it into one of multiple output categories. It uses a convolutional neural network (ResNet) that can be trained from scratch, or trained using transfer learning when a large number of training images are not available. In this section you'll train the image classification algorithm from scratch on the [Caltech-256 ](http://resolver.caltech.edu/CaltechAUTHORS:CNS-TR-2007-001) dataset.
8 |
9 | ### Running the notebook
10 |
11 | 1. Download the [image-classification-fulltraining.ipynb](../notebooks/image-classification-fulltraining.ipynb) notebook.
12 |
13 | 1. Access the SageMaker notebook instance you created earlier. Click the **New** button on the right and select **Folder**.
14 |
15 | 2. Click the checkbox next to your new folder, click the **Rename** button above in the menu bar, and give the folder a name such as '*image-classification-resnet*'.
16 |
17 | 3. Click the folder to enter it.
18 |
19 | 4. To upload the notebook, click the **Upload** button on the right. Then in the file selection popup, select the file '*image-classification-fulltraining.ipynb*' from the folder on your computer where you downloadeded it earlier. Click the blue **Upload** button that appears to the right of the notebook's file name.
20 |
21 | 5. You are now ready to begin the notebook. Click the notebook's file name to open it.
22 |
23 | 6. In the ```bucket = '<>'``` code line, paste the name of the S3 bucket you created in Module 1 to replace ```<>```. The code line should now read similar to ```bucket = 'smworkshop-john-smith'```. Do NOT paste the entire path (s3://.......), just the bucket name.
24 |
25 | 7. Follow the directions in the notebook. The notebook will walk you through the data preparation, training, hosting, and validating the model with Amazon SageMaker. Once completed, return from the notebook to these instructions to move to the next Module.
26 |
--------------------------------------------------------------------------------
/content/cleanup/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Cleanup"
3 | chapter = true
4 | weight = 70
5 | +++
6 |
7 | To avoid charges for endpoints and other resources you might not need after the workshop, you need to delete them or stop them. In this module you'll work through the resources created in the workshop and remove them.
8 |
--------------------------------------------------------------------------------
/content/cleanup/sagemaker.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "SageMaker Resources"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | To avoid charges for resources you no longer need when you're done with this workshop, you can delete them or, in the case of your notebook instance, stop them. Here are the resources you should consider:
8 |
9 | - **Endpoints**: these are the clusters of one or more instances serving inferences from your models. If you did not delete them from within a notebook, you can delete them via the SageMaker console. To do so:
10 |
11 | - Click the **Endpoints** link in the left panel.
12 |
13 | - Then, for each endpoint, click the radio button next to it, then select **Delete** from the **Actions** drop down menu.
14 |
15 | - You can follow a similar procedure to delete the related Models and Endpoint configurations.
16 |
17 |
18 | - **Notebook instance**: you have two options if you do not want to keep the notebook instance running. If you would like to save it for later, you can stop rather than deleting it.
19 |
20 | - To **stop** a notebook instance: click the **Notebook instances** link in the left pane of the SageMaker console home page. Next, click the **Stop** link under the 'Actions' column to the left of your notebook instance's name. After the notebook instance is stopped, you can start it again by clicking the **Start** link. Keep in mind that if you stop rather than delete it, you will be charged for the storage associated with it.
21 |
22 | - To **delete** a notebook instance: first stop it per the instruction above. Next, click the radio button next to your notebook instance, then select **Delete** from the **Actions** drop down menu.
23 |
24 |
25 | - **S3 Bucket**: if you retain the S3 bucket created for this workshop, you will be charged for storage. To avoid these charges if you no longer wish to use the bucket, you may delete it. To delete the bucket, go to the S3 service console, and locate your bucket's name in the bucket table. Next, click in the bucket table row for your bucket to highlight the table row. At the top of the table, the **Delete Bucket** button should now be enabled, so click it and then click the **Confirm** button in the resulting pop-up to complete the deletion.
26 |
--------------------------------------------------------------------------------
/content/cleanup/workspace.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "CloudFormation Stacks"
3 | chapter = false
4 | weight = 5
5 | +++
6 |
7 | To delete all the underlying resources, assume the Account Admin Role and navigate to CloudFormation.
8 |
9 | If the "view nested" button is checked, click on it, so you only see the root stacks. You should see a root stack associated with the Notebook, one associated with the DS Environment and a secure-ds-core stack which builds the core environment with the Shared Services VPC. Delete this one last.
10 |
11 | Step by Step Instructions
12 |
13 | 1. First ensure that your S3 buckets associated with this workshop are deleted. They should contain your Project Name.
14 |
15 |
16 | 2. Next, delete the **most recent stack** starting with "SC--pp-####". **Be Careful**: Make sure to delete the root stack, nested stacks have a tab that says "nested" on top of the stack. These are deleted automatically when the root stack is deleted, and don't need to be separately deleted.
17 |
18 | 3. Then delete the second stack starting with "SC--pp-####". This stack is created by the Data Science Admin to provision the secure environment for data scientists. Once again **do not** delete *nested* stacks separately.
19 |
20 | 4. Finally, delete the secure-ds-core stack. **Note**: nested stacks will be automatically deleted by the root stack.
21 |
22 | Note, that if you choose to build this environment in a different region, you may get an error that the Data Science Adminstrator IAM roles already exists. Delete that role first before deploying to another region.
23 |
--------------------------------------------------------------------------------
/content/conclusion/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Conclusion"
3 | chapter = true
4 | weight = 100
5 | +++
6 |
7 | # What Have We Accomplished?
8 |
--------------------------------------------------------------------------------
/content/conclusion/conclusion.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "What Have We Accomplished"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | We have:
8 |
9 | - Created a SageMaker Notebook instance
10 | - Explored different built-in algorithms
11 | - Analyzed strategies to distribute data for parallel training
12 | - Trained a model using a custom script
13 | - Built and deployed a custom model
14 |
--------------------------------------------------------------------------------
/content/custom/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Using Custom Algorithms"
3 | chapter = true
4 | weight = 40
5 | +++
6 |
7 | This module focuses on using your own training algorithm and your own inference code. You can use the deep learning containers provided by Amazon SageMaker for model training and your own inference code. You provide a script written for the deepV learning framework, such as Apache MXNet or TensorFlow. To proceed to this module you need to have completed the [Cloud9 Setup](../prerequisites/cloud9.html) and [Creating a Notebook Instance](../introduction/notebook.html) sections in the previous module.
8 |
--------------------------------------------------------------------------------
/content/custom/code.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Submit custom code"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | In this section, you will train a neural network locally on the location from where this notebook is run (typically the SageMaker Notebook instance) using MXNet. You will then see how to create an endpoint from the trained MXNet model and deploy it on SageMaker. You will then inference from the newly created SageMaker endpoint. For this section, you'll be using the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset.
8 |
9 | ### Running the notebook
10 |
11 | 1. Download the [mxnet_mnist_byom.zip](../notebooks/mxnet_mnist_byom.zip) file. This archive contains the Python script to train your model and the Jupyter notebook to step through the process. Unzip this on your local environment.
12 |
13 | 1. Access the SageMaker notebook instance you created earlier. Click the **New** button on the right and select **Folder**.
14 |
15 | 2. Click the checkbox next to your new folder, click the **Rename** button above in the menu bar, and give the folder a name such as '*mxnet-mnist-byom*'.
16 |
17 | 3. Click the folder to enter it.
18 |
19 | 4. To upload the notebook, click the **Upload** button on the right. Then in the file selection popup, select the file '*mxnet_mnist_byom.ipynb*' from the folder on your computer where you downloadeded it earlier. Click the blue **Upload** button that appears to the right of the notebook's file name. Repeat this step for the '*mnist.py*' and the '*input.html*' files.
20 |
21 | 5. You are now ready to begin the notebook. Click the notebook's file name to open it.
22 |
23 | 7. Follow the directions in the notebook. The notebook will walk you through the data preparation, training, hosting, and validating the model with Amazon SageMaker. Once completed, return from the notebook to these instructions to move to the next Module.
24 |
--------------------------------------------------------------------------------
/content/introduction/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Introduction to Amazon SageMaker"
3 | chapter = true
4 | weight = 20
5 | +++
6 |
7 | This module demonstrates the main features of SageMaker via a set of straightforward examples for common use cases. You'll go through some Machine Learning concepts and how they relate to Amazon SageMaker as well as create a SageMaker Notebook Instance for the workshop.
8 |
--------------------------------------------------------------------------------
/content/introduction/notebook.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Creating a Notebook Instance"
3 | chapter = false
4 | weight = 40
5 | +++
6 |
7 |
8 | SageMaker provides hosted Jupyter notebooks that require no setup, so you can begin processing your training data sets immediately. With a few clicks in the SageMaker console, you can create a fully managed notebook instance, pre-loaded with useful libraries for machine learning. You need only add your data.
9 |
10 | You'll start by creating an Amazon S3 bucket that will be used throughout the workshop. You'll then create a SageMaker notebook instance, which you will use for the other workshop modules.
11 |
12 | ### Create a S3 Bucket
13 |
14 | SageMaker typically uses S3 as storage for data and model artifacts. In this step you'll create a S3 bucket for this purpose. To begin, sign into the AWS Management Console, https://console.aws.amazon.com/.
15 |
16 | Keep in mind that your bucket's name must be globally unique across all regions and customers. We recommend using a name like `smworkshop-firstname-lastname`. If you get an error that your bucket name already exists, try adding additional numbers or characters until you find an unused name.
17 |
18 | 1. In the AWS Management Console, choose **Services** then select **S3** under Storage.
19 |
20 | 1. Choose **Create Bucket**
21 |
22 | 1. Provide a globally unique name for your bucket such as '*smworkshop-firstname-lastname*'.
23 |
24 | 1. Select the Region you've chosen to use for this workshop from the dropdown.
25 |
26 | 1. Choose **Create** in the lower left of the dialog without selecting a bucket to copy settings from.
27 |
28 | ### Launch the Notebook Instance
29 |
30 | 1. In the upper-right corner of the AWS Management Console, confirm you are in the desired AWS region. Select N. Virginia, Oregon, Ohio, or Ireland.
31 |
32 | 2. Click on Amazon SageMaker from the list of all services. This will bring you to the Amazon SageMaker console homepage.
33 |
34 | 
35 |
36 | 3. To create a new notebook instance, go to **Notebook instances**, and click the **Create notebook instance** button at the top of the browser window.
37 |
38 | 
39 |
40 | 4. Type *smworkshop-[First Name]-[Last Name]* into the **Notebook instance name** text box, and select ml.m4.xlarge for the **Notebook instance type**.
41 |
42 | 
43 |
44 | 5. For IAM role, choose **Create a new role**, and in the resulting pop-up modal, select **Specific S3 buckets** under **S3 Buckets you specify – optional**. In the text field, paste the name of the S3 bucket you created above, AND the following bucket name separated from the first by a comma: `gdelt-open-data`. The combined field entry should look similar to ```smworkshop-john-smith, gdelt-open-data```. Click **Create role**.
45 |
46 | 
47 |
48 | 6. You will be taken back to the Create Notebook instance page. Click **Create notebook instance**.
49 |
50 | ### Access the Notebook Instance
51 |
52 | 1. Wait for the server status to change to **InService**. This will take several minutes, possibly up to ten but likely less.
53 |
54 | 
55 |
56 | 2. Click **Open**. You will now see the Jupyter homepage for your notebook instance.
57 |
58 | 
59 |
--------------------------------------------------------------------------------
/content/prerequisites/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Prerequisites"
3 | chapter = true
4 | weight = 10
5 | +++
6 |
7 | In this module we'll go through the prerequisites for the workshop, and setup a Cloud9 workspace for the workshop.
8 |
--------------------------------------------------------------------------------
/content/prerequisites/cloud9.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Cloud9 Setup"
3 | chapter = false
4 | weight = 30
5 | +++
6 |
7 | AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser. It includes a code editor, debugger, and terminal. Cloud9 comes pre-packaged with essential tools for popular programming languages and the AWS Command Line Interface (CLI) pre-installed so you don’t need to install files or configure your laptop for this workshop. Your Cloud9 environment will have access to the same AWS resources as the user with which you logged into the AWS Management Console.
8 |
9 | ### Setup the Cloud9 Development Environment
10 |
11 | - Go to the AWS Management Console, click **Services** then select **Cloud9** under Developer Tools.
12 |
13 |
14 | - Click **Create environment**.
15 |
16 |
17 | - Enter `workshop` into **Name** and optionally provide a **Description**.
18 |
19 |
20 | - Click **Next step**.
21 |
22 |
23 | - You may leave **Environment settings** at their defaults of launching a new **t2.micro** EC2 instance which will be paused after **30 minutes** of inactivity.
24 |
25 |
26 | - Click **Next step**.
27 |
28 |
29 | - Review the environment settings and click **Create environment**. It will take several minutes for your environment to be provisioned and prepared.
30 |
31 |
32 | - Once ready, your IDE will open to a welcome screen. The central panel of the IDE has two parts: a text/code editor in the upper half, and a terminal window in the lower half. Below the welcome screen in the editor, you should see a terminal prompt similar to the following (you may need to scroll down below the welcome screen to see it):
33 |
34 | 
35 |
36 | - You can run AWS CLI commands in here just like you would on your local computer. Verify that your user is logged in by running `aws sts get-caller-identity` as follows at the terminal prompt:
37 |
38 | ```
39 | aws sts get-caller-identity
40 | ```
41 |
42 | - You’ll see output indicating your account and user information:
43 |
44 | ```
45 | Admin:~/environment $ aws sts get-caller-identity
46 |
47 | {
48 | "Account": "123456789012",
49 | "UserId": "AKIAI44QH8DHBEXAMPLE",
50 | "Arn": "arn:aws:iam::123456789012:user/Alice"
51 | }
52 | ```
53 |
54 |
55 | - To create a new text/code file, just click the **+** symbol in the tabs section of the editor part of the IDE. You can do that now, and close the wecome screen by clicking the **x** symbol in the welcome screen tab.
56 |
57 |
58 | - Keep your AWS Cloud9 IDE opened in a browser tab throughout this workshop as we’ll use it for activities like using the AWS CLI and running Bash scripts.
59 |
60 | ### Tips
61 |
62 | Keep an open scratch pad in Cloud9 or a text editor on your local computer for notes. When the step-by-step directions tell you to note something such as an ID or Amazon Resource Name (ARN), copy and paste that into the scratch pad.
63 |
--------------------------------------------------------------------------------
/content/prerequisites/jupyter.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Jupyter Notebooks"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 | Jupyter is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modelling, data visualization, machine learning, and much more. With respect to code, it can be thought of as a web-based IDE that executes code on the server it is running on instead of locally.
8 |
9 | There are two main types of "cells" in a notebook: code cells, and "markdown" cells with explanatory text. You will be running the code cells. These are distinguished by having "In" next to them in the left margin next to the cell, and a greyish background. Markdown cells lack "In" and have a white background. In the screenshot below, the upper cell is a markdown cell, while the lower cell is a code cell:
10 |
11 | 
12 |
13 | To run a code cell, simply click in it, then either click the **Run Cell** button in the notebook's toolbar, or use Control+Enter from your computer's keyboard. It may take a few seconds to a few minutes for a code cell to run. You can determine whether a cell is running by examining the `In[]:` indicator in the left margin next to each cell: a cell will show `In [*]:` when running, and `In [a number]:` when complete.
14 |
15 | Please run each code cell in order, and **only once**, to avoid repeated operations. For example, running the same training job cell twice might create two training jobs, possibly exceeding your service limits.
16 |
--------------------------------------------------------------------------------
/content/prerequisites/prerequisites.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Environment"
3 | chapter = false
4 | weight = 10
5 | +++
6 |
7 |
8 | ### AWS Account
9 |
10 | In order to complete this workshop you'll need an AWS Account, and an AWS IAM user in that account with at least full permissions to the following AWS services:
11 |
12 | - AWS IAM
13 | - Amazon S3
14 | - Amazon SageMaker
15 | - AWS Cloud9
16 |
17 | **Use Your Own Account**: The code and instructions in this workshop assume only one student is using a given AWS account at a time. If you try sharing an account with another student, you'll run into naming conflicts for certain resources. You can work around these by appending a unique suffix to the resources that fail to create due to conflicts, but the instructions do not provide details on the changes required to make this work. Use a personal account or create a new AWS account for this workshop rather than using an organization’s account to ensure you have full access to the necessary services and to ensure you do not leave behind any resources from the workshop.
18 |
19 | **Costs**: Some, but NOT all, of the resources you will launch as part of this workshop are eligible for the AWS free tier if your account is less than 12 months old. See the [AWS Free Tier page](https://aws.amazon.com/free/) for more details. An example of a resource that is **not** covered by the free tier is the ml.m4.xlarge notebook instance used in some workshops. To avoid charges for endpoints and other resources you might not need after you've finished a workshop, please refer to the [Cleanup Module](../cleanup.html).
20 |
21 |
22 | ### AWS Region
23 |
24 | SageMaker is not available in all AWS Regions at this time. Accordingly, we recommend running this workshop in one of the following supported AWS Regions: N. Virginia, Oregon, Ohio, or Ireland.
25 |
26 | Once you've chosen a region, you should create all of the resources for this workshop there, including a new Amazon S3 bucket and a new SageMaker notebook instance. Make sure you select your region from the dropdown in the upper right corner of the AWS Console before getting started.
27 |
28 | 
29 |
30 |
31 | ### Browser
32 |
33 | We recommend you use the latest version of Chrome or Firefox to complete this workshop.
34 |
35 |
36 | ### AWS Command Line Interface
37 |
38 | To complete certain workshop modules, you'll need the AWS Command Line Interface (CLI) and a Bash environment. You'll use the AWS CLI to interface with SageMaker and other AWS services.
39 |
40 | For these workshops, AWS Cloud9 is used to avoid problems that can arise configuring the CLI on your machine. AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser. It has the AWS CLI pre-installed so you don’t need to install files or configure your laptop to use the AWS CLI. For Cloud9 setup directions for these workshops, see [Cloud9 Setup](cloud9.html). Do NOT attempt to use a locally installed AWS CLI during a live workshop because there is insufficient time during a live workshop to resolve related issues.
41 |
42 |
43 | ### Text Editor
44 |
45 | For any workshop module that requires use of the AWS Command Line Interface (see above), you also will need a **plain text** editor for writing Bash scripts. Any editor that inserts Windows or other special characters potentially will cause scripts to fail. AWS Cloud9 includes a text editor.
46 |
--------------------------------------------------------------------------------
/content/security_for_sysops/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Building Secure Environments"
3 | chapter = true
4 | weight = 50
5 | +++
6 |
7 | In this module we will introduce you to the recommended practices for building a secure data science environment powered by Amazon SageMaker. Like many other AWS services, Amazon SageMaker is secure by default. In these labs you will learn how to combine multiple secure by default services to enforce secure configurations and create a data science environment that meets common security requirements for many customers. You will cover various security topics and work through hands-on lab materials to exercise and explore the many security features available with Amazon Web Services.
8 |
9 | Let's get started.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/best_practice/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Codify Best Practice"
3 | chapter = true
4 | weight = 51
5 | +++
6 |
7 | This lab introduces services to help you create a way for the project administration teams and the data science teams to self-service while adhering to desired, secure practices. In this lab you will learn about AWS Identity and Access Management as well as AWS Service Catalog. You will then use what you learned to enable your teams.
8 |
9 | Let's begin.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/detective/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Detection and Remediation"
3 | chapter = true
4 | weight = 54
5 | +++
6 |
7 | This lab will briefly introduce the concept of detective and corrective controls. It will also introduce some of the AWS services which can be used to create detective and corrective controls. During the lab you will see these controls in action as they safeguard you and your environment, keeping you within your security policies.
8 |
9 | Let's get to it.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/detective/detective_controls.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Detective Controls"
3 | chapter = false
4 | weight = 40
5 | +++
6 |
7 | AWS recommends a [defense-in-depth](https://wa.aws.amazon.com/wat.pillar.security.en.html) approach to security, applying security at every level of your application and environment. In this section we will focus on the concept of detective controls and incident response in the form of a corrective control. A detective control is responsible for identifying potential security threats or incidents while a corrective control is responsible for limiting the potential damage of the threat or incident after detection.
8 |
9 | One example of a form of detective control is the use of internal auditing to ensure that an environment and user practice is inline with your policies and requirements. These controls can help your organization identify and understand the scope of anomalous activity.
10 |
11 | Many AWS services are available to help you implement detective controls. AWS CloudTrail records AWS API calls, AWS Config provides a detailed inventory of your AWS resources and configuration. Amazon GuardDuty is a managed threat detection service that continuously monitors for malicious or unauthorized behavior. Amazon CloudWatch is a monitoring service for AWS resources which can trigger CloudWatch Events to automate security responses.
12 |
13 | Even with detective controls, you should still put processes in place to respond to and mitigate the potential impact of security incidents.
14 |
15 | Amazon CloudWatch Events allows you to create rules that trigger automated responses such as the execution of AWS Lambda.
16 |
17 | ## Amazon CloudWatch Events
18 |
19 | Amazon CloudWatch recieves metrics, logs, and [events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) and can, in near-real time, respond to this information on your behalf. You can use log entries from applications or AWS services to automatically notify a member of your team when an error has occurred. You can use metrics to scale up or scale out your infrastructure when a CPU is exceeding a utilization threshold. Or you can inspect a launching EC2 instance that is the result of an API call into AWS.
20 |
21 | Logs, metrics, and events can trigger a number of responses such as emailing alerts or executing a Lambda function in response.
22 |
23 | A list of AWS services and the events that they send to CloudWatch can be found in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html). Within Amazon CloudWatch you can configure an [events rule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html) which can detect anomalous activity and trigger a response.
24 |
25 | The response that is triggered can be any of a number of activities to include executing an AWS Lambda function, an Amazon ECS task, or an SSM RunCommand. This gives you flexibility to automate responses to incidents in your environment.
26 |
27 | ---
28 |
29 | The detective and corrective controls made possible by CloudWatch Events and AWS Lambda allow you to inspect SageMaker training jobs, EC2 instance security groups, and much more. By detecting resources that are not in line with your standards you can quickly respond to and correct the resource using automated incident response.
30 |
--------------------------------------------------------------------------------
/content/security_for_sysops/faq.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Frequently Asked Questions"
3 | chapter = false
4 | weight = 200
5 | +++
6 |
7 | The following is a compiled list of questions or issues you may face while going through these labs. If you encounter any issues, hopefully you will find helpful guidance below.
8 |
9 | ---
10 |
11 | Q: **I am trying to execute a cell in Jupyter Notebook but nothing happens.**
12 |
13 | A: Check whether the kernel has finished loading. You can see kernel status in the upper right corner of the Notebook. For the purpose of this workshop, the kernel should be conda_tensorflow_p27. If the kernel has not loaded, give it a couple of minutes to load. If it still says No Kernel, then navigate to the Jupyter menu bar and select Kernel → Restart Kernel. Select conda_tensorflow_p27 if prompted for the kernel type.
14 |
15 | Q: **Training job completes successfully, but I see all sorts of errors and warnings in the logs such as “No response body. Response code: 404” and “If the signature check failed. This could be because of a time skew. Attempting to adjust the signer.”**
16 |
17 | A: You may ignore these informational log messages for the purpose of this workshop.
18 |
19 | Q: **Training job or hosting endpoint deployment terminate in error “ResourceLimitExceeded: An error occurred (ResourceLimitExceeded) when calling the CreateEndpoint operation: The account-level service limit 'ml.m4.xlarge for endpoint usage' is 0 Instances, with current utilization of 0 Instances and a request delta of 1 Instances. Please contact AWS support to request an increase for this limit.”**
20 |
21 | A: Try to launch a new training job with another instance type (see SageMaker instance types https://aws.amazon.com/sagemaker/pricing/instance-types/). If error persists, contact workshop support staff or your AWS account team.
22 |
23 | Q: **In Lab 2, we use AWS Service Catalog to create a team IAM role and CloudFormation to deploy the rest of the team resources including S3 buckets, KMS key, etc. Why not do everything in Service Catalog?**
24 |
25 | A: One reason is educational, to get exposure to both services. Another reason is that creating an IAM role requires privileged permissions to IAM service. Service Catalog provides a great option for delegating IAM role creation in a safe manner without having to grant the Data Science Admin permission to the underlying IAM service.
26 |
27 |
--------------------------------------------------------------------------------
/content/security_for_sysops/preventive/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Prevention"
3 | chapter = true
4 | weight = 55
5 | +++
6 |
7 | This lab will dive deeper into AWS Identity and Access Management and how it can be applied to Amazon SageMaker to create preventive controls. In the lab you will also update existing Service Catalog products to enforce your new best practice.
8 |
9 | Let's dive in.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/secure_notebook/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Working Securely"
3 | chapter = true
4 | weight = 53
5 | +++
6 |
7 | This lab introduces some of the key security features of the Amazon SageMaker service and how you can use them to keep your data scientists operating in a secure manner. After introducing the concepts and features of the service this lab will then allow you to create a SageMaker Jupyter Notebook in a self-service manner.
8 |
9 | Let's jump in.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/secure_notebook/secure_notebook_lab.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Lab 3: Deploy a Jupyter Notebook"
3 | chapter = false
4 | weight = 31
5 | +++
6 |
7 | At this point, the cloud platform engineering team has built a self-service mechanism to provision secure environments to host data science projects. The project administrators have provisioned resources using the self-service mechanism for your team to work, and they have provided you with a self-service mechanism to enable you to provision SageMaker notebooks. Now, use these resources to provision a Jupyter notebook and start developing your ML solution.
8 |
9 | ---
10 |
11 | ## Launch the notebook product
12 |
13 | Navigate to the AWS Service Catalog console and on go to the detail page for the recently provisioned data science environment. Use the hyperlink labeled `AssumeProjectUserRole` under *Outputs* to assume the role of a data science user. Assume the role and visit the [Service Catalog](https://console.aws.amazon.com/servicecatalog/home?#/products) product listing. Using the notebook product defined for you by the project administrators, launch a Notebook product using the same project name that was used to create the environment.
14 |
15 | {{% expand "Step-by-step instructions" %}}
16 | 1. Open the [Service Catalog](https://console.aws.amazon.com/servicecatalog/home?isSceuc=true#/stacks) provisioned products list.
17 | 1. Click on the provisioned data science project and locate the hyperlinks in the Output section of the provisioned product detail.
18 | 1. Click on the AssumeProjectUserRole hyperlink.
19 | 1. Click `Assume Role` on the next screen.
20 | 1. Return to the [Service Catalog](https://console.aws.amazon.com/servicecatalog/home?#/products) product listing.
21 | 1. Open the menu for the SageMaker notebook product and click `Launch Product`
22 | 1. Give the notebook product a name such as `YOUR-NAME-ds-notebook` and click `Next`
23 | 1. Use the same project name as earlier in the labs
24 | 1. Enter an email address for `NotebookOwnerEmail` and a username for `NotebookOwnerUsername`
25 | 1. Click `Next` and on the next 2 screens click `Next`
26 | 1. On the `Review` screen click `Launch`
27 |
28 | You will land at a Provisioned Product page while the Service Catalog creates your Jupyter Notebook. Periodically click Refresh until the Status reads `Succeeded`. This should take about 5 minutes to launch your notebook.
29 |
30 | 
31 |
32 | {{% /expand %}}
33 |
34 | 
35 |
36 | ## Access the notebook
37 | After the notebook has launched successfully you can open it by clicking the `NotebookUrl` hyperlink in the Outputs section of the provisoined notebook details page. With your Jupyter notebook open, familiarize yourself with the web interface and open the Notebook kernel named `00_SageMaker-SysOps-Workflow`. Don't forget to reference back to the [Jupyter cheat sheet](https://www.edureka.co/blog/cheatsheets/jupyter-notebook-cheat-sheet) for a quick reference if you need one.
38 |
39 | {{% notice info %}}
40 | When its open the Notebook kernel should use the `conda_python3` kernel. If Jupyter asks you to set the kernel select `conda_python3` and if Jupyter displays an error, reload the Jupyter page by clicking your browser Refresh button.
41 | {{% /notice %}}
42 |
43 | ---
44 |
45 | You will now learn about methods for implementing detective and corrective controls on AWS. In the next lab you will return to the Jupyter notebook to test the detective controls.
46 |
--------------------------------------------------------------------------------
/content/security_for_sysops/summary.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Summary"
3 | chapter = false
4 | weight = 100
5 | +++
6 |
7 | Let's look back on what you've accomplished during the labs in this section.
8 |
9 | ---
10 |
11 | In this series of labs you used many AWS services to support your machine learning process. As the Cloud Platform Engineering team you created a secure network environment with corrective controls for the data science administration team. You also created a self-service product that codified best practices and allowed the Data Science Administration team to support the data science project teams without needing expansive permissions in AWS.
12 |
13 | As the Data Science Administration team you used the enviornment and product created by the CPE to support the Data Science project team. You created an IAM role for the data science team, an encryption key, and Amazon S3 buckets for the project team to store their data and models. Finally you created a self-service product that the data science team could use to provision Jupyter notebooks for themselves, also without needing extensive permissions into AWS.
14 |
15 | Then, as a data scientist and a member of the project team, you created a Jupyter notebook instance and trained a machine learning model in accordance with your security best practice. This demonstrated the corrective control deployed and managed by the Cloud Platform Engineering team as well as the preventive control later deployed by the Data Science Administration team.
16 |
17 | This module relied on the following key services that you should now be familiar with:
18 |
19 | - [AWS Service Catalog](https://aws.amazon.com/servicecatalog/)
20 | - [AWS Key Management Service (KMS)](https://aws.amazon.com/kms/)
21 | - [Amazon S3](https://aws.amazon.com/s3/)
22 | - [Amazon SageMaker](https://aws.amazon.com/sagemaker/)
23 | - [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
24 | - [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
25 | - [Amazon Virtual Private Cloud (VPC)](https://aws.amazon.com/vpc/)
26 |
27 | To find out more about any of these services please visit their documentation or visit [AWS Security Workshops](https://awssecworkshops.com/) for more great security-focused workshops.
28 |
--------------------------------------------------------------------------------
/content/security_for_sysops/team_resources/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Project Environment"
3 | chapter = true
4 | weight = 52
5 | +++
6 |
7 | This lab will explore the tools available to you to create a secure environment, starting with the network. By establishing a secure network environment you can begin to use familiar IP-level controls to manage the flow of data and access to systems. You will learn some concepts and terms specific to AWS but should get a sense of how to create a private environment for your data science teams. You will also create resources to encrypt data as it flows from storage in Amazon S3, into the VPC on EBS volumes, and back out to Amazon S3.
8 |
9 | Let's get started.
10 |
--------------------------------------------------------------------------------
/content/security_for_sysops/tools.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Tools"
3 | chapter = false
4 | weight = 2
5 | +++
6 |
7 | To work through these labs you will need:
8 |
9 | - **An AWS account**
10 |
11 | With privileges to create IAM roles, attach IAM policies, create AWS VPCs, configure Service Catalog, create Amazon S3 buckets, and work with Amazon SageMaker.
12 |
13 | - **Access to the [AWS web console](https://console.aws.amazon.com/console/home)**
14 |
15 | Many of the instructions will guide you through working with the various service consoles.
16 |
17 | - **[Jupyter cheat sheet](https://www.edureka.co/blog/cheatsheets/jupyter-notebook-cheat-sheet)**
18 |
19 | If you are unfamiliar with the Jupyter notebook interface or its keybindings a cheat sheet may help you navigate.
20 |
21 | - **Optional: AWS CLI**
22 |
23 | You may want to have the AWS CLI available for working with AWS services like Amazon S3.
24 |
25 | ---
26 |
27 | Now, let's get started!
--------------------------------------------------------------------------------
/content/security_for_users/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Using Secure Environments"
3 | chapter = true
4 | weight = 60
5 | +++
6 |
7 | In this module you will be introduced to the recommended practices for using Amazon SageMaker in a secure data science environment. Like many other AWS services, Amazon SageMaker is secure by default. Throughout this workshop you will see how you can work in a secured data science environment. You will cover the many stages of the machine learning lifecycle and be provided with Jupyter notebooks to step through that lifecycle while maintaining a high bar for security.
8 |
9 | Let's get started.
10 |
--------------------------------------------------------------------------------
/content/security_for_users/environment/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Deploy a Secure Environment"
3 | chapter = true
4 | weight = 61
5 | +++
6 |
7 | In this module you will use AWS services to quickly deploy a secure environment for a data science project. After deploying the environment you will also create a SageMaker notebook for use throughout the remainder of this module.
8 |
9 | {{% notice info %}}
10 | Please know that this module creates the same environment that was created in the [Building Secure Environments](/security_for_sysops.html) module. If you have worked through that module already and have a secured data science environment, you can reuse that environment here and can skip ahead to [Secure Data Science Notebooks](/security_for_users/notebook.html).
11 | {{% /notice %}}
12 |
13 | Let's get building.
14 |
--------------------------------------------------------------------------------
/content/security_for_users/faq.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Frequently Asked Questions"
3 | chapter = false
4 | weight = 200
5 | +++
6 |
7 | The following is a compiled list of questions or issues you may face while going through these labs. If you encounter any issues, hopefully you will find helpful guidance below.
8 |
9 | ---
10 |
11 | Q: **I am trying to execute a cell in Jupyter Notebook but nothing happens.**
12 |
13 | A: Check whether the kernel has finished loading. You can see kernel status in the upper right corner of the Notebook. For the purpose of this workshop, the kernel should be conda_tensorflow_p27. If the kernel has not loaded, give it a couple of minutes to load. If it still says No Kernel, then navigate to the Jupyter menu bar and select Kernel → Restart Kernel. Select conda_tensorflow_p27 if prompted for the kernel type.
14 |
15 | Q: **Training job completes successfully, but I see all sorts of errors and warnings in the logs such as “No response body. Response code: 404” and “If the signature check failed. This could be because of a time skew. Attempting to adjust the signer.”**
16 |
17 | A: You may ignore these informational log messages for the purpose of this workshop.
18 |
19 | Q: **Training job or hosting endpoint deployment terminate in error “ResourceLimitExceeded: An error occurred (ResourceLimitExceeded) when calling the CreateEndpoint operation: The account-level service limit 'ml.m4.xlarge for endpoint usage' is 0 Instances, with current utilization of 0 Instances and a request delta of 1 Instances. Please contact AWS support to request an increase for this limit.”**
20 |
21 | A: Try to launch a new training job with another instance type (see SageMaker instance types https://aws.amazon.com/sagemaker/pricing/instance-types/). If error persists, contact workshop support staff or your AWS account team.
22 |
23 | Q: **In Lab 2, we use AWS Service Catalog to create a team IAM role and CloudFormation to deploy the rest of the team resources including S3 buckets, KMS key, etc. Why not do everything in Service Catalog?**
24 |
25 | A: One reason is educational, to get exposure to both services. Another reason is that creating an IAM role requires privileged permissions to IAM service. Service Catalog provides a great option for delegating IAM role creation in a safe manner without having to grant the Data Science Admin permission to the underlying IAM service.
26 |
27 |
--------------------------------------------------------------------------------
/content/security_for_users/notebook/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Secure Data Science Notebooks"
3 | chapter = true
4 | weight = 62
5 | +++
6 |
7 | You are now connected to a Jupyter notebook server running within a secured data science environment. From the notebook you have access to a centralized, hosted PyPI mirror and select buckets in Amazon S3. There is no open access to the Internet or unnecessary AWS services to safeguard against data exfiltration. Using this environment you will now work through the various stages of the machine learning lifecycle, from data exploration, through training, and finally to hosting and monitoring.
8 |
9 | Let's get started.
10 |
--------------------------------------------------------------------------------
/content/security_for_users/notebook/notebook_lab_01.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Lab 03: Data Science Workflow"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 | The ML lifecylce has many stages and steps, and often requires revisiting previous steps as you tune your model. This lab is intended to highlight how your project team can work through the ML lifecycle and achive the objectives outlined earlier through supporting services such as experiment tracking.
8 |
9 | ---
10 |
11 | ## The notebook explained
12 |
13 | `01_SageMaker-DataScientist-Workflow.ipynb` will cover a typical Data Scientist workflow of data exploration, model training, extracting model feature importances and committing your code to Git.
14 |
15 | You will look at a credit card dataset to predict whether a customer will default on their credit card payments based on prior payment data. This is a binary classification problem and you will train a XGBoost model using an Amazon managed container and explore feature importances for that model.
16 |
17 | Throughout this notebook you will keep network traffic within your private VPC and enforce encryption at rest and in transit. Furthermore, you will learn how to use SageMaker Processing for running processing jobs at scale, and leverage Spot instance pricing to save up to 90% on training costs.
18 |
19 | Finally you will commit the code to our CodeCommit repository and demonstrate code versioning, tagging and source control.
20 |
21 | ---
22 |
23 | After you have completed the notebook please proceed to [Lab 04: DevOps Workflow](notebook_lab_02.html) where you will deploy and monitor the trained model.
24 |
--------------------------------------------------------------------------------
/content/security_for_users/scenario.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Scenario"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | You are a data scientist or ML engineer who works at a company that wishes to enable their data scientists to deliver machine learning-based projects that are trained on highly sensitive company data. The project teams are constrained by shared on-premise resources so your sysops admins have created all the infrastructure-as-code templates needed to provision a secure environment, which protects the sensitive data while also enabling the data science teams to self-service.
8 |
9 | ---
10 |
11 | You as a data scientist or engineer will need to quickly set this environment up for yourself, so you can start working on exploring your data, training, deploying and monitoring your models. The key takeaways of this workshop are:
12 |
13 | 1. **Compute and Network Isolation**
14 |
15 | Deploy Amazon SageMaker in a secure, customer-managed VPC.
16 |
17 | 1. **Authentication and Authorization**
18 |
19 | Provide single user access to Jupyter over IAM.
20 |
21 | 1. **Artifact Management**
22 |
23 | Enable private Git integration, lifecycle config, and versioning.
24 |
25 | 1. **Data Encryption**
26 |
27 | Encrypt data in motion and at rest across the entire ML workflow.
28 |
29 | 1. **Traceability and Auditability**
30 |
31 | Trace model lineage, and audit all API calls and data events.
32 |
33 | 1. **Explainability and Interpretability**
34 |
35 | Explain predictions with feature importance and SHAP values.
36 |
37 | 1. **Real-time Model Monitoring**
38 |
39 | Monitor the performance of a productionized model.
40 |
41 | 1. **Reproducibility**
42 |
43 | Reproduce the model and results based on saved artifacts.
44 |
45 | In these notebooks you will see some recommended practices on how to implement these requirements using Amazon SageMaker. Note that while these are recommended practices and guidelines, the information included in these notebooks is for illustrative purposes only. Nothing in this notebook is intended to provide you legal, compliance, or regulatory guidance.
46 |
47 | The specific features and functionalities that you will become familiar with are:
48 |
49 | - **Importing custom libraries using pip** without having public internet connectivity
50 |
51 | - Training a model with and without VPC and implementation of preventative controls to avoid training without VPC.
52 |
53 | - Importing networking configurations, KMS keys directly in the notebook without data scientist having to know what they are.
54 |
55 | - Using **SageMaker Processing** to run scikit-learn data pre-processing jobs in Python.
56 |
57 | - Using **SageMaker training on spot instances** to save on cost
58 |
59 | - Model Explainability using SHAP
60 |
61 | - Pushing/pulling code to private AWS CodeCommit Repository
62 |
63 | - Deploying a trained model and monitoring it for data drift with **SageMaker ModelMonitor**
64 |
65 | - Securely running training, processing jobs using KMS keys to ensure encryption at rest and PrivateLink to support encryption in transit.
66 |
67 | - Using **SageMaker Experiments** to maintain lineage and traceability of model artifacts.
68 |
69 | ---
70 |
71 | In the following labs you will quickly provision a collection of mechanisms and guard rails to enable you, as a project team member, to provisoin infrastructure and tools to support your project. You will then work through the machine learning lifecycle in the secure environment to see how project teams can be enabled to work in an agile manner at speed.
72 |
--------------------------------------------------------------------------------
/content/security_for_users/summary.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Summary"
3 | chapter = false
4 | weight = 100
5 | +++
6 |
7 | Let's look back on what you've accomplished during the labs in this section.
8 |
9 | ---
10 |
11 | In this series of labs you used many AWS services to support your machine learning process. As the Cloud Platform Engineering team you created a secure network environment with corrective controls for the data science administration team. You also created a self-service product that codified best practices and allowed the Data Science Administration team to support the data science project teams without needing expansive permissions in AWS.
12 |
13 | As the Data Science Administration team you used the enviornment and product created by the CPE to support the Data Science project team. You created an IAM role for the data science team, an encryption key, and Amazon S3 buckets for the project team to store their data and models. Finally you created a self-service product that the data science team could use to provision Jupyter notebooks for themselves, also without needing extensive permissions into AWS.
14 |
15 | Then, as a data scientist and a member of the project team, you created a Jupyter notebook instance and trained a machine learning model in accordance with your security best practice. This demonstrated the corrective control deployed and managed by the Cloud Platform Engineering team as well as the preventive control later deployed by the Data Science Administration team.
16 |
17 | This module relied on the following key services that you should now be familiar with:
18 |
19 | - [AWS Service Catalog](https://aws.amazon.com/servicecatalog/)
20 | - [AWS Key Management Service (KMS)](https://aws.amazon.com/kms/)
21 | - [Amazon S3](https://aws.amazon.com/s3/)
22 | - [Amazon SageMaker](https://aws.amazon.com/sagemaker/)
23 | - [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
24 | - [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
25 | - [Amazon Virtual Private Cloud (VPC)](https://aws.amazon.com/vpc/)
26 |
27 | To find out more about any of these services please visit their documentation or visit [AWS Security Workshops](https://awssecworkshops.com/) for more great security-focused workshops.
28 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | WIP
2 |
--------------------------------------------------------------------------------
/layouts/partials/custom-footer.html:
--------------------------------------------------------------------------------
1 | {{ template "_internal/google_analytics.html" . }}
2 |
--------------------------------------------------------------------------------
/layouts/partials/logo.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ecsworkshop",
3 | "version": "1.0.0",
4 | "homepage": "https://github.com/brentley/ecsworkshop#readme",
5 | "bugs": {
6 | "url": "https://github.com/brentley/ecsworkshop/issues"
7 | },
8 | "license": "ISC",
9 | "main": "index.js",
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/brentley/ecsworkshop.git"
13 | },
14 | "scripts": {
15 | "test": "hugo server -w -v -DF --disableFastRender --enableGitInfo --bind=0.0.0.0",
16 | "server": "hugo server -w -v --enableGitInfo --bind=0.0.0.0",
17 | "build": "hugo -v",
18 | "deploy": "aws s3 sync public/ s3://us-east-1-ecsworkshop.com/ --delete",
19 | "deploycontent": "aws s3 sync public/ s3://us-east-1-ecsworkshop.com/ --delete --cache-control \"max-age=3600, public\" --exclude \"*\" --include \"*.html\" --include \"*.xml\"",
20 | "deployothers": "aws s3 sync public/ s3://us-east-1-ecsworkshop.com/ --delete --cache-control \"max-age=86400, public\" --exclude \"*.html\" --exclude \"*.xml\""
21 | },
22 | "dependencies": {
23 | "hugo-lunr": "0.0.4"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/static/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/.DS_Store
--------------------------------------------------------------------------------
/static/640px-Amazon_Web_Services_Logo.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/640px-Amazon_Web_Services_Logo.svg.png
--------------------------------------------------------------------------------
/static/AWS-Logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/images/Bill_drift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/Bill_drift.png
--------------------------------------------------------------------------------
/static/images/Label_drift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/Label_drift.png
--------------------------------------------------------------------------------
/static/images/MM_dataframe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/MM_dataframe.png
--------------------------------------------------------------------------------
/static/images/Marriage_drift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/Marriage_drift.png
--------------------------------------------------------------------------------
/static/images/caltech-256-bathtub.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/caltech-256-bathtub.jpg
--------------------------------------------------------------------------------
/static/images/catalog_notebook_url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/catalog_notebook_url.png
--------------------------------------------------------------------------------
/static/images/jupyter_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/jupyter_notebook.png
--------------------------------------------------------------------------------
/static/images/launch_product_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/launch_product_status.png
--------------------------------------------------------------------------------
/static/images/launch_sagemaker_role.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/launch_sagemaker_role.png
--------------------------------------------------------------------------------
/static/images/notebook_network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/notebook_network.png
--------------------------------------------------------------------------------
/static/images/product_version.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/product_version.png
--------------------------------------------------------------------------------
/static/images/provisioned_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/provisioned_notebook.png
--------------------------------------------------------------------------------
/static/images/provisioned_product.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/provisioned_product.png
--------------------------------------------------------------------------------
/static/images/provisioned_product_slim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/provisioned_product_slim.png
--------------------------------------------------------------------------------
/static/images/region-selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/region-selection.png
--------------------------------------------------------------------------------
/static/images/sec-ds-architecture-simplified-v1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sec-ds-architecture-simplified-v1.jpg
--------------------------------------------------------------------------------
/static/images/sec-ds-architecture-simplified-v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sec-ds-architecture-simplified-v2.png
--------------------------------------------------------------------------------
/static/images/sec-jupyter_notebooks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sec-jupyter_notebooks.png
--------------------------------------------------------------------------------
/static/images/sec-takeaways.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sec-takeaways.png
--------------------------------------------------------------------------------
/static/images/sm-console-services.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-console-services.png
--------------------------------------------------------------------------------
/static/images/sm-containers.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-containers.gif
--------------------------------------------------------------------------------
/static/images/sm-dev-environment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-dev-environment.png
--------------------------------------------------------------------------------
/static/images/sm-endpoint-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-endpoint-config.png
--------------------------------------------------------------------------------
/static/images/sm-endpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-endpoint.png
--------------------------------------------------------------------------------
/static/images/sm-jupyter-cells.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-jupyter-cells.png
--------------------------------------------------------------------------------
/static/images/sm-jupyter-homepage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-jupyter-homepage.png
--------------------------------------------------------------------------------
/static/images/sm-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-model.png
--------------------------------------------------------------------------------
/static/images/sm-notebook-instances.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-notebook-instances.png
--------------------------------------------------------------------------------
/static/images/sm-notebook-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-notebook-settings.png
--------------------------------------------------------------------------------
/static/images/sm-open-notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-open-notebook.png
--------------------------------------------------------------------------------
/static/images/sm-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-overview.png
--------------------------------------------------------------------------------
/static/images/sm-role-popup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-role-popup.png
--------------------------------------------------------------------------------
/static/images/sm-setup-cloud9-terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-setup-cloud9-terminal.png
--------------------------------------------------------------------------------
/static/images/sm-videogames-cloud9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-videogames-cloud9.png
--------------------------------------------------------------------------------
/static/images/sm-videogames-endpoint-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-videogames-endpoint-config.png
--------------------------------------------------------------------------------
/static/images/sm-videogames-endpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-videogames-endpoint.png
--------------------------------------------------------------------------------
/static/images/sm-videogames-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/sm-videogames-model.png
--------------------------------------------------------------------------------
/static/images/update_product_version.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/update_product_version.png
--------------------------------------------------------------------------------
/static/images/update_provisioned_product.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/update_provisioned_product.png
--------------------------------------------------------------------------------
/static/images/vpc_endpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/images/vpc_endpoint.png
--------------------------------------------------------------------------------
/static/notebooks/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/notebooks/.DS_Store
--------------------------------------------------------------------------------
/static/notebooks/mxnet_mnist_byom.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/notebooks/mxnet_mnist_byom.zip
--------------------------------------------------------------------------------
/static/notebooks/tensorflow_abalone_age_predictor.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/static/notebooks/tensorflow_abalone_age_predictor.zip
--------------------------------------------------------------------------------
/themes/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/.DS_Store
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Grav
4 | Copyright (c) 2016 MATHIEU CORNIC
5 | Copyright (c) 2017 Valere JEANTET
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of
8 | this software and associated documentation files (the "Software"), to deal in
9 | the Software without restriction, including without limitation the rights to
10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 | the Software, and to permit persons to whom the Software is furnished to do so,
12 | subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/archetypes/chapter.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "{{ replace .Name "-" " " | title }}"
3 | date = {{ .Date }}
4 | weight = 5
5 | chapter = true
6 | pre = "X. "
7 | +++
8 |
9 | ### Chapter X
10 |
11 | # Some Chapter title
12 |
13 | Lorem Ipsum.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/archetypes/default.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "{{ replace .Name "-" " " | title }}"
3 | date = {{ .Date }}
4 | weight = 5
5 | +++
6 |
7 | Lorem Ipsum.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 MATHIEU CORNIC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/config.toml:
--------------------------------------------------------------------------------
1 | baseURL = "/"
2 | languageCode = "en-US"
3 | defaultContentLanguage = "en"
4 |
5 | title = "Hugo Learn Documentation"
6 | theme = "hugo-theme-learn"
7 | themesdir = "../.."
8 | metaDataFormat = "yaml"
9 | defaultContentLanguageInSubdir= true
10 |
11 | [params]
12 | editURL = "https://github.com/matcornic/hugo-theme-learn/edit/master/exampleSite/content/"
13 | description = "Documentation for Hugo Learn Theme"
14 | author = "Mathieu Cornic"
15 | showVisitedLinks = true
16 | disableBreadcrumb = false
17 | disableNextPrev = false
18 |
19 | [outputs]
20 | home = [ "HTML", "RSS", "JSON"]
21 |
22 | [Languages]
23 | [Languages.en]
24 | title = "Documentation for Hugo Learn Theme"
25 | weight = 1
26 | languageName = "English"
27 |
28 | [[Languages.en.menu.shortcuts]]
29 | name = " GitHub repo"
30 | identifier = "ds"
31 | url = "https://github.com/matcornic/hugo-theme-learn"
32 | weight = 10
33 |
34 | [[Languages.en.menu.shortcuts]]
35 | name = " Showcases"
36 | url = "showcase"
37 | weight = 11
38 |
39 | [[Languages.en.menu.shortcuts]]
40 | name = " Hugo Documentation"
41 | identifier = "hugodoc"
42 | url = "https://gohugo.io/"
43 | weight = 20
44 |
45 | [[Languages.en.menu.shortcuts]]
46 | name = " Credits"
47 | url = "/credits"
48 | weight = 30
49 |
50 | [Languages.fr]
51 | title = "Documentation du thème Hugo Learn"
52 | weight = 2
53 | languageName = "Français"
54 |
55 | [[Languages.fr.menu.shortcuts]]
56 | name = " Repo GitHub"
57 | identifier = "ds"
58 | url = "https://github.com/matcornic/hugo-theme-learn"
59 | weight = 10
60 |
61 | [[Languages.fr.menu.shortcuts]]
62 | name = " Vitrine"
63 | url = "/showcase"
64 | weight = 11
65 |
66 | [[Languages.fr.menu.shortcuts]]
67 | name = " Documentation Hugo"
68 | identifier = "hugodoc"
69 | url = "https://gohugo.io/"
70 | weight = 20
71 |
72 | [[Languages.fr.menu.shortcuts]]
73 | name = " Crédits"
74 | url = "/credits"
75 | weight = 30
76 |
77 | [Languages.zh]
78 | title = "Hugo 主题的 Learn 文档"
79 | weight = 3
80 | languageName = "简体中文"
81 |
82 | [[Languages.zh.menu.shortcuts]]
83 | name = " GitHub 仓库"
84 | identifier = "ds"
85 | url = "https://github.com/matcornic/hugo-theme-learn"
86 | weight = 10
87 |
88 | [[Languages.zh.menu.shortcuts]]
89 | name = " 展示区"
90 | url = "/showcase"
91 | weight = 11
92 |
93 | [[Languages.zh.menu.shortcuts]]
94 | name = " Hugo 文档"
95 | identifier = "hugodoc"
96 | url = "https://gohugo.io/"
97 | weight = 20
98 |
99 | [[Languages.zh.menu.shortcuts]]
100 | name = " 鸣谢"
101 | url = "/credits"
102 | weight = 30
103 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Learn Theme for Hugo"
3 | ---
4 |
5 | # Hugo learn theme
6 |
7 | [Hugo-theme-learn](http://github.com/matcornic/hugo-theme-learn) is a theme for [Hugo](https://gohugo.io/), a fast and modern static website engine written in Go. Where Hugo is often used for blogs, this multilingual-ready theme is **fully designed for documentation**.
8 |
9 | This theme is a partial porting of the [Learn theme](http://learn.getgrav.org/) of [Grav](https://getgrav.org/), a modern flat-file CMS written in PHP.
10 |
11 | {{% notice tip %}}Learn theme works with a _page tree structure_ to organize content : All contents are pages, which belong to other pages. [read more about this]({{%relref "cont/pages/_index.md"%}})
12 | {{% /notice %}}
13 |
14 | ## Main features
15 |
16 | * [Automatic Search]({{%relref "basics/configuration/_index.md#activate-search" %}})
17 | * [Multilingual mode]({{%relref "cont/i18n/_index.md" %}})
18 | * **Unlimited menu levels**
19 | * **Automatic next/prev buttons to navigate through menu entries**
20 | * [Image resizing, shadow...]({{%relref "cont/markdown.en.md#images" %}})
21 | * [Attachments files]({{%relref "shortcodes/attachments.en.md" %}})
22 | * [List child pages]({{%relref "shortcodes/children/_index.md" %}})
23 | * [Mermaid diagram]({{%relref "shortcodes/mermaid.en.md" %}}) (flowchart, sequence, gantt)
24 | * [Customizable look and feel and themes variants]({{%relref "basics/style-customization/_index.md"%}})
25 | * [Buttons]({{%relref "shortcodes/button.en.md" %}}), [Tip/Note/Info/Warning boxes]({{%relref "shortcodes/notice.en.md" %}}), [Expand]({{%relref "shortcodes/expand.en.md" %}})
26 |
27 | 
28 |
29 | ## Contribute to this documentation
30 | Feel free to update this content, just click the **Edit this page** link displayed on top right of each page, and pullrequest it
31 |
32 | {{% notice info %}}
33 | Your modification will be deployed automatically when merged.
34 | {{% /notice %}}
35 |
36 | ## Documentation website
37 | This current documentation has been statically generated with Hugo with a simple command : `hugo -t hugo-theme-learn` -- source code is [available here at GitHub](https://github.com/matcornic/hugo-theme-learn)
38 |
39 | {{% notice note %}}
40 | Automatically published and hosted thanks to [Netlify](https://www.netlify.com/). Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)
41 | {{% /notice %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Learn Theme for Hugo"
3 | ---
4 |
5 | # Thème Hugo learn
6 |
7 | [Hugo-theme-learn](http://github.com/matcornic/hugo-theme-learn) est un thème pour [Hugo](https://gohugo.io/), un générateur de site statique, rapide et modern, écrit en Go. Tandis que Hugo est souvent utilisé pour des blogs, ce thème multi-langue est **entièrement conçu pour la documentation**.
8 |
9 | Ce thème est un portage partiel du [thème Learn](http://learn.getgrav.org/) de [Grav](https://getgrav.org/), un CMS modern écrit en PHP.
10 |
11 | {{% notice tip %}}Le thème Learn fonctionne grâce à la structure de page aborescentes pour organiser le contenu: tous les contenus sont des pages qui appartiennent à d'autres pages. [Plus d'infos]({{%relref "cont/pages/_index.md"%}})
12 | {{% /notice %}}
13 |
14 | ## Fonctionnalités principales
15 |
16 | * [Recherche automatique]({{%relref "basics/configuration/_index.md#activer-recherche" %}})
17 | * [Mode multi-langue]({{%relref "cont/i18n/_index.md" %}})
18 | * **Nombre de niveau infini dans le menu**
19 | * **Boutons suivant/précédent automatiquement générés pour naviguer entre les items du menu**
20 | * [Taille d'image, ombres...]({{%relref "cont/markdown.fr.md#images" %}})
21 | * [Fichiers joints]({{%relref "shortcodes/attachments.fr.md" %}})
22 | * [Lister les pages filles]({{%relref "shortcodes/children/_index.md" %}})
23 | * [Diagrammes Mermaid]({{%relref "shortcodes/mermaid.fr.md" %}}) (flowchart, sequence, gantt)
24 | * [Style configurable and variantes de couleurs]({{%relref "basics/style-customization/_index.md"%}})
25 | * [Boutons]({{%relref "shortcodes/button.fr.md" %}}), [Messages Astuce/Note/Info/Attention]({{%relref "shortcodes/notice.fr.md" %}}), [Expand]({{%relref "shortcodes/expand.fr.md" %}})
26 |
27 | 
28 |
29 | ## Contribuer à cette documentation
30 |
31 | N'hésitez pas à mettre à jour ce contenu en cliquant sur le lien **Modifier cette page** en haut de chaque page, et créer la Pull Request associée.
32 |
33 | {{% notice info %}}
34 | Votre modification sera déployée automatiquement quand elle sera mergée.
35 | {{% /notice %}}
36 |
37 | ## Site de documentation
38 |
39 | Cette documentation statique a été générée avec Hugo avec une simple commande : `hugo -t hugo-theme-learn` -- le code source est [disponible sur Github](https://github.com/matcornic/hugo-theme-learn)
40 |
41 | {{% notice note %}}
42 | Le site est auomatiquement publié et hébergé par [Netlify](https://www.netlify.com/). Plus d'infos sur le [déploiement de site Hugo avec Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)(En anglais)
43 | {{% /notice %}}
44 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Basics
3 | weight: 5
4 | pre: "1. "
5 | chapter: true
6 | ---
7 |
8 | ### Chapter 1
9 |
10 | # Basics
11 |
12 | Discover what this Hugo theme is all about and the core-concepts behind it.
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Démarrage
3 | weight: 5
4 | pre: "1. "
5 | chapter: true
6 | ---
7 |
8 | ### Chapitre 1
9 |
10 | # Démarrage
11 |
12 | Découvrez comment utiliser ce thème Hugo et apprenez-en les concepts
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/_index.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 基础
3 | weight: 5
4 | pre: "1. "
5 | chapter: true
6 | ---
7 |
8 | ### 章节 1
9 |
10 | # 基础
11 |
12 | 了解该 Hugo 主题的特点以及背后的核心概念。
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Configuration
4 | weight: 20
5 | ---
6 |
7 | ## Global site parameters
8 |
9 | On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Hugo-theme-learn** lets you define the following parameters in your `config.toml` (here, values are default).
10 |
11 | Note that some of these parameters are explained in details in other sections of this documentation.
12 |
13 | ```toml
14 | [params]
15 | # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page.
16 | # Useful to give opportunity to people to create merge request for your doc.
17 | # See the config.toml file from this documentation site to have an example.
18 | editURL = ""
19 | # Author of the site, will be used in meta information
20 | author = ""
21 | # Description of the site, will be used in meta information
22 | description = ""
23 | # Shows a checkmark for visited pages on the menu
24 | showVisitedLinks = false
25 | # Disable search function. It will hide search bar
26 | disableSearch = false
27 | # Javascript and CSS cache are automatically busted when new version of site is generated.
28 | # Set this to true to disable this behavior (some proxies don't handle well this optimization)
29 | disableAssetsBusting = false
30 | # Set this to true to disable copy-to-clipboard button for inline code.
31 | disableInlineCopyToClipBoard = false
32 | # A title for shortcuts in menu is set by default. Set this to true to disable it.
33 | disableShortcutsTitle = false
34 | # When using mulitlingual website, disable the switch language button.
35 | disableLanguageSwitchingButton = false
36 | # Hide breadcrumbs in the header and only show the current page title
37 | disableBreadcrumb = true
38 | # Hide Next and Previous page buttons normally displayed full height beside content
39 | disableNextPrev = true
40 | # Order sections in menu by "weight" or "title". Default to "weight"
41 | ordersectionsby = "weight"
42 | # Change default color scheme with a variant one. Can be "red", "blue", "green".
43 | themeVariant = ""
44 | # Provide a list of custom css files to load relative from the `static/` folder in the site root.
45 | custom_css = ["css/foo.css", "css/bar.css"]
46 | ```
47 |
48 | ## Activate search
49 |
50 | If not already present, add the follow lines in the same `config.toml` file.
51 |
52 | ```toml
53 | [outputs]
54 | home = [ "HTML", "RSS", "JSON"]
55 | ```
56 |
57 | Learn theme uses the last improvement available in hugo version 20+ to generate a json index file ready to be consumed by lunr.js javascript search engine.
58 |
59 | > Hugo generate lunrjs index.json at the root of public folder.
60 | > When you build the site with `hugo server`, hugo generates it internally and of course it doesn’t show up in the filesystem
61 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Configuration
4 | weight: 20
5 | ---
6 |
7 | ## Paramètres globaux du site
8 |
9 | En plus de la [configuration globale d'Hugo](https://gohugo.io/overview/configuration/), **Hugo-theme-learn** vous permet de définir les paramètres suivant dans votre fichier `config.toml` (ci-dessous sont affichées les valeurs par défaut).
10 |
11 | Notez que certains de ces paramètres sont expliqués en détails dans d'autres sections de cette documentation.
12 |
13 | ```toml
14 | [params]
15 | # L'URL préfixe pour éditer la page courante. Ce paramètre affichera un bouton "Modifier cette page" on haut de de chacune des pages.
16 | # Pratique pour donner les possibilité à vos utilisateurs de créer une merge request pour votre doc.
17 | # Allez voir le fichier config.toml de cette documentation pour avoir un exemple.
18 | editURL = ""
19 | # Autheur du site, est utilisé dans les informations meta
20 | author = ""
21 | # Description du site, est utilisé dans les informations meta
22 | description = ""
23 | # Affiche une icône lorsque la page a été visitée
24 | showVisitedLinks = false
25 | # Désactive la fonction de recherche. Une valeur à true cache la barre de recherche.
26 | disableSearch = false
27 | # Par défaut, le cache Javascript et CSS est automatiquement vidé lorsqu'une nouvelle version du site est générée.
28 | # Utilisez ce paramètre lorsque vous voulez désactiver ce comportement (c'est parfois incompatible avec certains proxys)
29 | disableAssetsBusting = false
30 | # Utilisez ce paramètre pour désactiver le bouton copy-to-clipboard pour le code formatté sur une ligne.
31 | disableInlineCopyToClipBoard = false
32 | # Un titre est défini par défaut lorsque vous utilisez un raccourci dans le menu. Utilisez ce paramètre pour le cacher.
33 | disableShortcutsTitle = false
34 | # Quand vous utilisez un site multi-langue, utilisez ce paramètre pour désactiver le bouton de changement de langue.
35 | disableLanguageSwitchingButton = false
36 | # Ordonne les sections dans menu par poids ("weight") ou titre ("title"). Défaut à "weight"
37 | ordersectionsby = "weight"
38 | # Utilisez ce paramètre pour modifier le schéma de couleur du site. Les valeurs par défaut sont "red", "blue", "green".
39 | themeVariant = ""
40 | # Fournissez une liste de fichiers css personnalisés à charger par rapport depuis le dossier `static/` à la racine du site.
41 | custom_css = ["css/foo.css", "css/bar.css"]
42 | ```
43 |
44 | ## Activer la recherche {#activer-recherche}
45 |
46 | Si ce n'est pas déjà présent, ajoutez les lignes suivantes dans le fichier `config.toml`.
47 |
48 | ```toml
49 | [outputs]
50 | home = [ "HTML", "RSS", "JSON"]
51 | ```
52 |
53 | Le thème *Learn* utilise les dernières améliorations d'Hugo pour générer un fichier d'index JSON, prêt à être consommé par le moteur de recherche lunr.js.
54 |
55 | > Hugo génère lunrjs index.json à la racine du dossier `public`.
56 | > Quand vous générez le site avec `hugo server`, Hugo génère le fichier en mémoire, il n'est donc pas disponible sur le disque.
57 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Requirements
3 | weight: 10
4 | disableToc: true
5 | ---
6 |
7 | Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements.
8 |
9 | Just download latest version of [Hugo binary (> 0.25)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple.
10 |
11 | 
12 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Prérequis
3 | weight: 10
4 | disableToc: true
5 | ---
6 |
7 | Grâce à la simplicité d'Hugo, cette page est vide car il n'y a quasi pas de prérequis pour utiliser le thème.
8 |
9 | Téléchargez la dernière version du [binaire Hugo (> 0.25)](https://gohugo.io/getting-started/installing/) pour votre Système d'exploitation (Windows, Linux, Mac) : et c'est tout !
10 |
11 | 
12 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Content
3 | weight: 10
4 | chapter: true
5 | pre: "2. "
6 | ---
7 |
8 | ### Chapter 2
9 |
10 | # Content
11 |
12 | Find out how to create and organize your content quickly and intuitively.
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Contenu
3 | weight: 10
4 | chapter: true
5 | pre: "2. "
6 | ---
7 |
8 | ### Chapitre 2
9 |
10 | # Contenu
11 |
12 | Découvrez comment créer et organiser votre contenu facilement et intuitivement.
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Archetypes
3 | weight: 10
4 | ---
5 |
6 | Using the command: `hugo new [relative new content path]`, you can start a content file with the date and title automatically set. While this is a welcome feature, active writers need more : [archetypes](https://gohugo.io/content/archetypes/).
7 |
8 | It is pre-configured skeleton pages with default front matter. Please refer to the documentation for types of page to understand the differences.
9 |
10 | ## Chapter {#archetypes-chapter}
11 |
12 | To create a Chapter page, run the following commands
13 |
14 | ```
15 | hugo new --kind chapter /_index.md
16 | ```
17 |
18 | It will create a page with predefined Front-Matter:
19 |
20 | ```markdown
21 | +++
22 | title = "{{ replace .Name "-" " " | title }}"
23 | date = {{ .Date }}
24 | weight = 5
25 | chapter = true
26 | pre = "X. "
27 | +++
28 |
29 | ### Chapter X
30 |
31 | # Some Chapter title
32 |
33 | Lorem Ipsum.
34 | ```
35 |
36 | ## Default
37 |
38 | To create a default page, run either one of the following commands
39 |
40 | ```
41 | # Either
42 | hugo new //_index.md
43 | # Or
44 | hugo new /.md
45 | ```
46 |
47 | It will create a page with predefined Front-Matter:
48 |
49 | ```markdown
50 | +++
51 | title = "{{ replace .Name "-" " " | title }}"
52 | date = {{ .Date }}
53 | weight = 5
54 | +++
55 |
56 | Lorem Ipsum.
57 | ```
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Archétypes
3 | weight: 10
4 | ---
5 |
6 | En utilisant la commande: `hugo new [chemin vers nouveau contenu]`, vous pouvez créer un nouveau fichier avec la date et le title automatiquement initialisé. Même si c'est une fonctionnalité intéressante, elle reste limitée pour les auteurs actifs qui ont besoin de mieux : les [archetypes](https://gohugo.io/content/archetypes/).
7 |
8 | Les archétypes sont des squelettes de pages préconfigurées avec un Front Matter par défaut. Merci de vous référer à la documentation pour connaitre les différents types de page.
9 |
10 | ## Chapitre {#archetypes-chapter}
11 |
12 | Pour créer un chapitre, lancez les commandes suivantes
13 |
14 | ```
15 | hugo new --kind chapter /_index.md
16 | ```
17 |
18 | Cela crééra une page avec le Front Matter suivant:
19 |
20 | ```markdown
21 | +++
22 | title = "{{ replace .Name "-" " " | title }}"
23 | date = {{ .Date }}
24 | weight = 5
25 | chapter = true
26 | pre = "X. "
27 | +++
28 |
29 | ### Chapter X
30 |
31 | # Some Chapter title
32 |
33 | Lorem Ipsum.
34 | ```
35 |
36 | ## Défaut
37 |
38 | Pour créer une page classique, lancer l'une des deux commandes suivantes
39 |
40 | ```
41 | # Soit
42 | hugo new //_index.md
43 | # Ou
44 | hugo new /.md
45 | ```
46 |
47 | Cela crééra une page avec le Front Matter suivant:
48 |
49 | ```markdown
50 | +++
51 | title = "{{ replace .Name "-" " " | title }}"
52 | date = {{ .Date }}
53 | weight = 5
54 | +++
55 |
56 | Lorem Ipsum.
57 | ```
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Multilingual and i18n
4 | weight: 30
5 | ---
6 |
7 | **Learn theme** is fully compatible with Hugo multilingual mode.
8 |
9 | It provides:
10 |
11 | - Translation strings for default values (English and French). Feel free to contribute !
12 | - Automatic menu generation from multilingual content
13 | - In-browser language switching
14 |
15 | 
16 |
17 | ## Basic configuration
18 |
19 | After learning [how Hugo handle multilingual websites](https://gohugo.io/content-management/multilingual), define your languages in your `config.toml` file.
20 |
21 | For example with current French and English website.
22 |
23 | ```toml
24 | # English is the default language
25 | defaultContentLanguage = "en"
26 | # Force to have /en/my-page and /fr/my-page routes, even for default language.
27 | defaultContentLanguageInSubdir= true
28 |
29 | [Languages]
30 | [Languages.en]
31 | title = "Documentation for Hugo Learn Theme"
32 | weight = 1
33 | languageName = "English"
34 |
35 | [Languages.fr]
36 | title = "Documentation du thème Hugo Learn"
37 | weight = 2
38 | languageName = "Français"
39 | ```
40 |
41 | Then, for each new page, append the *id* of the language to the file.
42 |
43 | - Single file `my-page.md` is split in two files:
44 | - in English: `my-page.en.md`
45 | - in French: `my-page.fr.md`
46 | - Single file `_index.md` is split in two files:
47 | - in English: `_index.en.md`
48 | - in French: `_index.fr.md`
49 |
50 | {{% notice info %}}
51 | Be aware that only translated pages are displayed in menu. It's not replaced with default language content.
52 | {{% /notice %}}
53 |
54 | {{% notice tip %}}
55 | Use [slug](https://gohugo.io/content-management/multilingual/#translate-your-content) Front Matter parameter to translate urls too.
56 | {{% /notice %}}
57 |
58 | ## Overwrite translation strings
59 |
60 | Translations strings are used for common default values used in the theme (*Edit this page* button, *Search placeholder* and so on). Translations are available in french and english but you may use another language or want to override default values.
61 |
62 | To override these values, create a new file in your local i18n folder `i18n/.toml` and inspire yourself from the theme `themes/hugo-theme-learn/i18n/en.toml`
63 |
64 | By the way, as these translations could be used by other people, please take the time to propose a translation by [making a PR](https://github.com/matcornic/hugo-theme-learn/pulls) to the theme !
65 |
66 | ## Disable language switching
67 |
68 | Switching the language in the browser is a great feature, but for some reasons you may want to disable it.
69 |
70 | Just set `disableLanguageSwitchingButton=true` in your `config.toml`
71 |
72 | ```toml
73 | [params]
74 | # When using mulitlingual website, disable the switch language button.
75 | disableLanguageSwitchingButton = true
76 | ```
77 |
78 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Multi-langue et i18n
4 | weight: 30
5 | ---
6 |
7 | **Learn** est complètement compatible avec le mode multi-langue d'Hugo.
8 |
9 | Il fournit :
10 |
11 | - Des *translation strings* pour les valeurs par défaut utilisées par le thème (Anglais et Français). N'hésitez pas à contribuer !
12 | - Génération automatique du menu avec le contenu multi-langue
13 | - Modification de la langue dans le navigateur
14 |
15 | 
16 |
17 | ## Configuration simple
18 |
19 | Après avoir appris [comment Hugo gère les sites multi-langue](https://gohugo.io/content-management/multilingual), définissez vos langues dans votre fichier `config.toml`.
20 |
21 | Par exemple, pour ce site, avec du contenu en français et en anglais.
22 |
23 | ```toml
24 | # Anglais est la langue par défaut
25 | defaultContentLanguage = "en"
26 | # Force d'avoir /en/ma-page et /fr/ma-page routes, même avec la langue par défaut.
27 | defaultContentLanguageInSubdir= true
28 |
29 | [Languages]
30 | [Languages.en]
31 | title = "Documentation for Hugo Learn Theme"
32 | weight = 1
33 | languageName = "English"
34 |
35 | [Languages.fr]
36 | title = "Documentation du thème Hugo Learn"
37 | weight = 2
38 | languageName = "Français"
39 | ```
40 |
41 | Puis, pour chaque nouvelle page, ajoutez *l'id* de la langue du fichier.
42 |
43 | - Le fichier `my-page.md` est découpé en deux fichiers :
44 | - en anglais : `my-page.en.md`
45 | - en français : `my-page.fr.md`
46 | - Le fichier `_index.md` est découpé en deux fichiers :
47 | - en anglais: `_index.en.md`
48 | - en français: `_index.fr.md`
49 |
50 | {{% notice info %}}
51 | Attention, seulement les pages traduites sont affichées dans le menu. Le contenu n'est pas remplacé par les pages de la langue par défaut.
52 | {{% /notice %}}
53 |
54 | {{% notice tip %}}
55 | Utilisez le paramètre du Front Matter [slug](https://gohugo.io/content-management/multilingual/#translate-your-content) pour traduire également les URLs.
56 | {{% /notice %}}
57 |
58 | ## Surcharger les *translation strings*
59 |
60 | Les *Translations strings* sont utilisées comme valeurs par défaut dans le thème (Bouton *Modifier la page*, Element de subsitution *Recherche*, etc.). Les traductions sont disponibles en français et en anglais mais vous pouvez utiliser n'importe quelle autre langue et surcharger avec vos propres valeurs.
61 |
62 | Pour surcharger ces valeurs, créer un nouveau fichier dans votre dossier i18n local `i18n/.toml` et inspirez vous du thème `themes/hugo-theme-learn/i18n/en.toml`
63 |
64 | D'ailleurs, ces traductions pour servir à tout le monde, donc svp prenez le temps de [proposer une Pull Request](https://github.com/matcornic/hugo-theme-learn/pulls) !
65 |
66 | ## Désactiver le changement de langue
67 |
68 | Vous pouvez changer de langue directement dans le navigateur. C'est une super fonctionnalité, mais vous avez peut-être besoin de la désactiver.
69 |
70 | Pour ce faire, ajouter le paramètre `disableLanguageSwitchingButton=true` dans votre `config.toml`
71 |
72 | ```toml
73 | [params]
74 | # Quand vous utilisez un site en multi-langue, désactive le bouton de changment de langue.
75 | disableLanguageSwitchingButton = true
76 | ```
77 |
78 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/icons.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Icons and logos
3 | weight: 27
4 | ---
5 |
6 | The Learn theme for Hugo loads the [**Font Awesome**](https://fontawesome.com) library, allowing you to easily display any icon or logo available in the Font Awesome free collection.
7 |
8 | ## Finding an icon
9 |
10 | Browse through the available icons in the [Font Awesome Gallery](https://fontawesome.com/icons?d=gallery&m=free). Notice that the **free** filter is enabled, as only the free icons are available by default.
11 |
12 | Once on the Font Awesome page for a specific icon, for example the page for the [heart](https://fontawesome.com/icons/heart?style=solid), copy the HTML reference and paste into the markdown content.
13 |
14 | The HTML to include the heart icon is:
15 |
16 | ```
17 |
18 | ```
19 |
20 | ## Including in markdown
21 |
22 | Paste the `` HTML into markup and Font Awesome will load the relevant icon.
23 |
24 | ```
25 | Built with from Grav and Hugo
26 | ```
27 |
28 | Which appears as
29 |
30 | Built with from Grav and Hugo
31 |
32 | ## Customising icons
33 |
34 | Font Awesome provides many ways to modify the icon
35 |
36 | * Change colour (by default the icon will inherit the parent colour)
37 | * Increase or decrease size
38 | * Rotate
39 | * Combine with other icons
40 |
41 | Check the full documentation on [web fonts with CSS](https://fontawesome.com/how-to-use/web-fonts-with-css) for more.
42 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-11-29T08:41:44+01:00
3 | title: Tags
4 | weight: 40
5 | tags: ["documentation", "tutorial"]
6 | ---
7 |
8 | *Learn theme* support one default taxonomy of gohugo: the *tag* feature.
9 |
10 | ## Configuration
11 |
12 | Just add tags to any page:
13 |
14 | ```markdown
15 | ---
16 | date: 2018-11-29T08:41:44+01:00
17 | title: Theme tutorial
18 | weight: 15
19 | tags: ["tutorial", "theme"]
20 | ---
21 | ```
22 |
23 | ## Behavior
24 |
25 |
26 | The tags are displayed at the top of the page, in their insertion order.
27 |
28 | Each tag is a link to a *Taxonomy* page displaying all the articles with the given tag.
29 |
30 | ## List all the tags
31 |
32 | In the `config.toml` file you can add a shortcut to display all the tags
33 |
34 | ```toml
35 | [[menu.shortcuts]]
36 | name = " Tags"
37 | url = "/tags"
38 | weight = 30
39 | ```
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-11-29T08:41:44+01:00
3 | title: Tags
4 | weight: 40
5 | tags: ["documentation", "tutorial"]
6 | ---
7 |
8 |
9 | Le *thème Learn* supporte une des taxonomy par défaut de GoHugo : les tags.
10 |
11 | ## Configuration
12 |
13 | Il suffit d'ajouter un tableau de tags sur la page :
14 |
15 | ```markdown
16 | ---
17 | date: 2018-11-29T08:41:44+01:00
18 | title: Tutoriel pour le thème
19 | weight: 15
20 | tags: ["tutoriel", "theme"]
21 | ---
22 | ```
23 |
24 | ## Comportement
25 |
26 | Les tags sont affichés en haut de la page, dans l'ordre dans lequel ils ont été saisis.
27 |
28 | Chaque tag est un lien vers une page *Taxonomy*, qui affiche tous les article avec ce tag.
29 |
30 |
31 | ## Liste des tags
32 |
33 | Il est possible de rajouter un raccourci dans le fichier `config.toml` afin d'afficher une page listant tous les tags
34 |
35 | ```toml
36 | [[menu.shortcuts]]
37 | name = " Tags"
38 | url = "/tags"
39 | weight = 30
40 | ```
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/credits.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Credits
3 | disableToc: true
4 | ---
5 |
6 | ## Contributors
7 |
8 | Thanks to them for making Open Source Software a better place !
9 |
10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}}
11 |
12 | And a special thanks to [@vjeantet](https://github.com/vjeantet) for his work on [docdock](https://github.com/vjeantet/hugo-theme-docdock), a fork of hugo-theme-learn. v2.0.0 of this theme is inspired by his work.
13 |
14 | ## Packages and libraries
15 | * [mermaid](https://knsv.github.io/mermaid) - generation of diagram and flowchart from text in a similar manner as markdown
16 | * [font awesome](http://fontawesome.io/) - the iconic font and CSS framework
17 | * [jQuery](https://jquery.com) - The Write Less, Do More, JavaScript Library
18 | * [lunr](https://lunrjs.com) - Lunr enables you to provide a great search experience without the need for external, server-side, search services...
19 | * [horsey](https://bevacqua.github.io/horsey/) - Progressive and customizable autocomplete component
20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - copy text to clipboard
21 | * [highlight.js](https://highlightjs.org) - Javascript syntax highlighter
22 | * [modernizr](https://modernizr.com) - A JavaScript toolkit that allows web developers to use new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don't support
23 |
24 | ## Tooling
25 |
26 | * [Netlify](https://www.netlify.com) - Continuous deployement and hosting of this documentation
27 | * [Hugo](https://gohugo.io/)
28 |
29 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/credits.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Crédits
3 | disableToc: true
4 | ---
5 |
6 | ## Contributeurs
7 |
8 | Merci à eux de rendre le monde Open Source meilleur !
9 |
10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}}
11 |
12 | Et un grand merci à [@vjeantet](https://github.com/vjeantet) pour son travail sur [docdock](https://github.com/vjeantet/hugo-theme-docdock), un fork de _hugo-theme-learn_. La v2.0.0 du thème est en grande partie inspirée de son travail.
13 |
14 | ## Packages et librairies
15 | * [mermaid](https://knsv.github.io/mermaid) - géneration de diagrames et graphiques à partir de texte similaire à Markdown
16 | * [font awesome](http://fontawesome.io/) - Le framework de polices iconiques
17 | * [jQuery](https://jquery.com) - La plus connue des librairies Javascript
18 | * [lunr](https://lunrjs.com) - Lunr fournit des fonctions de recherche sans service externe
19 | * [horsey](https://bevacqua.github.io/horsey/) - Autocomplétion de composants (utiliser pour les suggestions de recherche)
20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - Copier le texte dans le presse-papier
21 | * [highlight.js](https://highlightjs.org) - Mise en valeur de syntaxes
22 | * [modernizr](https://modernizr.com) - Une boite à outil Javascript qui permet aux développeurs d'utiliser les dernières fonctionnalités de CSS et HTML5, même sur de vieux navigateurs.
23 |
24 | ## Outils
25 |
26 | * [Netlify](https://www.netlify.com) - Déploiement continue et hébergement de cette documentation
27 | * [Hugo](https://gohugo.io/)
28 |
29 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Shortcodes
4 | pre: "3. "
5 | weight: 15
6 | ---
7 |
8 | Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities.
9 |
10 | But this happens to be a bad idea. Everyone uses Markdown because it's pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible.
11 |
12 | To avoid this limitations, Hugo created [shortcodes](https://gohugo.io/extras/shortcodes/). A shortcode is a simple snippet inside a page.
13 |
14 | **Hugo-theme-learn** provides multiple shortcodes on top of existing ones.
15 |
16 | {{%children style="h2" description="true" %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Shortcodes
4 | pre: "3. "
5 | weight: 15
6 | ---
7 |
8 | Hugo utilise Markdown pour son format simple. Cependant, il y a beaucoup de chose que Markdown ne supporte pas bien. On pourrait utiliser du HTML pur pour améliorer les capacité du Markdown.
9 |
10 | Mais c'est probablement une mauvaise idée. Tout le monde utilise le Markdown parce que c'est pur et simple à lire même lorsqu'il est affiché en texte brut. Vous devez éviter le HTML autant que possible pour garder le contenu simple.
11 |
12 | Cependant, pour éviter les limitations, Hugo a créé les [shortcodes](https://gohugo.io/extras/shortcodes/). Un shortcode est un bout de code (*snippet*) dans une page.
13 |
14 | **Hugo-theme-learn** fournit de multiple shortcodes en plus de ceux existant.
15 |
16 | {{%children style="h2" description="true" %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Attachments
3 | description : "The Attachments shortcode displays a list of files attached to a page."
4 | ---
5 |
6 | The Attachments shortcode displays a list of files attached to a page.
7 |
8 | {{% attachments /%}}
9 |
10 | ## Usage
11 |
12 | The shortcurt lists files found in a **specific folder**.
13 | Currently, it support two implementations for pages
14 |
15 | 1. If your page is a markdown file, attachements must be place in a **folder** named like your page and ending with **.files**.
16 |
17 | > * content
18 | > * _index.md
19 | > * page.files
20 | > * attachment.pdf
21 | > * page.md
22 |
23 | 2. If your page is a **folder**, attachements must be place in a nested **'files'** folder.
24 |
25 | > * content
26 | > * _index.md
27 | > * page
28 | > * index.md
29 | > * files
30 | > * attachment.pdf
31 |
32 | Be aware that if you use a multilingual website, you will need to have as many folders as languages.
33 |
34 | That's all !
35 |
36 | ### Parameters
37 |
38 | | Parameter | Default | Description |
39 | |:--|:--|:--|
40 | | title | "Attachments" | List's title |
41 | | style | "" | Choose between "orange", "grey", "blue" and "green" for nice style |
42 | | pattern | ".*" | A regular expressions, used to filter the attachments by file name.
The **pattern** parameter value must be [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).
43 |
44 | For example:
45 |
46 | * To match a file suffix of 'jpg', use **.*jpg** (not *.jpg).
47 | * To match file names ending in 'jpg' or 'png', use **.*(jpg|png)**
48 |
49 | ### Examples
50 |
51 | #### List of attachments ending in pdf or mp4
52 |
53 |
54 | {{%/*attachments title="Related files" pattern=".*(pdf|mp4)"/*/%}}
55 |
56 | renders as
57 |
58 | {{%attachments title="Related files" pattern=".*(pdf|mp4)"/%}}
59 |
60 | #### Colored styled box
61 |
62 | {{%/*attachments style="orange" /*/%}}
63 |
64 | renders as
65 |
66 | {{% attachments style="orange" /%}}
67 |
68 |
69 | {{%/*attachments style="grey" /*/%}}
70 |
71 | renders as
72 |
73 | {{% attachments style="grey" /%}}
74 |
75 | {{%/*attachments style="blue" /*/%}}
76 |
77 | renders as
78 |
79 | {{% attachments style="blue" /%}}
80 |
81 | {{%/*attachments style="green" /*/%}}
82 |
83 | renders as
84 |
85 | {{% attachments style="green" /%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws-samples/sagemaker-workshop/d2884e65e4e4af97c4c3bd0f8925d0fca771447f/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Attachments (Pièces jointes)
3 | description : "The Attachments shortcode displays a list of files attached to a page."
4 | ---
5 |
6 | Le shortcode *Attachments* affiche une liste de pièces jointes d'une page.
7 |
8 | {{% attachments /%}}
9 |
10 | ## Utilisation
11 |
12 | Le shortcode affiche la liste de fichiers trouvés dans un **dossier spécifique**
13 | A l'heure actuelle, il supporte deux implémentations
14 |
15 | 1. Si votre page est un fichier Markdown, les pièces jointes doivent être placée dans un **dossier** nommé comme le nom de la page et suffixé par **.files**.
16 |
17 | > * content
18 | > * _index.md
19 | > * page.files
20 | > * attachment.pdf
21 | > * page.md
22 |
23 | 2. Si votre page est un **dossier**, les pièces jointes doivent être placées dans un dossier fils **'files'**.
24 |
25 | > * content
26 | > * _index.md
27 | > * page
28 | > * index.md
29 | > * files
30 | > * attachment.pdf
31 |
32 | Attention, si votre site est multi-langue, vous devrez avec autant de dossier qu'il y a de langues.
33 |
34 | C'est tout !
35 |
36 | ### Paramètres
37 |
38 | | Paramètre | Défaut | Description |
39 | |:--|:--|:--|
40 | | title | "Pièces jointes" | Titre de la liste |
41 | | style | "" | Choisir entre "orange", "grey", "blue" et "green" pour un style plus sympa |
42 | | pattern | ".*" | Une expression régulière, utilisée pour filtrer les pièces jointes par leur nom de fichier.
Le paramètre **pattern** doit être une [expression régulière](https://en.wikipedia.org/wiki/Regular_expression).
43 |
44 | Par exemple:
45 |
46 | * Pour trouver les fichiers avec le suffixe 'jpg', utilisez **.*jpg** (pas *.jpg).
47 | * Pour trouver les fichiers avec les suffixe 'jpg' ou 'png', utilisez **.*(jpg|png)**
48 |
49 | ### Exemples
50 |
51 | #### Lister les pièces jointes de type pdf ou mp4
52 |
53 |
54 | {{%/*attachments title="Fichiers associés" pattern=".*(pdf|mp4)"/*/%}}
55 |
56 | s'affiche comme
57 |
58 | {{%attachments title="Fichiers associés" pattern=".*(pdf|mp4)"/%}}
59 |
60 | #### Modifier le style
61 |
62 | {{%/*attachments style="orange" /*/%}}
63 |
64 | s'affiche comme
65 |
66 | {{% attachments style="orange" /%}}
67 |
68 |
69 | {{%/*attachments style="grey" /*/%}}
70 |
71 | s'affiche comme
72 |
73 | {{% attachments style="grey" /%}}
74 |
75 | {{%/*attachments style="blue" /*/%}}
76 |
77 | s'affiche comme
78 |
79 | {{% attachments style="blue" /%}}
80 |
81 | {{%/*attachments style="green" /*/%}}
82 |
83 | s'affiche comme
84 |
85 | {{% attachments style="green" /%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Button
3 | description : "Nice buttons on your page."
4 | ---
5 |
6 | A button is a just a clickable button with optional icon.
7 |
8 | ```
9 | {{%/* button href="https://getgrav.org/" */%}}Get Grav{{%/* /button */%}}
10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Get Grav with icon{{%/* /button */%}}
11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Get Grav with icon right{{%/* /button */%}}
12 | ```
13 |
14 | {{% button href="https://getgrav.org/" %}}Get Grav{{% /button %}}
15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Get Grav with icon{{% /button %}}
16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Get Grav with icon right{{% /button %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Button (Bouton)
3 | description : "De beaux boutons sur votre page."
4 | ---
5 |
6 | Le shortcode *button* est simplement un bouton cliquable avec une icône optionnelle.
7 |
8 | ```
9 | {{%/* button href="https://getgrav.org/" */%}}Téléchargez Grav{{%/* /button */%}}
10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Téléchargez Grav avec icône{{%/* /button */%}}
11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Téléchargez Grav avec icône à droite{{%/* /button */%}}
12 | ```
13 |
14 | {{% button href="https://getgrav.org/" %}}Téléchargez Grav{{% /button %}}
15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Téléchargez Grav avec icône{{% /button %}}
16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Téléchargez Grav avec icône à droite{{% /button %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Children
3 | description : List the child pages of a page
4 | ---
5 |
6 | Use the children shortcode to list the child pages of a page and the further descendants (children's children). By default, the shortcode displays links to the child pages.
7 |
8 | ## Usage
9 |
10 | | Parameter | Default | Description |
11 | |:--|:--|:--|
12 | | page | _current_ | Specify the page name (section name) to display children for |
13 | | style | "li" | Choose the style used to display descendants. It could be any HTML tag name |
14 | | showhidden | "false" | When true, child pages hidden from the menu will be displayed |
15 | | description | "false" | Allows you to include a short text under each page in the list. when no description exists for the page, children shortcode takes the first 70 words of your content. [read more info about summaries on gohugo.io](https://gohugo.io/content/summaries/) |
16 | | depth | 1 | Enter a number to specify the depth of descendants to display. For example, if the value is 2, the shortcode will display 2 levels of child pages. **Tips:** set 999 to get all descendants|
17 | | sort | none | Sort Children By
Weight - to sort on menu order
Name - to sort alphabetically on menu label
Identifier - to sort alphabetically on identifier set in frontmatter
URL - URL
|
18 |
19 | ## Demo
20 |
21 | {{%/* children */%}}
22 |
23 | {{% children %}}
24 |
25 | {{%/* children description="true" */%}}
26 |
27 | {{%children description="true" %}}
28 |
29 | {{%/* children depth="3" showhidden="true" */%}}
30 |
31 | {{% children depth="3" showhidden="true" %}}
32 |
33 | {{%/* children style="h2" depth="3" description="true" */%}}
34 |
35 | {{% children style="h2" depth="3" description="true" %}}
36 |
37 | {{%/* children style="div" depth="999" */%}}
38 |
39 | {{% children style="div" depth="999" %}}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Children (Pages filles)
3 | description : Liste les pages filles de la page
4 | ---
5 |
6 | Utilisez le shortcode *children* pour lister les pages filles de la page et tous ses déscendants (pages filles de pages filles). Par défaut, le shortcode affiche des liens vers les pages filles.
7 |
8 | ## Utilisation
9 |
10 | | Paramètre | Défaut | Description |
11 | |:--|:--|:--|
12 | | page | _current_ | Spécifie le nom de la page (nom de la section) à afficher |
13 | | style | "li" | Choisi le style à utiliser pour afficher les descendants. Cela peut être n'importe quel balise HTML |
14 | | showhidden | "false" | Quand *true*, pages filles cachées dans le menu seront affichées quand même |
15 | | description | "false" | Permet d'inclure le texte de la description de la page sous chaque entré de la liste. quand aucune description existe pour la page, le shortcode prend les 70 premiers mots du contenu. [plus d'infos sur gohugo.io](https://gohugo.io/content/summaries/) |
16 | | depth | 1 | Nombre de descendants à afficher. Par exemple, si la valeur est 2, le shortcode va afficher 2 niveaux de pages filels. **Astuce:** Utilisez 999 pour avoir tous les descendants|
17 | | sort | | Tri les pages filles par
Weight - Poids
Name - Nom
Identifier - Trier alphabétiquement par identifiant configuré dans le front matter
URL - URL
|
18 |
19 | ## Démo
20 |
21 | {{%/* children */%}}
22 |
23 | {{% children %}}
24 |
25 | {{%/* children description="true" */%}}
26 |
27 | {{%children description="true" %}}
28 |
29 | {{%/* children depth="3" showhidden="true" */%}}
30 |
31 | {{% children depth="3" showhidden="true" %}}
32 |
33 | {{%/* children style="h2" depth="3" description="true" */%}}
34 |
35 | {{% children style="h2" depth="3" description="true" %}}
36 |
37 | {{%/* children style="div" depth="999" */%}}
38 |
39 | {{% children style="div" depth="999" %}}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1-1"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 2"
3 | description = ""
4 | +++
5 |
6 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
7 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
8 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
9 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
10 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
11 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 2"
3 | description = ""
4 | +++
5 |
6 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
7 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
8 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
9 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
10 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
11 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test 3"
3 | description = "This is a page test"
4 | +++
5 |
6 | This is a test 3 demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test 3"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo test 3
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 3"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page, not displayed in the menu
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 3"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 4"
3 | description = "This is a demo child page"
4 | hidden = true
5 | +++
6 |
7 | This is a demo child page, not displayed in the menu
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 4"
3 | description = "Ceci est une page test"
4 | hidden = true
5 | +++
6 |
7 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test"
3 | description = "This is a page test"
4 | +++
5 |
6 | This is a test demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.fr.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test"
3 | description = "Ceci est une page test"
4 | +++
5 |
6 | Ceci est une page de demo
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Expand
3 | description : "Displays an expandable/collapsible section of text on your page"
4 | ---
5 |
6 | The Expand shortcode displays an expandable/collapsible section of text on your page.
7 | Here is an example
8 |
9 | {{%expand%}}
10 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
11 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
12 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
13 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
14 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
15 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
16 | {{%/expand%}}
17 |
18 |
19 | ## Usage
20 |
21 |
22 | this shortcode takes exactly one optional parameter to define the text that appears next to the expand/collapse icon. (default is "Expand me...")
23 |
24 | {{%/*expand "Is this learn theme rocks ?" */%}}Yes !.{{%/* /expand*/%}}
25 |
26 | {{%expand "Is this learn theme rocks ?" %}}Yes !{{% /expand%}}
27 |
28 | # Demo
29 |
30 | {{%/*expand*/%}}
31 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
32 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
33 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
34 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
35 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
36 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
37 | {{%/* /expand*/%}}
38 |
39 |
40 | {{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
41 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
42 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
43 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
44 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
45 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{% /expand%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Expand
3 | description : "Affiche une section de texte qui se plie et se déplie"
4 | ---
5 |
6 | Le shortcode *Expand* affiche une section de texte qui se plie et se déplie.
7 | Ci-dessous un exemple.
8 |
9 | {{%expand%}}
10 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
11 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
12 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
13 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
14 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
15 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
16 | {{%/expand%}}
17 |
18 |
19 | ## Utilisation
20 |
21 |
22 | Ce shortcode prends exactement un paramètre optionel pour définir le texte à côté de l'icone. (valeur par défaut est "Déroulez-moi...")
23 |
24 | {{%/*expand "Est-ce que ce thème envoie du pâté ?" */%}}Oui !.{{%/* /expand*/%}}
25 |
26 | {{%expand "Est-ce que ce thème envoie du pâté ?" %}}Oui !{{% /expand%}}
27 |
28 | # Demo
29 |
30 | {{%/*expand*/%}}
31 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
32 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
33 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
34 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
35 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
36 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
37 | {{%/* /expand*/%}}
38 |
39 |
40 | {{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
41 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
42 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
43 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
44 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
45 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{% /expand%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Notice
3 | description : "Disclaimers to help you structure your page"
4 | ---
5 |
6 | The notice shortcode shows 4 types of disclaimers to help you structure your page.
7 |
8 | ### Note
9 |
10 | ```
11 | {{%/* notice note */%}}
12 | A notice disclaimer
13 | {{%/* /notice */%}}
14 | ```
15 |
16 | renders as
17 |
18 | {{% notice note %}}
19 | A notice disclaimer
20 | {{% /notice %}}
21 |
22 | ### Info
23 |
24 | ```
25 | {{%/* notice info */%}}
26 | An information disclaimer
27 | {{%/* /notice */%}}
28 | ```
29 |
30 | renders as
31 |
32 | {{% notice info %}}
33 | An information disclaimer
34 | {{% /notice %}}
35 |
36 | ### Tip
37 |
38 | ```
39 | {{%/* notice tip */%}}
40 | A tip disclaimer
41 | {{%/* /notice */%}}
42 | ```
43 |
44 | renders as
45 |
46 | {{% notice tip %}}
47 | A tip disclaimer
48 | {{% /notice %}}
49 |
50 | ### Warning
51 |
52 | ```
53 | {{%/* notice warning */%}}
54 | A warning disclaimer
55 | {{%/* /notice */%}}
56 | ```
57 |
58 | renders as
59 |
60 | {{% notice warning %}}
61 | A warning disclaimer
62 | {{% /notice %}}
63 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Notice
3 | description : "Message pour vous aider à structurer votre contenu"
4 | ---
5 |
6 | Le shortcode *Notice* permet d'afficher 4 types de message pour vous aider à structurer votre contenu.
7 |
8 | ### Note
9 |
10 | ```
11 | {{%/* notice note */%}}
12 | Une notice de type *note*
13 | {{%/* /notice */%}}
14 | ```
15 |
16 | s'affiche comme
17 |
18 | {{% notice note %}}
19 | Une notice de type *note*
20 | {{% /notice %}}
21 |
22 | ### Info
23 |
24 | ```
25 | {{%/* notice info */%}}
26 | Une notice de type *info*
27 | {{%/* /notice */%}}
28 | ```
29 |
30 | s'affiche comme
31 |
32 | {{% notice info %}}
33 | Une notice de type *info*
34 | {{% /notice %}}
35 |
36 | ### Tip
37 |
38 | ```
39 | {{%/* notice tip */%}}
40 | Une notice de type *tip*
41 | {{%/* /notice */%}}
42 | ```
43 |
44 | s'affiche comme
45 |
46 | {{% notice tip %}}
47 | Une notice de type *tip*
48 | {{% /notice %}}
49 |
50 | ### Warning
51 |
52 | ```
53 | {{%/* notice warning */%}}
54 | Une notice de type *warning*
55 | {{%/* /notice */%}}
56 | ```
57 |
58 | s'affiche comme
59 |
60 | {{% notice warning %}}
61 | Une notice de type *warning*
62 | {{% /notice %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Site param
3 | description : "Get value of site params variables in your page."
4 | ---
5 |
6 | `siteparam` shortcode is used to help you print values of site params.
7 |
8 | For instance, in this current site, the `editURL` variable is used in `config.toml`
9 |
10 | ```toml
11 | [params]
12 | editURL = "https://github.com/matcornic/hugo-theme-learn/edit/master/exampleSite/content/"
13 | ```
14 |
15 | Use the `siteparam` shortcode to display its value.
16 |
17 | ```
18 | `editURL` Value : {{%/* siteparam "editURL" */%}}
19 | ```
20 |
21 | is displayed as
22 |
23 | `editURL` Value : {{% siteparam "editURL" %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Site param
3 | description : "Afficher la valeur d'un paramètre global du site dans votre page"
4 | ---
5 |
6 | Les shortcode `siteparam` est utilisé pour vous aider à afficher des valeurs provenant des paramètres globaux du site.
7 |
8 | Par exemple, dans ce site, le paramètre `editURL` est utilisé dans le fichier `config.toml`
9 |
10 | ```toml
11 | [params]
12 | editURL = "https://github.com/matcornic/hugo-theme-learn/edit/master/exampleSite/content/"
13 | ```
14 |
15 | Utilisez le shortcode `siteparam` pour affichier sa valeur.
16 |
17 | ```
18 | Valeur de `editURL` : {{%/* siteparam "editURL" */%}}
19 | ```
20 |
21 | s'affiche comme
22 |
23 | Valeur de `editURL` : {{% siteparam "editURL" %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/showcase.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Showcase
3 | disableToc: true
4 | ---
5 |
6 | #### [TAT](https://ovh.github.io/tat/overview/) by OVH
7 | 
8 |
9 | #### [Tshark.dev](https://tshark.dev) by Ross Jacobs
10 | 
11 |
12 | #### [inteliver](https://docs.inteliver.com) by Amir Lavasani
13 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/showcase.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Vitrine
3 | disableToc: true
4 | slug: vitrine
5 | ---
6 |
7 | #### [TAT](https://ovh.github.io/tat/overview/) par OVH
8 | 
9 |
10 | #### [Tshark.dev](https://tshark.dev) par Ross Jacobs
11 | 
12 |
13 | #### [inteliver](https://docs.inteliver.com) by Amir Lavasani
14 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/partials/custom-footer.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/partials/logo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |