├── .editorconfig ├── .gitignore ├── .markdownlint.yml ├── .spelling ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── assets └── images │ └── logo.png ├── config ├── _default │ ├── config.toml │ ├── markup.toml │ ├── menu.toml │ ├── minify.toml │ ├── module.toml │ ├── params.toml │ └── privacy.toml └── production │ ├── config.toml │ └── minify.toml ├── content ├── _index.en.md ├── administrative │ └── _index.en.md └── faq │ └── _index.en.md ├── docs ├── .nojekyll ├── 404.html ├── administrative │ ├── index.html │ └── index.xml ├── categories │ ├── index.html │ └── index.xml ├── 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-aws.css │ ├── theme-blue.css │ ├── theme-green.css │ ├── theme-red.css │ └── theme.css ├── faq │ ├── index.html │ └── index.xml ├── 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 │ └── logo.png ├── index.html ├── index.xml ├── js │ ├── auto-complete.js │ ├── clipboard.min.js │ ├── featherlight.min.js │ ├── highlight.pack.js │ ├── html5shiv-printshiv.min.js │ ├── hugo-learn.js │ ├── jquery-3.3.1.min.js │ ├── jquery-3.5.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 ├── robots.txt ├── sitemap.xml └── tags │ ├── index.html │ └── index.xml ├── layouts ├── _default │ └── _markup │ │ └── render-link.html ├── partials │ ├── favicon.html │ ├── logo.html │ └── menu.html └── robots.txt ├── static └── .nojekyll └── themes └── learn ├── .editorconfig ├── .gitignore ├── .grenrc.yml ├── LICENSE.md ├── README.md ├── archetypes ├── chapter.md └── default.md ├── 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 │ ├── img.html │ ├── mermaid.html │ ├── notice.html │ ├── ref.html │ ├── relref.html │ ├── siteparam.html │ └── siteurl.html ├── 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-aws.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 │ └── logo.png ├── js │ ├── auto-complete.js │ ├── clipboard.min.js │ ├── featherlight.min.js │ ├── highlight.pack.js │ ├── html5shiv-printshiv.min.js │ ├── hugo-learn.js │ ├── jquery-3.3.1.min.js │ ├── jquery-3.5.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 └── theme.toml /.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [**] 7 | charset = utf-8 8 | end_of_line = lf 9 | indent_size = 2 10 | indent_style = space 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.js] 15 | insert_final_newline = true 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Local .terraform directories 2 | **/.terraform/* 3 | 4 | # .tfstate files 5 | *.tfstate 6 | *.tfstate.* 7 | 8 | # Crash log files 9 | crash.log 10 | 11 | # Ignore any .tfvars files that are generated automatically for each Terraform run. Most 12 | # .tfvars files are managed as part of configuration and so should be included in 13 | # version control. 14 | # 15 | # example.tfvars 16 | 17 | # Ignore override files as they are usually used to override resources locally and so 18 | # are not checked in 19 | override.tf 20 | override.tf.json 21 | *_override.tf 22 | *_override.tf.json 23 | 24 | # Include override files you do wish to add to version control using negated pattern 25 | # 26 | # !example_override.tf 27 | 28 | # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan 29 | # example: *tfplan* 30 | 31 | # Hugo 32 | /.hugo_build.lock 33 | public/ 34 | 35 | # macOS 36 | .DS_Store 37 | -------------------------------------------------------------------------------- /.markdownlint.yml: -------------------------------------------------------------------------------- 1 | MD013: false 2 | MD014: false 3 | -------------------------------------------------------------------------------- /.spelling: -------------------------------------------------------------------------------- 1 | # Format - lines beginning # are comments 2 | # global dictionary is at the start, file overrides afterwards 3 | # markdown-spellcheck spelling configuration file 4 | # one word per line, to define a file override use ' - filename' 5 | # where filename is relative to this configuration file 6 | apis 7 | aws-ia 8 | cfn 9 | changelog 10 | changelog.md 11 | cidr 12 | cloud_workspace 13 | cloudcontrol 14 | CloudFormation 15 | cloudtrail 16 | codecommit 17 | codepipeline 18 | config 19 | customizable 20 | docdock 21 | dynamodb 22 | for_each 23 | gantt 24 | grav 25 | gren 26 | HashiCorp 27 | iac 28 | iam.tf. 29 | ipsum 30 | kics 31 | lifecycle 32 | linkTitle 33 | lorem 34 | magento 35 | main.tf 36 | main.tf. 37 | MRs 38 | notice.txt 39 | pre 40 | prev 41 | readmes 42 | repo 43 | repos 44 | reuseable 45 | searchable 46 | sublicense 47 | subnet 48 | subnets 49 | terraform-aws-label 50 | terratest 51 | tflint 52 | tfsec 53 | v0.11.x 54 | v0.12.x 55 | v2 56 | valere 57 | versioning 58 | vjeantet 59 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @aws-ia/aws-ia 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Joining Alpha program 2 | This program is currently in alpha stage and is limited access. If you are interested in joining please reach out to aws-ia-eng@amazon.com 3 | 4 | # Contributing Guidelines 5 | 6 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional 7 | documentation, we greatly value feedback and contributions from our community. 8 | 9 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary 10 | information to effectively respond to your bug report or contribution. 11 | 12 | ## Reporting Bugs/Feature Requests 13 | 14 | We welcome you to use the GitHub issue tracker to report bugs or suggest features. 15 | 16 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already 17 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: 18 | 19 | * A reproducible test case or series of steps 20 | * The version of our code being used 21 | * Any modifications you've made relevant to the bug 22 | * Anything unusual about your environment or deployment 23 | 24 | 25 | ## Contributing via Pull Requests 26 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: 27 | 28 | 1. You are working against the latest source on the *main* branch. 29 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 30 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. 31 | 32 | To send us a pull request, please: 33 | 34 | 1. Fork the repository. 35 | 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. 36 | 3. Ensure local tests pass. 37 | 4. Commit to your fork using clear commit messages. 38 | 5. Send us a pull request, answering any default questions in the pull request interface. 39 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. 40 | 41 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and 42 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aws-ia standards for Terraform 2 | 3 | > Note: This module is in alpha state and is likely to contain bugs and updates may introduce breaking changes. 4 | > It is not recommended for production use at this time. 5 | -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/assets/images/logo.png -------------------------------------------------------------------------------- /config/_default/markup.toml: -------------------------------------------------------------------------------- 1 | # https://gohugo.io/getting-started/configuration-markup#goldmark 2 | 3 | [goldmark.renderer] 4 | 5 | # By default, Goldmark does not render raw HTMLs and potentially dangerous links. If you have lots of inline HTML 6 | # and/or JavaScript, you may need to turn this on. 7 | unsafe = true 8 | -------------------------------------------------------------------------------- /config/_default/menu.toml: -------------------------------------------------------------------------------- 1 | [[shortcuts]] 2 | name = " GitHub" 3 | identifier = "github" 4 | url = 'https://github.com/aws-ia' 5 | weight = 10 6 | 7 | [[shortcuts]] 8 | name = " Catalog" 9 | identifier = "catlog" 10 | url = 'https://aws.amazon.com/quickstart/architecture/terraform-modules-on-aws/' 11 | weight = 20 12 | 13 | [[shortcuts]] 14 | name = "Registry" 15 | identifier = "tf-registry" 16 | url = 'https://aws.amazon.com/quickstart/architecture/terraform-modules-on-aws/' 17 | weight = 30 18 | -------------------------------------------------------------------------------- /config/_default/minify.toml: -------------------------------------------------------------------------------- 1 | # https://gohugo.io/getting-started/configuration/?search-input=languageCode#configure-minify 2 | 3 | disableCSS = false 4 | disableHTML = false 5 | disableJS = false 6 | disableJSON = false 7 | disableSVG = false 8 | disableXML = false 9 | minifyOutput = false 10 | 11 | [tdewolff] 12 | 13 | [tdewolff.css] 14 | keepCSS2 = true 15 | precision = 0 16 | 17 | [tdewolff.html] 18 | keepComments = false 19 | keepConditionalComments = true 20 | keepDefaultAttrVals = true 21 | keepDocumentTags = true 22 | keepEndTags = true 23 | keepQuotes = false 24 | keepWhitespace = false 25 | 26 | [tdewolff.js] 27 | keepVarNames = false 28 | precision = 0 29 | 30 | [tdewolff.json] 31 | keepNumbers = false 32 | precision = 0 33 | 34 | [tdewolff.svg] 35 | precision = 0 36 | 37 | [tdewolff.xml] 38 | keepWhitespace = false 39 | -------------------------------------------------------------------------------- /config/_default/module.toml: -------------------------------------------------------------------------------- 1 | # https://gohugo.io/hugo-modules/configuration/ 2 | 3 | # A optional Glob pattern matching module paths to skip when vendoring, e.g. “github.com/**” 4 | # noVendor = '' 5 | 6 | # When enabled, we will pick the vendored module closest to the module using it. The default behaviour is to pick the 7 | # first. Note that there can still be only one dependency of a given module path, so once it is in use it cannot be 8 | # redefined. 9 | # vendorClosest = false 10 | 11 | # Defines the proxy server to use to download remote modules. Default is direct, which means “git clone” and similar. 12 | # proxy = 'direct' 13 | 14 | # Comma separated glob list matching paths that should not use the proxy configured above. 15 | # noProxy = 'none' 16 | 17 | # Comma separated glob list matching paths that should be treated as private. 18 | # private = '*.*' 19 | 20 | # A comma separated (or a slice) list of module path to directory replacement mapping, 21 | # e.g. "github.com/bep/myprettytheme -> ../..,github.com/bep/shortcodes -> /some/path". This is mostly useful for 22 | # temporary locally development of a module, and then it makes sense to set it as an OS environment variable, 23 | # e.g: env HUGO_MODULE_REPLACEMENTS="github.com/bep/myprettytheme -> ../..". Any relative path relates to themesDir, 24 | # and absolute paths are allowed. 25 | # replacements = '' 26 | 27 | [hugoVersion] 28 | # Whether the extended version of Hugo is required. 29 | extended = true 30 | 31 | # The maximum Hugo version supported 32 | # max = '' 33 | 34 | # The minimum Hugo version supported. 35 | min = '0.60.0' 36 | 37 | # [[imports]] 38 | # Set to true to disable the module while keeping any version info in the go.* files. 39 | # disable = false 40 | 41 | # If enabled, any module configuration file, e.g. config.toml, will not be loaded. Note that this will also stop the 42 | # loading of any transitive module dependencies. 43 | # ignoreConfig = false 44 | 45 | # If enabled, module imports will not be followed. 46 | # ignoreImports = false 47 | 48 | # Do not mount any folder in this import. 49 | # noMounts = false 50 | 51 | # Can be either a valid Go Module module path, e.g. github.com/gohugoio/myShortcodes, or the directory name for the 52 | # module as stored in your themes folder. 53 | # path = 'github.com/theNewDynamic/gohugo-theme-ananke' 54 | -------------------------------------------------------------------------------- /config/_default/params.toml: -------------------------------------------------------------------------------- 1 | themeVariant = 'aws' 2 | logoPath = '/images/logo.png' 3 | 4 | # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page. 5 | # Useful to give opportunity to people to create merge request for your doc. 6 | # See the config.toml file from this documentation site to have an example. 7 | editURL = "" 8 | 9 | # Author of the site, will be used in meta information 10 | author = 'The AWS Integration & Automation team' 11 | 12 | # Description of the site, will be used in meta information 13 | description = "The AWS Integration & Automation team's best practices for Terraform" 14 | 15 | # Shows a checkmark for visited pages on the menu 16 | showVisitedLinks = false 17 | 18 | # Disable search function. It will hide search bar 19 | disableSearch = false 20 | 21 | # Javascript and CSS cache are automatically busted when new version of site is generated. 22 | # Set this to true to disable this behavior (some proxies don't handle well this optimization) 23 | disableAssetsBusting = false 24 | 25 | # Set this to true to disable copy-to-clipboard button for inline code. 26 | disableInlineCopyToClipBoard = true 27 | 28 | # A title for shortcuts in menu is set by default. Set this to true to disable it. 29 | disableShortcutsTitle = false 30 | 31 | # When using mulitlingual website, disable the switch language button. 32 | disableLanguageSwitchingButton = false 33 | 34 | # Hide breadcrumbs in the header and only show the current page title 35 | disableBreadcrumb = true 36 | 37 | # Hide Next and Previous page buttons normally displayed full height beside content 38 | disableNextPrev = true 39 | 40 | # Order sections in menu by "weight" or "title". Default to "weight" 41 | ordersectionsby = 'weight' 42 | -------------------------------------------------------------------------------- /config/_default/privacy.toml: -------------------------------------------------------------------------------- 1 | # https://gohugo.io/about/hugo-and-gdpr/ 2 | 3 | [disqus] 4 | disable = true 5 | 6 | [googleAnalytics] 7 | disable = true 8 | 9 | # Enabling this will make it so the users' IP addresses are anonymized within Google Analytics. 10 | anonymizeIP = true 11 | 12 | # Enabling this will make the GA templates respect the “Do Not Track” HTTP header. 13 | respectDoNotTrack = true 14 | 15 | # Enabling this will disable the use of Cookies and use Session Storage to Store the GA Client ID. 16 | useSessionStorage = true 17 | 18 | [instagram] 19 | disable = true 20 | 21 | # If simple mode is enabled, a static and no-JS version of the Instagram image card will be built. Note that this only 22 | # supports image cards and the image itself will be fetched from Instagram’s servers. 23 | simple = true 24 | 25 | # If you use the simple mode for Instagram and a site styled with Bootstrap 4, you may want to disable the inline 26 | # styles provided by Hugo. 27 | disableInlineCSS = true 28 | 29 | [twitter] 30 | disable = false 31 | 32 | # Enabling this for the twitter/tweet shortcode, the tweet and its embedded page on your site are not used for purposes 33 | # that include personalized suggestions and personalized ads. 34 | enableDNT = true 35 | 36 | # If simple mode is enabled, a static and no-JS version of a tweet will be built. 37 | simple = true 38 | 39 | # If you use the simple mode for Twitter, you may want to disable the inlines styles provided by Hugo. 40 | disableInlineCSS = true 41 | 42 | [vimeo] 43 | disable = true 44 | 45 | # Enabling this for the vimeo shortcode, the Vimeo player will be blocked from tracking any session data, including all 46 | # cookies and stats. 47 | enableDNT = false 48 | 49 | # If simple mode is enabled, the video thumbnail is fetched from Vimeo’s servers and it is overlayed with a play 50 | # button. If the user clicks to play the video, it will open in a new tab directly on Vimeo’s website. 51 | simple = false 52 | 53 | [youtube] 54 | disable = false 55 | 56 | # When you turn on privacy-enhanced mode, YouTube won’t store information about visitors on your website unless the 57 | # user plays the embedded video. 58 | privacyEnhanced = true 59 | -------------------------------------------------------------------------------- /config/production/config.toml: -------------------------------------------------------------------------------- 1 | buildDrafts = false 2 | buildExpired = false 3 | buildFuture = false 4 | -------------------------------------------------------------------------------- /config/production/minify.toml: -------------------------------------------------------------------------------- 1 | minifyOutput = true 2 | -------------------------------------------------------------------------------- /content/administrative/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = 'Administrative' 3 | chapter = true 4 | weight = 999 5 | date = '2022-01-12' 6 | +++ 7 | #### Guide Stage: `Alpha` 8 | 9 | {{% notice note %}} 10 | The aws-ia Terraform standards are updated often. Please be sure to refer to this document often to keep updated! 11 | {{% /notice %}} 12 | 13 | ## License 14 | 15 | * Licensed under Apache 2.0 16 | * Include Amazon NOTICE.txt 17 | 18 | ## Taxonomy 19 | 20 | **Root module**: Every Terraform configuration has at least one module, typically known as its root module. In the case of aws-ia modules, the root module is always meant to be made up of reuseable modules or build blocks. 21 | 22 | **Child modules**: A module that has been called by another module is often referred to as a child module. 23 | 24 | Types of reuseable aws-ia Modules: 25 | 26 | * aws-ia Service Modules: A container that provides a sensible default for deploying an AWS service based on aws-ia standards (Example: VPC/Aurora/SQS) 27 | * aws-ia Partner Modules: A container that leverages one or more AWS Service Modules to build the infrastructure needed to instantiate an AWS partner product (Example: Magento) 28 | 29 | ## Module Structure 30 | 31 | ```text 32 | ../terraform-partnername-productname 33 | ├── LICENSE 34 | ├── NOTICE.txt 35 | ├── deploy 36 | │ └── main.tf 37 | ├── main.tf 38 | └── setup_workspace 39 | ├── variables.tf 40 | └── workspace.tf 41 | ``` 42 | 43 | **File**: `deploy/main.tf` 44 | 45 | ```hcl 46 | # Example deployment using Terraform Cloud 47 | 48 | # Defaults to TFC for remote backend 49 | terraform { 50 | backend "remote" {} 51 | required_version = ">= 1.0.5" 52 | } 53 | 54 | # Use baseline VPC from aws-ia registery 55 | 56 | 57 | # Deploys example workload instance via root module 58 | module "workload" { 59 | source = "../" 60 | # interface to be defined 61 | # 62 | } 63 | ``` 64 | 65 | **File**: `/main.tf` 66 | 67 | ```hcl 68 | # Root Module 69 | # No backends should be defined by default in Root Module 70 | # This module is intended to be called by one or more other modules and must not contain any provider blocks 71 | ``` 72 | 73 | **File**: `/setup_workspace/` 74 | 75 | Creates the Terraform workspace in TFC. See the [registry](https://registry.terraform.io/modules/aws-ia/cloud_workspace/hashicorp/latest) for more information. 76 | 77 | ## Deployment Types 78 | 79 | **Local**: Write Terraform state and configuration to local working directory. 80 | 81 | **Terraform Cloud (TFC)**: Writes Terraform state and configuration to remote TFC workspace and stream it locally 82 | 83 | {{% notice note %}} 84 | For more into in how to setup TFC Workspace refer to the cloud_workspace module 85 | {{% /notice %}} 86 | 87 | ## Development standards 88 | 89 | ### Minimum Terraform version 90 | 91 | **Binary version**: `>= 1.0.5` 92 | 93 | **Provider Version**: `~> v3.58.0` 94 | 95 | ### aws-ia module standards 96 | 97 | Module `/main.tf` must not contain provider block definitions. 98 | 99 | Deploy example `/deploy/main.tf` - When creating an example Terraform Cloud deployment for the module are creating refer to the source directly. 100 | 101 | ```hcl 102 | module "self_deployment_example" { 103 | source = "../" 104 | } 105 | ``` 106 | 107 | * If the example terraform cloud deployment requires a VPC or any other AWS service, use the Terraform registry path. 108 | * Lock the version of any dependencies to the latest version at the time of release. 109 | 110 | ```hcl 111 | module "vpc" { 112 | source = "aws-ia/vpc/aws" 113 | version = "0.0.2" 114 | } 115 | ``` 116 | -------------------------------------------------------------------------------- /content/faq/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = 'Frequently asked questions (FAQ)' 3 | linkTitle = 'FAQ' 4 | description = 'Frequently asked questions of the AWS Integration & Automation team about Terraform standards' 5 | date = '2022-01-12' 6 | weight = 998 7 | chapter = true 8 | +++ 9 | ## AWS providers and associated modules demystified 10 | 11 | Terraform leverages providers to interact with infrastructure resources. In the case of AWS, there are two official providers available that can be used; the AWS Provider for Terraform, and the Terraform AWS Cloud Control Provider (AWSCC) provider. The AWS Provider for Terraform has been in existence for over 14 years, and is hand coded (with some code generated). The AWSCC Provider is the newest provider and is automatically generated from the CloudFormation Registry which means new features and services can be supported in Terraform right away. 12 | 13 | Our partners at HashiCorp have a detailed [blog post](https://www.hashicorp.com/blog/announcing-terraform-aws-cloud-control-provider-tech-preview) on this topic, and we encourage you to read it. 14 | 15 | The AWS Integration & Automation (AWS I&A) team authors and publishes Terraform modules that have validated provenance. Modules use specific providers in their implementation, and for convenience we have decided on a naming convention that will allow you to know what provider is being used by the module you are leveraging. This naming convention is `terraform--`. 16 | 17 | For example, you will see a module named `terraform-aws-rds-aurora` which informs you that this module is leveraging the AWS Provider for Terraform. You would also see another module named `terraform-awscc-waf` which informs you that it is leveraging the AWSCC Provider. [You can use both providers side by side](https://www.hashicorp.com/blog/announcing-terraform-aws-cloud-control-provider-tech-preview#using-two-providers) and we often do when writing AWSCC modules. The long term goal is to build robust modules that fully utilize the AWSCC provider. 18 | 19 | We standardize on semantic versioning to provide assurance of compatibility and provide robust testing of modules to provide assurance of functionality. 20 | 21 | The AWS CloudControl API and associated AWSCC Provider for Terraform will enable our customers to leverage the newest features and services using the IaC tooling of their choice. The AWS I&A team will prefer the AWSCC Provider when authoring or updating module choice and. Provider and the CloudControl APIs we see the AWSCC Provider mature and move into GA, you will see our newest modules prefer to use the AWSCC Provider. 22 | 23 | ## What is the `user_agent`? 24 | 25 | ```terraform 26 | provider "awscc" { 27 | user_agent = [{ 28 | product_name = "terraform-awscc-label" 29 | product_version = "0.0.4" 30 | comment = "V1/AWS-D69B4015/376222271" 31 | }] 32 | } 33 | ``` 34 | 35 | In AWS I&A repos you will see a `user_agent` defined in the provider block. This is a [feature that was added to AWSCC](https://github.com/hashicorp/terraform-provider-awscc/pull/247) and is optional. `user-agent` data is passed to AWS Cloud Control APIs during `terraform apply`. This is useful for discovery and compliance purposes, as the user-agent for each API call is available as a CloudTrail event. Teams can use this data to identify workloads running in their account such as 3rd party products, OU's, etc. The above example defines 3 fields: 36 | 37 | - `product_name`: The user friendly name of the module / repo. GitHub repo names are fungible. 38 | - `product_version`: The tag version of the module. 39 | - `comment`: 40 | - `V1`: Version 1 of our defined meta-data payload format. 41 | - `AWS-D69B4015`: A unique, searchable identifier. 42 | - `376222271`: The GitHub repo id, should be unique to each module and non-fungible. You can find a repo ID using `gh api repos/aws-ia/terraform-awscc-label --jq .id`. Download `gh` [here](https://cli.github.com/) 43 | 44 | `user_agent` is a list with entries that are appended allowing you to define many in the same block and/or define one per module. We define a `user_agent` payload per module. This means that a Root module execution will push module meta data to your CloudTrail log. 45 | 46 | ## Recommended deployment patterns for Terraform 47 | 48 | There are many ways to deploy or execute Terraform. We recommend either via [HashiCorp Terraform Cloud](https://github.com/aws-ia/terraform-hashicorp-cloud_workspace) or via [AWS S3 with DynamoDB for state locking](https://www.terraform.io/language/settings/backends/s3). 49 | 50 | ## Are modules protected by CI Automation? 51 | 52 | Terraform Module pull requests (PRs) are subject to continuous integration (CI) automation for quality, linting, and security scanning. We currently leverage [AWS CodePipeline](https://aws.amazon.com/codepipeline/) and [AWS CodeCommit](https://aws.amazon.com/codecommit/), a process that is private to AWS employees only. It is a heavy work-in-progress and we intend to expose information about it ASAP. For this reason, [GitHub Actions](https://github.com/features/actions) has been disabled. We are open to feedback on what should be included in our CI so please use your PR to discuss. 53 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/.nojekyll -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 404 Page not found

Error

Page not found!

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

-------------------------------------------------------------------------------- /docs/administrative/index.xml: -------------------------------------------------------------------------------- 1 | Administrative on The AWS Integration & Automation team's best practices for Terraformhttps://aws-ia.github.io/standards-terraform/administrative/Recent content in Administrative on The AWS Integration & Automation team's best practices for TerraformHugo -- gohugo.ioen-us, Amazon Web Services, Inc. or its affiliates. All rights reserved.Wed, 12 Jan 2022 00:00:00 +0000 -------------------------------------------------------------------------------- /docs/categories/index.html: -------------------------------------------------------------------------------- 1 | Categories :: The AWS Integration & Automation team's best practices for Terraform
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/categories/index.xml: -------------------------------------------------------------------------------- 1 | Categories on The AWS Integration & Automation team's best practices for Terraformhttps://aws-ia.github.io/standards-terraform/categories/Recent content in Categories on The AWS Integration & Automation team's best practices for TerraformHugo -- gohugo.ioen-us, Amazon Web Services, Inc. or its affiliates. All rights reserved. -------------------------------------------------------------------------------- /docs/css/atom-one-dark-reasonable.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage 4 | 5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 6 | 7 | */ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | line-height: 1.3em; 13 | color: #abb2bf; 14 | background: #282c34; 15 | border-radius: 5px; 16 | } 17 | .hljs-keyword, .hljs-operator { 18 | color: #F92672; 19 | } 20 | .hljs-pattern-match { 21 | color: #F92672; 22 | } 23 | .hljs-pattern-match .hljs-constructor { 24 | color: #61aeee; 25 | } 26 | .hljs-function { 27 | color: #61aeee; 28 | } 29 | .hljs-function .hljs-params { 30 | color: #A6E22E; 31 | } 32 | .hljs-function .hljs-params .hljs-typing { 33 | color: #FD971F; 34 | } 35 | .hljs-module-access .hljs-module { 36 | color: #7e57c2; 37 | } 38 | .hljs-constructor { 39 | color: #e2b93d; 40 | } 41 | .hljs-constructor .hljs-string { 42 | color: #9CCC65; 43 | } 44 | .hljs-comment, .hljs-quote { 45 | color: #b18eb1; 46 | font-style: italic; 47 | } 48 | .hljs-doctag, .hljs-formula { 49 | color: #c678dd; 50 | } 51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst { 52 | color: #e06c75; 53 | } 54 | .hljs-literal { 55 | color: #56b6c2; 56 | } 57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string { 58 | color: #98c379; 59 | } 60 | .hljs-built_in, .hljs-class .hljs-title { 61 | color: #e6c07b; 62 | } 63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { 64 | color: #d19a66; 65 | } 66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title { 67 | color: #61aeee; 68 | } 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | .hljs-link { 76 | text-decoration: underline; 77 | } 78 | -------------------------------------------------------------------------------- /docs/css/auto-complete.css: -------------------------------------------------------------------------------- 1 | .autocomplete-suggestions { 2 | text-align: left; 3 | cursor: default; 4 | border: 1px solid #ccc; 5 | border-top: 0; 6 | background: #fff; 7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1); 8 | 9 | /* core styles should not be changed */ 10 | position: absolute; 11 | display: none; 12 | z-index: 9999; 13 | max-height: 254px; 14 | overflow: hidden; 15 | overflow-y: auto; 16 | box-sizing: border-box; 17 | 18 | } 19 | .autocomplete-suggestion { 20 | position: relative; 21 | cursor: pointer; 22 | padding: 7px; 23 | line-height: 23px; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | color: #333; 28 | } 29 | 30 | .autocomplete-suggestion b { 31 | font-weight: normal; 32 | color: #1f8dd6; 33 | } 34 | 35 | .autocomplete-suggestion.selected { 36 | background: #333; 37 | color: #fff; 38 | } 39 | 40 | .autocomplete-suggestion:hover { 41 | background: #444; 42 | color: #fff; 43 | } 44 | 45 | .autocomplete-suggestion > .context { 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /docs/css/featherlight.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Featherlight - ultra slim jQuery lightbox 3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/ 4 | * 5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) 6 | * MIT Licensed. 7 | **/ 8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} -------------------------------------------------------------------------------- /docs/css/hugo-theme.css: -------------------------------------------------------------------------------- 1 | /* Insert here special css for hugo theme, on top of any other imported css */ 2 | 3 | 4 | /* Table of contents */ 5 | 6 | .progress ul { 7 | list-style: none; 8 | margin: 0; 9 | padding: 0 5px; 10 | } 11 | 12 | #TableOfContents { 13 | font-size: 13px !important; 14 | max-height: 85vh; 15 | overflow: auto; 16 | padding: 15px !important; 17 | } 18 | 19 | 20 | #TableOfContents > ul > li > ul > li > ul li { 21 | margin-right: 8px; 22 | } 23 | 24 | #TableOfContents > ul > li > a { 25 | font-weight: bold; padding: 0 18px; margin: 0 2px; 26 | } 27 | 28 | #TableOfContents > ul > li > ul > li > a { 29 | font-weight: bold; 30 | } 31 | 32 | #TableOfContents > ul > li > ul > li > ul > li > ul > li > ul > li { 33 | display: none; 34 | } 35 | 36 | body { 37 | font-size: 16px !important; 38 | color: #323232 !important; 39 | } 40 | 41 | #body a.highlight, #body a.highlight:hover, #body a.highlight:focus { 42 | text-decoration: none; 43 | outline: none; 44 | outline: 0; 45 | } 46 | #body a.highlight { 47 | line-height: 1.1; 48 | display: inline-block; 49 | } 50 | #body a.highlight:after { 51 | display: block; 52 | content: ""; 53 | height: 1px; 54 | width: 0%; 55 | background-color: #0082a7; /*#CE3B2F*/ 56 | -webkit-transition: width 0.5s ease; 57 | -moz-transition: width 0.5s ease; 58 | -ms-transition: width 0.5s ease; 59 | transition: width 0.5s ease; 60 | } 61 | #body a.highlight:hover:after, #body a.highlight:focus:after { 62 | width: 100%; 63 | } 64 | .progress { 65 | position:absolute; 66 | background-color: rgba(246, 246, 246, 0.97); 67 | width: auto; 68 | border: thin solid #ECECEC; 69 | display:none; 70 | z-index:200; 71 | } 72 | 73 | #toc-menu { 74 | border-right: thin solid #DAD8D8 !important; 75 | padding-right: 1rem !important; 76 | margin-right: 0.5rem !important; 77 | } 78 | 79 | #sidebar-toggle-span { 80 | border-right: thin solid #DAD8D8 !important; 81 | padding-right: 0.5rem !important; 82 | margin-right: 1rem !important; 83 | } 84 | 85 | .btn { 86 | display: inline-block !important; 87 | padding: 6px 12px !important; 88 | margin-bottom: 0 !important; 89 | font-size: 14px !important; 90 | font-weight: normal !important; 91 | line-height: 1.42857143 !important; 92 | text-align: center !important; 93 | white-space: nowrap !important; 94 | vertical-align: middle !important; 95 | -ms-touch-action: manipulation !important; 96 | touch-action: manipulation !important; 97 | cursor: pointer !important; 98 | -webkit-user-select: none !important; 99 | -moz-user-select: none !important; 100 | -ms-user-select: none !important; 101 | user-select: none !important; 102 | background-image: none !important; 103 | border: 1px solid transparent !important; 104 | border-radius: 4px !important; 105 | -webkit-transition: all 0.15s !important; 106 | -moz-transition: all 0.15s !important; 107 | transition: all 0.15s !important; 108 | } 109 | .btn:focus { 110 | /*outline: thin dotted; 111 | outline: 5px auto -webkit-focus-ring-color; 112 | outline-offset: -2px;*/ 113 | outline: none !important; 114 | } 115 | .btn:hover, 116 | .btn:focus { 117 | color: #2b2b2b !important; 118 | text-decoration: none !important; 119 | } 120 | 121 | .btn-default { 122 | color: #333 !important; 123 | background-color: #fff !important; 124 | border-color: #ccc !important; 125 | } 126 | .btn-default:hover, 127 | .btn-default:focus, 128 | .btn-default:active { 129 | color: #fff !important; 130 | background-color: #9e9e9e !important; 131 | border-color: #9e9e9e !important; 132 | } 133 | .btn-default:active { 134 | background-image: none !important; 135 | } 136 | 137 | /* anchors */ 138 | .anchor { 139 | color: #00bdf3; 140 | font-size: 0.5em; 141 | cursor:pointer; 142 | visibility:hidden; 143 | margin-left: 0.5em; 144 | position: absolute; 145 | margin-top:0.1em; 146 | } 147 | 148 | h2:hover .anchor, h3:hover .anchor, h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { 149 | visibility:visible; 150 | } 151 | 152 | /* Redfines headers style */ 153 | 154 | h2, h3, h4, h5, h6 { 155 | font-weight: 400; 156 | line-height: 1.1; 157 | } 158 | 159 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { 160 | font-weight: inherit; 161 | } 162 | 163 | h2 { 164 | font-size: 2.5rem; 165 | line-height: 110% !important; 166 | margin: 2.5rem 0 1.5rem 0; 167 | } 168 | 169 | h3 { 170 | font-size: 2rem; 171 | line-height: 110% !important; 172 | margin: 2rem 0 1rem 0; 173 | } 174 | 175 | h4 { 176 | font-size: 1.5rem; 177 | line-height: 110% !important; 178 | margin: 1.5rem 0 0.75rem 0; 179 | } 180 | 181 | h5 { 182 | font-size: 1rem; 183 | line-height: 110% !important; 184 | margin: 1rem 0 0.2rem 0; 185 | } 186 | 187 | h6 { 188 | font-size: 0.5rem; 189 | line-height: 110% !important; 190 | margin: 0.5rem 0 0.2rem 0; 191 | } 192 | 193 | p { 194 | margin: 1rem 0; 195 | } 196 | 197 | figcaption h4 { 198 | font-weight: 300 !important; 199 | opacity: .85; 200 | font-size: 1em; 201 | text-align: center; 202 | margin-top: -1.5em; 203 | } 204 | 205 | .select-style { 206 | border: 0; 207 | width: 150px; 208 | border-radius: 0px; 209 | overflow: hidden; 210 | display: inline-flex; 211 | } 212 | 213 | .select-style svg { 214 | fill: #ccc; 215 | width: 14px; 216 | height: 14px; 217 | pointer-events: none; 218 | margin: auto; 219 | } 220 | 221 | .select-style svg:hover { 222 | fill: #e6e6e6; 223 | } 224 | 225 | .select-style select { 226 | padding: 0; 227 | width: 130%; 228 | border: none; 229 | box-shadow: none; 230 | background: transparent; 231 | background-image: none; 232 | -webkit-appearance: none; 233 | margin: auto; 234 | margin-left: 0px; 235 | margin-right: -20px; 236 | } 237 | 238 | .select-style select:focus { 239 | outline: none; 240 | } 241 | 242 | .select-style :hover { 243 | cursor: pointer; 244 | } 245 | 246 | @media only all and (max-width: 47.938em) { 247 | #breadcrumbs .links, #top-github-link-text { 248 | display: none; 249 | } 250 | } 251 | 252 | .is-sticky #top-bar { 253 | box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.1); 254 | } -------------------------------------------------------------------------------- /docs/css/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /docs/css/perfect-scrollbar.min.css: -------------------------------------------------------------------------------- 1 | /* perfect-scrollbar v0.6.13 */ 2 | .ps-container{-ms-touch-action:auto;touch-action:auto;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:0px;height:15px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;bottom:2px;height:6px}.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x,.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x{height:11px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:0;width:15px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;right:2px;width:6px}.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y,.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y{width:11px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} 3 | -------------------------------------------------------------------------------- /docs/css/tags.css: -------------------------------------------------------------------------------- 1 | /* Tags */ 2 | 3 | #head-tags{ 4 | margin-left:1em; 5 | margin-top:1em; 6 | } 7 | 8 | #body .tags a.tag-link { 9 | display: inline-block; 10 | line-height: 2em; 11 | font-size: 0.8em; 12 | position: relative; 13 | margin: 0 16px 8px 0; 14 | padding: 0 10px 0 12px; 15 | background: #8451a1; 16 | 17 | -webkit-border-bottom-right-radius: 3px; 18 | border-bottom-right-radius: 3px; 19 | -webkit-border-top-right-radius: 3px; 20 | border-top-right-radius: 3px; 21 | 22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); 23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2); 24 | color: #fff; 25 | } 26 | 27 | #body .tags a.tag-link:before { 28 | content: ""; 29 | position: absolute; 30 | top:0; 31 | left: -1em; 32 | width: 0; 33 | height: 0; 34 | border-color: transparent #8451a1 transparent transparent; 35 | border-style: solid; 36 | border-width: 1em 1em 1em 0; 37 | } 38 | 39 | #body .tags a.tag-link:after { 40 | content: ""; 41 | position: absolute; 42 | top: 10px; 43 | left: 1px; 44 | width: 5px; 45 | height: 5px; 46 | -webkit-border-radius: 50%; 47 | border-radius: 100%; 48 | background: #fff; 49 | } 50 | -------------------------------------------------------------------------------- /docs/css/theme-blue.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#1C90F3; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#167ad0; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #1C90F3; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#1C90F3; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#33a1ff; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#167ad0; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #33a1ff; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #a1d2fd; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#20272b; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#252c31; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #33a1ff; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #20272b; /* Color of
separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /docs/css/theme-green.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#599a3e; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#3f6d2c; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #599a3e; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#74b559; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#9cd484; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#599a3e; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #84c767; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #c7f7c4; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#1b211c; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#222723; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #599a3e; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #18211c; /* Color of
separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /docs/css/theme-red.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#f31c1c; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#d01616; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #f31c1c; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #ccc; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #e6e6e6; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#dc1010; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#e23131; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#b90000; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #ef2020; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #fda1a1; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#2b2020; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#312525; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #ff3333; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #2b2020; /* Color of
separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /docs/faq/index.xml: -------------------------------------------------------------------------------- 1 | Frequently asked questions (FAQ) on The AWS Integration & Automation team's best practices for Terraformhttps://aws-ia.github.io/standards-terraform/faq/Recent content in Frequently asked questions (FAQ) on The AWS Integration & Automation team's best practices for TerraformHugo -- gohugo.ioen-us, Amazon Web Services, Inc. or its affiliates. All rights reserved.Wed, 12 Jan 2022 00:00:00 +0000 -------------------------------------------------------------------------------- /docs/fonts/Inconsolata.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Inconsolata.eot -------------------------------------------------------------------------------- /docs/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /docs/fonts/Inconsolata.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Inconsolata.woff -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-Normal-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-Normal-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-Normal-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-Normal-webfont.ttf -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-Normal-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-Normal-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-Normal-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-Normal-webfont.woff2 -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-UltraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-UltraLight-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-UltraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-UltraLight-webfont.ttf -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-UltraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-UltraLight-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/Novecentosanswide-UltraLight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Novecentosanswide-UltraLight-webfont.woff2 -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_200.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_200.eot -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_200.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_200.ttf -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_200.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_200.woff -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_200.woff2 -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_300.eot -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_300.ttf -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_300.woff -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_300.woff2 -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_500.eot -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_500.ttf -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_500.woff -------------------------------------------------------------------------------- /docs/fonts/Work_Sans_500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/fonts/Work_Sans_500.woff2 -------------------------------------------------------------------------------- /docs/images/clippy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/docs/images/logo.png -------------------------------------------------------------------------------- /docs/index.xml: -------------------------------------------------------------------------------- 1 | The AWS Integration & Automation team's best practices for Terraformhttps://aws-ia.github.io/standards-terraform/Recent content on The AWS Integration & Automation team's best practices for TerraformHugo -- gohugo.ioen-us, Amazon Web Services, Inc. or its affiliates. All rights reserved.Tue, 15 Feb 2022 00:00:00 +0000 -------------------------------------------------------------------------------- /docs/js/auto-complete.js: -------------------------------------------------------------------------------- 1 | // JavaScript autoComplete v1.0.4 2 | // https://github.com/Pixabay/JavaScript-autoComplete 3 | var autoComplete=function(){function e(e){function t(e,t){return e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className)}function o(e,t,o){e.attachEvent?e.attachEvent("on"+t,o):e.addEventListener(t,o)}function s(e,t,o){e.detachEvent?e.detachEvent("on"+t,o):e.removeEventListener(t,o)}function n(e,s,n,l){o(l||document,s,function(o){for(var s,l=o.target||o.srcElement;l&&!(s=t(l,e));)l=l.parentElement;s&&n.call(l,o)})}if(document.querySelector){var l={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:"",renderItem:function(e,t){t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var o=new RegExp("("+t.split(" ").join("|")+")","gi");return'
'+e.replace(o,"$1")+"
"},onSelect:function(){}};for(var c in e)e.hasOwnProperty(c)&&(l[c]=e[c]);for(var a="object"==typeof l.selector?[l.selector]:document.querySelectorAll(l.selector),u=0;u0?i.sc.scrollTop=n+i.sc.suggestionHeight+s-i.sc.maxHeight:0>n&&(i.sc.scrollTop=n+s)}else i.sc.scrollTop=0},o(window,"resize",i.updateSC),document.body.appendChild(i.sc),n("autocomplete-suggestion","mouseleave",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&setTimeout(function(){e.className=e.className.replace("selected","")},20)},i.sc),n("autocomplete-suggestion","mouseover",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&(e.className=e.className.replace("selected","")),this.className+=" selected"},i.sc),n("autocomplete-suggestion","mousedown",function(e){if(t(this,"autocomplete-suggestion")){var o=this.getAttribute("data-val");i.value=o,l.onSelect(e,o,this),i.sc.style.display="none"}},i.sc),i.blurHandler=function(){try{var e=document.querySelector(".autocomplete-suggestions:hover")}catch(t){var e=0}e?i!==document.activeElement&&setTimeout(function(){i.focus()},20):(i.last_val=i.value,i.sc.style.display="none",setTimeout(function(){i.sc.style.display="none"},350))},o(i,"blur",i.blurHandler);var r=function(e){var t=i.value;if(i.cache[t]=e,e.length&&t.length>=l.minChars){for(var o="",s=0;st||t>40)&&13!=t&&27!=t){var o=i.value;if(o.length>=l.minChars){if(o!=i.last_val){if(i.last_val=o,clearTimeout(i.timer),l.cache){if(o in i.cache)return void r(i.cache[o]);for(var s=1;s",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); 5 | -------------------------------------------------------------------------------- /docs/js/hugo-learn.js: -------------------------------------------------------------------------------- 1 | // Get Parameters from some url 2 | var getUrlParameter = function getUrlParameter(sPageURL) { 3 | var url = sPageURL.split('?'); 4 | var obj = {}; 5 | if (url.length == 2) { 6 | var sURLVariables = url[1].split('&'), 7 | sParameterName, 8 | i; 9 | for (i = 0; i < sURLVariables.length; i++) { 10 | sParameterName = sURLVariables[i].split('='); 11 | obj[sParameterName[0]] = sParameterName[1]; 12 | } 13 | } 14 | return obj; 15 | }; 16 | 17 | // Execute actions on images generated from Markdown pages 18 | var images = $("div#body-inner img").not(".inline"); 19 | // Wrap image inside a featherlight (to get a full size view in a popup) 20 | images.wrap(function(){ 21 | var image =$(this); 22 | var o = getUrlParameter(image[0].src); 23 | var f = o['featherlight']; 24 | // IF featherlight is false, do not use feather light 25 | if (f != 'false') { 26 | if (!image.parent("a").length) { 27 | return ""; 28 | } 29 | } 30 | }); 31 | 32 | // Change styles, depending on parameters set to the image 33 | images.each(function(index){ 34 | var image = $(this) 35 | var o = getUrlParameter(image[0].src); 36 | if (typeof o !== "undefined") { 37 | var h = o["height"]; 38 | var w = o["width"]; 39 | var c = o["classes"]; 40 | image.css("width", function() { 41 | if (typeof w !== "undefined") { 42 | return w; 43 | } else { 44 | return "auto"; 45 | } 46 | }); 47 | image.css("height", function() { 48 | if (typeof h !== "undefined") { 49 | return h; 50 | } else { 51 | return "auto"; 52 | } 53 | }); 54 | if (typeof c !== "undefined") { 55 | var classes = c.split(','); 56 | for (i = 0; i < classes.length; i++) { 57 | image.addClass(classes[i]); 58 | } 59 | } 60 | } 61 | }); 62 | 63 | // Stick the top to the top of the screen when scrolling 64 | $(document).ready(function(){ 65 | $("#top-bar").sticky({topSpacing:0, zIndex: 1000}); 66 | }); 67 | 68 | 69 | jQuery(document).ready(function() { 70 | // Add link button for every 71 | var text, clip = new ClipboardJS('.anchor'); 72 | $("h1~h2,h1~h3,h1~h4,h1~h5,h1~h6").append(function(index, html){ 73 | var element = $(this); 74 | var url = encodeURI(document.location.origin + document.location.pathname); 75 | var link = url + "#"+element[0].id; 76 | return " " + 77 | "" + 78 | "" 79 | ; 80 | }); 81 | 82 | $(".anchor").on('mouseleave', function(e) { 83 | $(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w'); 84 | }); 85 | 86 | clip.on('success', function(e) { 87 | e.clearSelection(); 88 | $(e.trigger).attr('aria-label', 'Link copied to clipboard!').addClass('tooltipped tooltipped-s'); 89 | }); 90 | $('code.language-mermaid').each(function(index, element) { 91 | var content = $(element).html().replace(/&/g, '&'); 92 | $(element).parent().replaceWith('
' + content + '
'); 93 | }); 94 | }); 95 | -------------------------------------------------------------------------------- /docs/js/search.js: -------------------------------------------------------------------------------- 1 | var lunrIndex, pagesIndex; 2 | 3 | function endsWith(str, suffix) { 4 | return str.indexOf(suffix, str.length - suffix.length) !== -1; 5 | } 6 | 7 | // Initialize lunrjs using our generated index file 8 | function initLunr() { 9 | if (!endsWith(baseurl,"/")){ 10 | baseurl = baseurl+'/' 11 | }; 12 | 13 | // First retrieve the index file 14 | $.getJSON(baseurl +"index.json") 15 | .done(function(index) { 16 | pagesIndex = index; 17 | // Set up lunrjs by declaring the fields we use 18 | // Also provide their boost level for the ranking 19 | lunrIndex = lunr(function() { 20 | this.ref("uri"); 21 | this.field('title', { 22 | boost: 15 23 | }); 24 | this.field('tags', { 25 | boost: 10 26 | }); 27 | this.field("content", { 28 | boost: 5 29 | }); 30 | 31 | this.pipeline.remove(lunr.stemmer); 32 | this.searchPipeline.remove(lunr.stemmer); 33 | 34 | // Feed lunr with each file and let lunr actually index them 35 | pagesIndex.forEach(function(page) { 36 | this.add(page); 37 | }, this); 38 | }) 39 | }) 40 | .fail(function(jqxhr, textStatus, error) { 41 | var err = textStatus + ", " + error; 42 | console.error("Error getting Hugo index file:", err); 43 | }); 44 | } 45 | 46 | /** 47 | * Trigger a search in lunr and transform the result 48 | * 49 | * @param {String} query 50 | * @return {Array} results 51 | */ 52 | function search(queryTerm) { 53 | // Find the item in our index corresponding to the lunr one to have more info 54 | return lunrIndex.search(queryTerm+"^100"+" "+queryTerm+"*^10"+" "+"*"+queryTerm+"^10"+" "+queryTerm+"~2^1").map(function(result) { 55 | return pagesIndex.filter(function(page) { 56 | return page.uri === result.ref; 57 | })[0]; 58 | }); 59 | } 60 | 61 | // Let's get started 62 | initLunr(); 63 | $( document ).ready(function() { 64 | var searchList = new autoComplete({ 65 | /* selector for the search box element */ 66 | selector: $("#search-by").get(0), 67 | /* source is the callback to perform the search */ 68 | source: function(term, response) { 69 | response(search(term)); 70 | }, 71 | /* renderItem displays individual search results */ 72 | renderItem: function(item, term) { 73 | var numContextWords = 2; 74 | var text = item.content.match( 75 | "(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}" + 76 | term+"(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}"); 77 | item.context = text; 78 | return '
' + 83 | '» ' + item.title + 84 | '
' + 85 | (item.context || '') +'
' + 86 | '
'; 87 | }, 88 | /* onSelect callback fires when a search suggestion is chosen */ 89 | onSelect: function(e, term, item) { 90 | location.href = item.getAttribute('data-uri'); 91 | } 92 | }); 93 | }); 94 | -------------------------------------------------------------------------------- /docs/mermaid/mermaid.css: -------------------------------------------------------------------------------- 1 | /* Flowchart variables */ 2 | /* Sequence Diagram variables */ 3 | /* Gantt chart variables */ 4 | .mermaid .label { 5 | color: #333; 6 | } 7 | .node rect, 8 | .node circle, 9 | .node ellipse, 10 | .node polygon { 11 | fill: #ECECFF; 12 | stroke: #CCCCFF; 13 | stroke-width: 1px; 14 | } 15 | .edgePath .path { 16 | stroke: #333333; 17 | } 18 | .edgeLabel { 19 | background-color: #e8e8e8; 20 | } 21 | .cluster rect { 22 | fill: #ffffde !important; 23 | rx: 4 !important; 24 | stroke: #aaaa33 !important; 25 | stroke-width: 1px !important; 26 | } 27 | .cluster text { 28 | fill: #333; 29 | } 30 | .actor { 31 | stroke: #CCCCFF; 32 | fill: #ECECFF; 33 | } 34 | text.actor { 35 | fill: black; 36 | stroke: none; 37 | } 38 | .actor-line { 39 | stroke: grey; 40 | } 41 | .messageLine0 { 42 | stroke-width: 1.5; 43 | stroke-dasharray: "2 2"; 44 | marker-end: "url(#arrowhead)"; 45 | stroke: #333; 46 | } 47 | .messageLine1 { 48 | stroke-width: 1.5; 49 | stroke-dasharray: "2 2"; 50 | stroke: #333; 51 | } 52 | #arrowhead { 53 | fill: #333; 54 | } 55 | #crosshead path { 56 | fill: #333 !important; 57 | stroke: #333 !important; 58 | } 59 | .messageText { 60 | fill: #333; 61 | stroke: none; 62 | } 63 | .labelBox { 64 | stroke: #CCCCFF; 65 | fill: #ECECFF; 66 | } 67 | .labelText { 68 | fill: black; 69 | stroke: none; 70 | } 71 | .loopText { 72 | fill: black; 73 | stroke: none; 74 | } 75 | .loopLine { 76 | stroke-width: 2; 77 | stroke-dasharray: "2 2"; 78 | marker-end: "url(#arrowhead)"; 79 | stroke: #CCCCFF; 80 | } 81 | .note { 82 | stroke: #aaaa33; 83 | fill: #fff5ad; 84 | } 85 | .noteText { 86 | fill: black; 87 | stroke: none; 88 | font-family: 'trebuchet ms', verdana, arial; 89 | font-size: 14px; 90 | } 91 | /** Section styling */ 92 | .section { 93 | stroke: none; 94 | opacity: 0.2; 95 | } 96 | .section0 { 97 | fill: rgba(102, 102, 255, 0.49); 98 | } 99 | .section2 { 100 | fill: #fff400; 101 | } 102 | .section1, 103 | .section3 { 104 | fill: white; 105 | opacity: 0.2; 106 | } 107 | .sectionTitle0 { 108 | fill: #333; 109 | } 110 | .sectionTitle1 { 111 | fill: #333; 112 | } 113 | .sectionTitle2 { 114 | fill: #333; 115 | } 116 | .sectionTitle3 { 117 | fill: #333; 118 | } 119 | .sectionTitle { 120 | text-anchor: start; 121 | font-size: 11px; 122 | text-height: 14px; 123 | } 124 | /* Grid and axis */ 125 | .grid .tick { 126 | stroke: lightgrey; 127 | opacity: 0.3; 128 | shape-rendering: crispEdges; 129 | } 130 | .grid path { 131 | stroke-width: 0; 132 | } 133 | /* Today line */ 134 | .today { 135 | fill: none; 136 | stroke: red; 137 | stroke-width: 2px; 138 | } 139 | /* Task styling */ 140 | /* Default task */ 141 | .task { 142 | stroke-width: 2; 143 | } 144 | .taskText { 145 | text-anchor: middle; 146 | font-size: 11px; 147 | } 148 | .taskTextOutsideRight { 149 | fill: black; 150 | text-anchor: start; 151 | font-size: 11px; 152 | } 153 | .taskTextOutsideLeft { 154 | fill: black; 155 | text-anchor: end; 156 | font-size: 11px; 157 | } 158 | /* Specific task settings for the sections*/ 159 | .taskText0, 160 | .taskText1, 161 | .taskText2, 162 | .taskText3 { 163 | fill: white; 164 | } 165 | .task0, 166 | .task1, 167 | .task2, 168 | .task3 { 169 | fill: #8a90dd; 170 | stroke: #534fbc; 171 | } 172 | .taskTextOutside0, 173 | .taskTextOutside2 { 174 | fill: black; 175 | } 176 | .taskTextOutside1, 177 | .taskTextOutside3 { 178 | fill: black; 179 | } 180 | /* Active task */ 181 | .active0, 182 | .active1, 183 | .active2, 184 | .active3 { 185 | fill: #bfc7ff; 186 | stroke: #534fbc; 187 | } 188 | .activeText0, 189 | .activeText1, 190 | .activeText2, 191 | .activeText3 { 192 | fill: black !important; 193 | } 194 | /* Completed task */ 195 | .done0, 196 | .done1, 197 | .done2, 198 | .done3 { 199 | stroke: grey; 200 | fill: lightgrey; 201 | stroke-width: 2; 202 | } 203 | .doneText0, 204 | .doneText1, 205 | .doneText2, 206 | .doneText3 { 207 | fill: black !important; 208 | } 209 | /* Tasks on the critical line */ 210 | .crit0, 211 | .crit1, 212 | .crit2, 213 | .crit3 { 214 | stroke: #ff8888; 215 | fill: red; 216 | stroke-width: 2; 217 | } 218 | .activeCrit0, 219 | .activeCrit1, 220 | .activeCrit2, 221 | .activeCrit3 { 222 | stroke: #ff8888; 223 | fill: #bfc7ff; 224 | stroke-width: 2; 225 | } 226 | .doneCrit0, 227 | .doneCrit1, 228 | .doneCrit2, 229 | .doneCrit3 { 230 | stroke: #ff8888; 231 | fill: lightgrey; 232 | stroke-width: 2; 233 | cursor: pointer; 234 | shape-rendering: crispEdges; 235 | } 236 | .doneCritText0, 237 | .doneCritText1, 238 | .doneCritText2, 239 | .doneCritText3 { 240 | fill: black !important; 241 | } 242 | .activeCritText0, 243 | .activeCritText1, 244 | .activeCritText2, 245 | .activeCritText3 { 246 | fill: black !important; 247 | } 248 | .titleText { 249 | text-anchor: middle; 250 | font-size: 18px; 251 | fill: black; 252 | } 253 | /* 254 | 255 | 256 | */ 257 | .node text { 258 | font-family: 'trebuchet ms', verdana, arial; 259 | font-size: 14px; 260 | } 261 | .node.clickable { 262 | cursor: pointer; 263 | } 264 | div.mermaidTooltip { 265 | position: absolute; 266 | text-align: center; 267 | max-width: 200px; 268 | padding: 2px; 269 | font-family: 'trebuchet ms', verdana, arial; 270 | font-size: 12px; 271 | background: #ffffde; 272 | border: 1px solid #aaaa33; 273 | border-radius: 2px; 274 | pointer-events: none; 275 | z-index: 100; 276 | } 277 | 278 | -------------------------------------------------------------------------------- /docs/mermaid/mermaid.dark.css: -------------------------------------------------------------------------------- 1 | /* Flowchart variables */ 2 | /* Sequence Diagram variables */ 3 | /* Gantt chart variables */ 4 | .mermaid .label { 5 | color: #323D47; 6 | } 7 | .node rect, 8 | .node circle, 9 | .node ellipse, 10 | .node polygon { 11 | fill: #BDD5EA; 12 | stroke: #81B1DB; 13 | stroke-width: 1px; 14 | } 15 | .edgePath .path { 16 | stroke: lightgrey; 17 | } 18 | .edgeLabel { 19 | background-color: #e8e8e8; 20 | } 21 | .cluster rect { 22 | fill: #6D6D65 !important; 23 | rx: 4 !important; 24 | stroke: rgba(255, 255, 255, 0.25) !important; 25 | stroke-width: 1px !important; 26 | } 27 | .cluster text { 28 | fill: #F9FFFE; 29 | } 30 | .actor { 31 | stroke: #81B1DB; 32 | fill: #BDD5EA; 33 | } 34 | text.actor { 35 | fill: black; 36 | stroke: none; 37 | } 38 | .actor-line { 39 | stroke: lightgrey; 40 | } 41 | .messageLine0 { 42 | stroke-width: 1.5; 43 | stroke-dasharray: "2 2"; 44 | marker-end: "url(#arrowhead)"; 45 | stroke: lightgrey; 46 | } 47 | .messageLine1 { 48 | stroke-width: 1.5; 49 | stroke-dasharray: "2 2"; 50 | stroke: lightgrey; 51 | } 52 | #arrowhead { 53 | fill: lightgrey !important; 54 | } 55 | #crosshead path { 56 | fill: lightgrey !important; 57 | stroke: lightgrey !important; 58 | } 59 | .messageText { 60 | fill: lightgrey; 61 | stroke: none; 62 | } 63 | .labelBox { 64 | stroke: #81B1DB; 65 | fill: #BDD5EA; 66 | } 67 | .labelText { 68 | fill: #323D47; 69 | stroke: none; 70 | } 71 | .loopText { 72 | fill: lightgrey; 73 | stroke: none; 74 | } 75 | .loopLine { 76 | stroke-width: 2; 77 | stroke-dasharray: "2 2"; 78 | marker-end: "url(#arrowhead)"; 79 | stroke: #81B1DB; 80 | } 81 | .note { 82 | stroke: rgba(255, 255, 255, 0.25); 83 | fill: #fff5ad; 84 | } 85 | .noteText { 86 | fill: black; 87 | stroke: none; 88 | font-family: 'trebuchet ms', verdana, arial; 89 | font-size: 14px; 90 | } 91 | /** Section styling */ 92 | .section { 93 | stroke: none; 94 | opacity: 0.2; 95 | } 96 | .section0 { 97 | fill: rgba(255, 255, 255, 0.3); 98 | } 99 | .section2 { 100 | fill: #EAE8B9; 101 | } 102 | .section1, 103 | .section3 { 104 | fill: white; 105 | opacity: 0.2; 106 | } 107 | .sectionTitle0 { 108 | fill: #F9FFFE; 109 | } 110 | .sectionTitle1 { 111 | fill: #F9FFFE; 112 | } 113 | .sectionTitle2 { 114 | fill: #F9FFFE; 115 | } 116 | .sectionTitle3 { 117 | fill: #F9FFFE; 118 | } 119 | .sectionTitle { 120 | text-anchor: start; 121 | font-size: 11px; 122 | text-height: 14px; 123 | } 124 | /* Grid and axis */ 125 | .grid .tick { 126 | stroke: rgba(255, 255, 255, 0.3); 127 | opacity: 0.3; 128 | shape-rendering: crispEdges; 129 | } 130 | .grid .tick text { 131 | fill: lightgrey; 132 | opacity: 0.5; 133 | } 134 | .grid path { 135 | stroke-width: 0; 136 | } 137 | /* Today line */ 138 | .today { 139 | fill: none; 140 | stroke: #DB5757; 141 | stroke-width: 2px; 142 | } 143 | /* Task styling */ 144 | /* Default task */ 145 | .task { 146 | stroke-width: 1; 147 | } 148 | .taskText { 149 | text-anchor: middle; 150 | font-size: 11px; 151 | } 152 | .taskTextOutsideRight { 153 | fill: #323D47; 154 | text-anchor: start; 155 | font-size: 11px; 156 | } 157 | .taskTextOutsideLeft { 158 | fill: #323D47; 159 | text-anchor: end; 160 | font-size: 11px; 161 | } 162 | /* Specific task settings for the sections*/ 163 | .taskText0, 164 | .taskText1, 165 | .taskText2, 166 | .taskText3 { 167 | fill: #323D47; 168 | } 169 | .task0, 170 | .task1, 171 | .task2, 172 | .task3 { 173 | fill: #BDD5EA; 174 | stroke: rgba(255, 255, 255, 0.5); 175 | } 176 | .taskTextOutside0, 177 | .taskTextOutside2 { 178 | fill: lightgrey; 179 | } 180 | .taskTextOutside1, 181 | .taskTextOutside3 { 182 | fill: lightgrey; 183 | } 184 | /* Active task */ 185 | .active0, 186 | .active1, 187 | .active2, 188 | .active3 { 189 | fill: #81B1DB; 190 | stroke: rgba(255, 255, 255, 0.5); 191 | } 192 | .activeText0, 193 | .activeText1, 194 | .activeText2, 195 | .activeText3 { 196 | fill: #323D47 !important; 197 | } 198 | /* Completed task */ 199 | .done0, 200 | .done1, 201 | .done2, 202 | .done3 { 203 | fill: lightgrey; 204 | } 205 | .doneText0, 206 | .doneText1, 207 | .doneText2, 208 | .doneText3 { 209 | fill: #323D47 !important; 210 | } 211 | /* Tasks on the critical line */ 212 | .crit0, 213 | .crit1, 214 | .crit2, 215 | .crit3 { 216 | stroke: #E83737; 217 | fill: #E83737; 218 | stroke-width: 2; 219 | } 220 | .activeCrit0, 221 | .activeCrit1, 222 | .activeCrit2, 223 | .activeCrit3 { 224 | stroke: #E83737; 225 | fill: #81B1DB; 226 | stroke-width: 2; 227 | } 228 | .doneCrit0, 229 | .doneCrit1, 230 | .doneCrit2, 231 | .doneCrit3 { 232 | stroke: #E83737; 233 | fill: lightgrey; 234 | stroke-width: 1; 235 | cursor: pointer; 236 | shape-rendering: crispEdges; 237 | } 238 | .doneCritText0, 239 | .doneCritText1, 240 | .doneCritText2, 241 | .doneCritText3 { 242 | fill: lightgrey !important; 243 | } 244 | .activeCritText0, 245 | .activeCritText1, 246 | .activeCritText2, 247 | .activeCritText3 { 248 | fill: #323D47 !important; 249 | } 250 | .titleText { 251 | text-anchor: middle; 252 | font-size: 18px; 253 | fill: lightgrey; 254 | } 255 | /* 256 | 257 | 258 | */ 259 | .node text { 260 | font-family: 'trebuchet ms', verdana, arial; 261 | font-size: 14px; 262 | } 263 | .node.clickable { 264 | cursor: pointer; 265 | } 266 | div.mermaidTooltip { 267 | position: absolute; 268 | text-align: center; 269 | max-width: 200px; 270 | padding: 2px; 271 | font-family: 'trebuchet ms', verdana, arial; 272 | font-size: 12px; 273 | background: #6D6D65; 274 | border: 1px solid rgba(255, 255, 255, 0.25); 275 | border-radius: 2px; 276 | pointer-events: none; 277 | z-index: 100; 278 | } 279 | -------------------------------------------------------------------------------- /docs/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | 3 | Allow: / 4 | Sitemap: https://aws-ia.github.io/standards-terraform/sitemap.xml 5 | 6 | -------------------------------------------------------------------------------- /docs/sitemap.xml: -------------------------------------------------------------------------------- 1 | https://aws-ia.github.io/standards-terraform/2022-07-07T14:33:35-04:00https://aws-ia.github.io/standards-terraform/faq/2022-05-20T10:05:41-05:00https://aws-ia.github.io/standards-terraform/administrative/2022-05-20T10:01:03-05:00https://aws-ia.github.io/standards-terraform/categories/https://aws-ia.github.io/standards-terraform/tags/ -------------------------------------------------------------------------------- /docs/tags/index.html: -------------------------------------------------------------------------------- 1 | Tags :: The AWS Integration & Automation team's best practices for Terraform
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/tags/index.xml: -------------------------------------------------------------------------------- 1 | Tags on The AWS Integration & Automation team's best practices for Terraformhttps://aws-ia.github.io/standards-terraform/tags/Recent content in Tags on The AWS Integration & Automation team's best practices for TerraformHugo -- gohugo.ioen-us, Amazon Web Services, Inc. or its affiliates. All rights reserved. -------------------------------------------------------------------------------- /layouts/_default/_markup/render-link.html: -------------------------------------------------------------------------------- 1 | {{ .Text | safeHTML }} -------------------------------------------------------------------------------- /layouts/partials/favicon.html: -------------------------------------------------------------------------------- 1 | {{ $logo_path := "" }} 2 | {{ with .Site.Params.logoPath }} 3 | {{ with resources.Get . }} 4 | {{ $logo_path = .RelPermalink }} 5 | {{ end }} 6 | {{ else }} 7 | {{ with $.Resources.GetRemote $logo_path }} 8 | {{ end }} 9 | {{ end }} 10 | 11 | {{ with $logo_path }} 12 | 13 | 14 | {{ end }} 15 | -------------------------------------------------------------------------------- /layouts/partials/logo.html: -------------------------------------------------------------------------------- 1 | {{ $logo_path := "" }} 2 | {{ with .Site.Params.logoPath }} 3 | {{ with resources.Get . }} 4 | {{ $logo_path = .RelPermalink }} 5 | {{ end }} 6 | {{ end }} 7 | 8 | {{ with $logo_path }} 9 |
10 | 11 | 12 | 13 |
14 | {{ end }} 15 | -------------------------------------------------------------------------------- /layouts/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | {{ if eq hugo.Environment "production" }} 3 | Allow: / 4 | Sitemap: {{ .Site.BaseURL }}/sitemap.xml 5 | {{ else }} 6 | # robotstxt.org - if the build is not configured for production, robots will be disallowed. 7 | Disallow: / 8 | {{ end }} 9 | -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/static/.nojekyll -------------------------------------------------------------------------------- /themes/learn/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | trim_trailing_whitespace = true 11 | 12 | [*.js] 13 | insert_final_newline = true 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /themes/learn/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | public/ 3 | exampleSite/public 4 | -------------------------------------------------------------------------------- /themes/learn/.grenrc.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dataSource: "prs" 3 | prefix: "v" 4 | onlyMilestones: false 5 | changelogFilename: "CHANGELOG.md" 6 | includeMessages: "all" 7 | ignoreIssuesWith: 8 | - "support" 9 | ignoreLabels: 10 | - "duplicate" 11 | - "invalid" 12 | - "wontfix" 13 | groupBy: 14 | New features: 15 | - "feature" 16 | Bug Fixes: 17 | - "bug" 18 | Enhancements: 19 | - "enhancement" 20 | Internationalisation: 21 | - "i18n" 22 | Theme Meta: 23 | - "meta" 24 | Uncategorised: 25 | - "closed" 26 | -------------------------------------------------------------------------------- /themes/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/learn/README.md: -------------------------------------------------------------------------------- 1 | # Hugo Learn Theme 2 | 3 | This repository contains a theme for [Hugo](https://gohugo.io/), based on great [Grav Learn Theme](https://learn.getgrav.org/). 4 | 5 | Visit the [theme documentation](https://learn.netlify.com/en/) to see what is going on. It is actually built with this theme. 6 | 7 | [![wercker status](https://app.wercker.com/status/233466a2be73fcea400e7dc02ef6adf9/s/master "wercker status")](https://app.wercker.com/project/byKey/233466a2be73fcea400e7dc02ef6adf9) 8 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn?ref=badge_shield) 9 | 10 | ## Main features 11 | 12 | - Automatic Search 13 | - Multilingual mode 14 | - Unlimited menu levels 15 | - Automatic next/prev buttons to navigate through menu entries 16 | - Image resizing, shadow… 17 | - Attachments files 18 | - List child pages 19 | - Mermaid diagram (flowchart, sequence, gantt) 20 | - Customizable look and feel and themes variants 21 | - Buttons, Tip/Note/Info/Warning boxes, Expand 22 | 23 | ## Installation 24 | 25 | Navigate to your themes folder in your Hugo site and use the following commands: 26 | 27 | ```shell 28 | cd themes/ 29 | git clone https://github.com/matcornic/hugo-theme-learn.git 30 | ``` 31 | 32 | Check that your Hugo version is minimum `0.25` with `hugo version`. 33 | 34 | ![Overview](https://github.com/matcornic/hugo-theme-learn/raw/master/images/tn.png) 35 | 36 | ## Usage 37 | 38 | - [Visit the documentation](https://learn.netlify.com/en/) 39 | 40 | ## Download old versions (prior to 2.0.0) 41 | 42 | If you need old version for compatibility purpose, either download [theme source code from releases](https://github.com/matcornic/hugo-theme-learn/releases) or use the right git tag. For example, with `1.1.0` 43 | 44 | - Direct download way: https://github.com/matcornic/hugo-theme-learn/archive/1.1.0.zip 45 | - Git way: 46 | 47 | ```shell 48 | cd themes/hugo-theme-learn 49 | git checkout tags/1.1.0 50 | ``` 51 | 52 | For both solutions, the documentation is available at https://github.com/matcornic/hugo-theme-learn/releases/download/1.1.0/hugo-learn-doc-1.1.0.zip 53 | 54 | ## Credits 55 | 56 | Many thanks to [@vjeantet](https://github.com/vjeantet/) for the fork [docdock](https://github.com/vjeantet/hugo-theme-docdock). The v2 of this theme is mainly based on his work ! 57 | 58 | ## License 59 | 60 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn?ref=badge_large) 61 | 62 | ## Releasing 63 | 64 | Somewhat work-in-progress steps to release with [gren](https://github.com/github-tools/github-release-notes) 65 | 66 | - Check all MRs assigned to the milestone are closed or pushed back to another release 67 | - Close the milestone 68 | - Check merged MRs on the milestone have a tag (Bug, Enhancement, etc.) 69 | - Tag and push the repo 70 | 71 | ```shell 72 | git tag 73 | git push origin 74 | ``` 75 | 76 | - Generate CHANGELOG.md with _gren_ 77 | 78 | ```shell 79 | gren changelog --override --generate --tags=all 80 | ``` 81 | 82 | - Fix the date for the current release in CHANGELOG.md 83 | - Add the changelog to git and update the tag 84 | 85 | ```shell 86 | git add CHANGELOG.md 87 | git commit -m "Ship tag " 88 | git push origin master 89 | git tag -f 90 | git push --force origin 91 | ``` 92 | 93 | - Generate release with _gren_ 94 | 95 | ```shell 96 | gren release -t 97 | ``` 98 | -------------------------------------------------------------------------------- /themes/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. 14 | -------------------------------------------------------------------------------- /themes/learn/archetypes/default.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "{{ replace .Name "-" " " | title }}" 3 | date = {{ .Date }} 4 | weight = 5 5 | +++ 6 | 7 | Lorem Ipsum. 8 | -------------------------------------------------------------------------------- /themes/learn/i18n/ar.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "...البحث" 3 | 4 | [Clear-History] 5 | other = "مسح السجل" 6 | 7 | [Attachments-label] 8 | other = "مرفقات" 9 | 10 | [title-404] 11 | other = "خطأ" 12 | 13 | [message-404] 14 | other = ".¯\\_(ツ)_/¯أوبس. يبدو أن هذه الصفحة غير موجودة" 15 | 16 | [Go-to-homepage] 17 | other = "الذهاب إلى الصفحة الرئيسية" 18 | 19 | [Edit-this-page] 20 | other = "تعديل هذه الصفحة" 21 | 22 | [Shortcuts-Title] 23 | other = "المزيد" 24 | 25 | [Expand-title] 26 | other = "...قم بتوسيع" 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" -------------------------------------------------------------------------------- /themes/learn/i18n/de.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Suchen..." 3 | 4 | [Clear-History] 5 | other = "Verlauf löschen" 6 | 7 | [Attachments-label] 8 | other = "Anhänge" 9 | 10 | [title-404] 11 | other = "Fehler" 12 | 13 | [message-404] 14 | other = "Huch. Diese Seite scheint nicht zu existieren ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Gehe zur Homepage" 18 | 19 | [Edit-this-page] 20 | other = "Bearbeite diese Seite" 21 | 22 | [Shortcuts-Title] 23 | other = "Mehr" 24 | 25 | [Expand-title] 26 | other = "Erweitere mich..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" -------------------------------------------------------------------------------- /themes/learn/i18n/en.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Search..." 3 | 4 | [Clear-History] 5 | other = "Clear History" 6 | 7 | [Attachments-label] 8 | other = "Attachments" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Woops. Looks like this page doesn't exist ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Go to homepage" 18 | 19 | [Edit-this-page] 20 | other = "Edit this page" 21 | 22 | [Shortcuts-Title] 23 | other = "More" 24 | 25 | [Expand-title] 26 | other = "Expand me..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" -------------------------------------------------------------------------------- /themes/learn/i18n/es.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Buscar..." 3 | 4 | [Clear-History] 5 | other = "Borrar Historial" 6 | 7 | [Attachments-label] 8 | other = "Adjuntos" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Ups. Parece que la página no existe ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ir al inicio" 18 | 19 | [Edit-this-page] 20 | other = "Editar esta página" 21 | 22 | [Shortcuts-Title] 23 | other = "Más" 24 | 25 | [Expand-title] 26 | other = "Expandir..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/fr.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Rechercher..." 3 | 4 | [Clear-History] 5 | other = "Supprimer l'historique" 6 | 7 | [Attachments-label] 8 | other = "Pièces jointes" 9 | 10 | [title-404] 11 | other = "Erreur" 12 | 13 | [message-404] 14 | other = "Oups. On dirait que cette page n'existe pas ¯\\_(ツ)_/¯" 15 | 16 | [Go-to-homepage] 17 | other = "Vers la page d'accueil" 18 | 19 | [Edit-this-page] 20 | other = "Modifier la page" 21 | 22 | [Shortcuts-Title] 23 | other = "Aller plus loin" 24 | 25 | [Expand-title] 26 | other = "Déroulez-moi..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "ko" -------------------------------------------------------------------------------- /themes/learn/i18n/hi.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "खोजे..." 3 | 4 | [Clear-History] 5 | other = "इतिहास मिटाएँ" 6 | 7 | [Attachments-label] 8 | other = "संलग्नंक (अटैचमेंट)" 9 | 10 | [title-404] 11 | other = "त्रुटि" 12 | 13 | [message-404] 14 | other = "यह पृष्ठ अभि अनुपलब्ध है!" 15 | 16 | [Go-to-homepage] 17 | other = "मुख्य पृष्ठ पर जाऐ" 18 | 19 | [Edit-this-page] 20 | other = "यह पृष्ठ संपादित करें" 21 | 22 | [Shortcuts-Title] 23 | other = "अधिक सामग्री दिखाएं" 24 | 25 | [Expand-title] 26 | other = "विस्तार करे..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/id.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Telusuri..." 3 | 4 | [Clear-History] 5 | other = "Bersihkan Riwayat" 6 | 7 | [Attachments-label] 8 | other = "Lampiran" 9 | 10 | [title-404] 11 | other = "Kesalahan" 12 | 13 | [message-404] 14 | other = "Oops. Sepertinya halaman ini tidak ada ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ke halaman depan" 18 | 19 | [Edit-this-page] 20 | other = "Edit halaman ini" 21 | 22 | [Shortcuts-Title] 23 | other = "Lainnya" 24 | 25 | [Expand-title] 26 | other = "Bentangkan..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/ja.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "検索..." 3 | 4 | [Clear-History] 5 | other = "履歴削除" 6 | 7 | [Attachments-label] 8 | other = "添付" 9 | 10 | [title-404] 11 | other = "エラー" 12 | 13 | [message-404] 14 | other = "おっと。ページが見当たりません。 ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "ホームページへ行く" 18 | 19 | [Edit-this-page] 20 | other = "このページを編集" 21 | 22 | [Shortcuts-Title] 23 | other = "更に" 24 | 25 | [Expand-title] 26 | other = "開く..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/nl.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Zoeken..." 3 | 4 | [Clear-History] 5 | other = "Wis geschiedenis" 6 | 7 | [Attachments-label] 8 | other = "Bijlagen" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Blijkbaar bestaat deze pagina niet ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Naar startpagina" 18 | 19 | [Edit-this-page] 20 | other = "Deze pagina bewerken" 21 | 22 | [Shortcuts-Title] 23 | other = "Snelkoppelingen" 24 | 25 | [Expand-title] 26 | other = "Lees meer..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/pt.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Procurar..." 3 | 4 | [Clear-History] 5 | other = "Limpar Histórico" 6 | 7 | [Attachments-label] 8 | other = "Anexos" 9 | 10 | [title-404] 11 | other = "Erro" 12 | 13 | [message-404] 14 | other = "Ops. Parece que a página não existe ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ir para o início" 18 | 19 | [Edit-this-page] 20 | other = "Editar esta página" 21 | 22 | [Shortcuts-Title] 23 | other = "Mais" 24 | 25 | [Expand-title] 26 | other = "Expandir..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/ru.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Поиск..." 3 | 4 | [Clear-History] 5 | other = "Очистить историю" 6 | 7 | [Attachments-label] 8 | other = "Присоединенные файлы" 9 | 10 | [title-404] 11 | other = "Ошибка" 12 | 13 | [message-404] 14 | other = "Упс. Выглядит будто такой страницы нет ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Перейти на главную" 18 | 19 | [Edit-this-page] 20 | other = "Редактировать" 21 | 22 | [Shortcuts-Title] 23 | other = "Еще" 24 | 25 | [Expand-title] 26 | other = "Развернуть..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "килобайт" -------------------------------------------------------------------------------- /themes/learn/i18n/tr.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Ara..." 3 | 4 | [Clear-History] 5 | other = "Geçmişi Temizle" 6 | 7 | [Attachments-label] 8 | other = "Ekler" 9 | 10 | [title-404] 11 | other = "Hata" 12 | 13 | [message-404] 14 | other = "Uups. Görünüşe göre böyle bir sayfa yok ¯\\_(ツ)_/¯" 15 | 16 | [Go-to-homepage] 17 | other = "Anasayfaya dön" 18 | 19 | [Edit-this-page] 20 | other = "Sayfayı düzenle" 21 | 22 | [Shortcuts-Title] 23 | other = "Dahası Var" 24 | 25 | [Expand-title] 26 | other = "Genişlet..." 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/i18n/zh-cn.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "搜索..." 3 | 4 | [Clear-History] 5 | other = "清理历史记录" 6 | 7 | [Attachments-label] 8 | other = "附件" 9 | 10 | [title-404] 11 | other = "错误" 12 | 13 | [message-404] 14 | other = "哎哟。 看起来这个页面不存在 ¯\\_(ツ)_/¯。" 15 | 16 | [Go-to-homepage] 17 | other = "转到主页" 18 | 19 | [Edit-this-page] 20 | other = "编辑当前页" 21 | 22 | [Shortcuts-Title] 23 | other = "更多" 24 | 25 | [Expand-title] 26 | other = "展开" 27 | 28 | [BinaryPrefix-kilobyte] 29 | other = "kb" 30 | -------------------------------------------------------------------------------- /themes/learn/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/images/screenshot.png -------------------------------------------------------------------------------- /themes/learn/images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/images/tn.png -------------------------------------------------------------------------------- /themes/learn/layouts/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ partial "meta.html" . }} {{ partial "favicon.html" . }} {{ .Scratch.Add "title" "" }}{{ if eq .Site.Data.titles .Title }}{{ .Scratch.Set "title" (index .Site.Data.titles .Title).title }}{{ else }}{{ .Scratch.Set "title" .Title}}{{end}} 6 | {{ .Scratch.Get "title" }} 7 | 8 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {{with .Site.Params.themeVariant}} 17 | 18 | {{end}} 19 | 34 | {{ partial "custom-header.html" . }} 35 | 36 | 37 | 38 | 39 |
40 |
41 |
42 |
43 |

{{T "title-404"}}

44 |

Page not found!

45 |

{{T "message-404"}}

46 |

47 |

{{T "Go-to-homepage"}}

48 |
49 |
50 | 51 |
52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /themes/learn/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | {{ if eq .Kind "section" }} 4 | {{ .Content }} 5 | {{end}} 6 | 7 | {{ if or (eq .Kind "taxonomy") (eq .Kind "taxonomyTerm") }} 8 |
    9 | {{ range .Pages }} 10 |
  • {{.Title}}
  • 11 | {{ end }} 12 |
13 | {{end}} 14 | 15 |
16 | {{with .Params.LastModifierDisplayName}} 17 | {{ . }} {{with $.Date}} {{ .Format "02/01/2006" }}{{end}} 18 | 19 | {{end}} 20 |
21 | 22 | {{ partial "footer.html" . }} -------------------------------------------------------------------------------- /themes/learn/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | {{ .Content }} 4 | 5 |
6 | {{with .Params.LastModifierDisplayName}} 7 | {{ . }} {{with $.Date}} {{ .Format "02/01/2006" }}{{end}} 8 | 9 | {{end}} 10 |
11 | 12 | 13 | {{ partial "footer.html" . }} 14 | -------------------------------------------------------------------------------- /themes/learn/layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | navigation 4 | 5 | 6 | {{.Site.Home.Content}} 7 | 8 | {{ partial "footer.html" . }} 9 | -------------------------------------------------------------------------------- /themes/learn/layouts/index.json: -------------------------------------------------------------------------------- 1 | [{{ range $index, $page := .Site.Pages }} 2 | {{- if ne $page.Type "json" -}} 3 | {{- if and $index (gt $index 0) -}},{{- end }} 4 | { 5 | "uri": "{{ $page.Permalink }}", 6 | "title": "{{ htmlEscape $page.Title}}", 7 | "tags": [{{ range $tindex, $tag := $page.Params.tags }}{{ if $tindex }}, {{ end }}"{{ $tag| htmlEscape }}"{{ end }}], 8 | "description": "{{ htmlEscape .Description}}", 9 | "content": {{$page.Plain | jsonify}} 10 | } 11 | {{- end -}} 12 | {{- end -}}] -------------------------------------------------------------------------------- /themes/learn/layouts/partials/custom-comments.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/custom-footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/layouts/partials/custom-footer.html -------------------------------------------------------------------------------- /themes/learn/layouts/partials/custom-header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/favicon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | {{ if .Params.chapter }} 2 | 3 | {{ end }} 4 | 5 | {{ partial "custom-comments.html" . }} 6 | 7 | 8 | 53 | 54 | 55 | 56 |
57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | {{ if (or (and (ne .Params.disableMermaid nil) (not .Params.disableMermaid)) (not .Site.Params.disableMermaid)) }} 70 | {{ if isset .Params "customMermaidURL" }} 71 | 72 | {{ else if isset .Site.Params "customMermaidURL" }} 73 | 74 | {{ else }} 75 | 76 | {{ end }} 77 | 80 | {{ end }} 81 | {{ partial "custom-footer.html" . }} 82 | 83 | 84 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{ hugo.Generator }} 11 | {{ partial "meta.html" . }} 12 | {{ partial "favicon.html" . }} 13 | {{ .Title }} :: {{ .Site.Title }} 14 | 15 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }} 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | {{with .Site.Params.themeVariant}} 26 | 27 | {{end}} 28 | 29 | 30 | 31 | 41 | {{ partial "custom-header.html" . }} 42 | 43 | 44 | 45 | {{ partial "menu.html" . }} 46 |
47 |
48 |
49 | {{if not .IsHome}} 50 |
51 |
52 | {{ if and (or .IsPage .IsSection) .Site.Params.editURL }} 53 | {{ $File := .File }} 54 | {{ $Site := .Site }} 55 | {{with $File.Path }} 56 | 63 | {{ end }} 64 | {{ end }} 65 | {{$toc := (and (not .Params.disableToc) (not .Params.chapter))}} 66 | 79 | {{ if $toc }} 80 | {{ partial "toc.html" . }} 81 | {{ end }} 82 |
83 |
84 | {{ end }} 85 | 86 | {{ if .Params.chapter }} 87 |
88 | {{ end }} 89 |
90 |

{{.Title}}

91 | 92 | {{define "breadcrumb"}} 93 | {{$parent := .page.Parent }} 94 | {{ if $parent }} 95 | {{ $value := (printf "%s > %s" $parent.Permalink $parent.Title .value) }} 96 | {{ template "breadcrumb" dict "page" $parent "value" $value }} 97 | {{else}} 98 | {{.value|safeHTML}} 99 | {{end}} 100 | {{end}} -------------------------------------------------------------------------------- /themes/learn/layouts/partials/logo.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/menu-footer.html: -------------------------------------------------------------------------------- 1 | 2 | Privacy | Site Terms | © {{ now.Year }}, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3 | 4 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/meta.html: -------------------------------------------------------------------------------- 1 | 2 | {{ with .Site.Params.author }}{{ end }} 3 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/search.html: -------------------------------------------------------------------------------- 1 | 6 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }} 7 | 8 | 9 | 16 | 17 | -------------------------------------------------------------------------------- /themes/learn/layouts/partials/tags.html: -------------------------------------------------------------------------------- 1 | {{ if .Params.tags }} 2 |
3 | {{range .Params.tags}} 4 | {{ . }} 5 | {{end}} 6 |
7 | {{end}} -------------------------------------------------------------------------------- /themes/learn/layouts/partials/toc.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ .TableOfContents }} 4 |
5 |
6 | -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/attachments.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
3 | 7 | {{if eq .Page.File.BaseFileName "index"}} 8 | {{$.Scratch.Add "filesName" "files"}} 9 | {{else}} 10 | {{$.Scratch.Add "filesName" (printf "%s.files" .Page.File.BaseFileName)}} 11 | {{end}} 12 |
13 | {{ range (readDir (printf "./content/%s%s" .Page.File.Dir ($.Scratch.Get "filesName")) ) }} 14 | {{ $fileDir := replace $.Page.File.Dir "\\" "/" }} 15 | {{if ($.Get "pattern")}} 16 | {{if (findRE ($.Get "pattern") .Name)}} 17 |
  • 18 | 19 | {{.Name}} 20 | 21 | ({{div .Size 1024 }} kb) 22 |
  • 23 | {{end}} 24 | {{else}} 25 |
  • 26 | 27 | {{.Name}} 28 | 29 | ({{div .Size 1024 }} kb) 30 |
  • 31 | {{end}} 32 | {{end}} 33 |
    34 | {{.Inner}} 35 |
    36 | 37 | -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/button.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 | {{ $icon := .Get "icon" }} 3 | {{ $iconposition := .Get "icon-position" }} 4 | {{ if ($icon) }} 5 | {{ if or (not ($iconposition)) (eq $iconposition "left") }} 6 | 7 | {{ end }} 8 | {{ end }} 9 | {{ .Inner }} 10 | {{ if and ($icon) (eq $iconposition "right")}} 11 | 12 | {{ end }} 13 | 14 | -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/children.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 | {{ $showhidden := .Get "showhidden"}} 3 | {{ $style := .Get "style" | default "li" }} 4 | {{ $depth := .Get "depth" | default 1 }} 5 | {{ $withDescription := .Get "description" | default false }} 6 | {{ $sortTerm := .Get "sort" | default "Weight" }} 7 | 8 |
      9 | {{ .Scratch.Set "pages" .Page.Pages }} 10 | 11 | {{if .Page.IsHome}} 12 | 13 | {{ $rootPage := where .Page.Pages "Dir" "" }} 14 | {{ .Scratch.Set "pages" (.Page.Sections | union $rootPage)}} 15 | {{else}} 16 | {{ if .Page.Sections}} 17 | {{ .Scratch.Set "pages" (.Page.Pages | union .Page.Sections) }} 18 | {{end}} 19 | {{end}} 20 | 21 | {{ $pages := (.Scratch.Get "pages") }} 22 | 23 | {{if eq $sortTerm "Weight"}} 24 | {{template "childs" dict "menu" $pages.ByWeight "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 25 | {{else if eq $sortTerm "Name"}} 26 | {{template "childs" dict "menu" $pages.ByTitle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 27 | {{else if eq $sortTerm "PublishDate"}} 28 | {{template "childs" dict "menu" $pages.ByPublishDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 29 | {{else if eq $sortTerm "Date"}} 30 | {{template "childs" dict "menu" $pages.ByDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 31 | {{else if eq $sortTerm "Length"}} 32 | {{template "childs" dict "menu" $pages.ByLength "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 33 | {{else}} 34 | {{template "childs" dict "menu" $pages "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}} 35 | {{end}} 36 |
    37 | 38 | {{.Inner|safeHTML}} 39 | 40 | {{ define "childs" }} 41 | {{ range .menu }} 42 | {{ if and .Params.hidden (not $.showhidden) }} 43 | {{else}} 44 | {{if not .IsHome}} 45 | {{if hasPrefix $.style "h"}} 46 | {{$num := sub ( int (trim $.style "h") ) 1 }} 47 | {{$numn := add $num $.count }} 48 | 49 | {{(printf "" $numn)|safeHTML}} 50 | {{ .Title }} 51 | {{(printf "" $numn)|safeHTML}} 52 | 53 | {{else}} 54 | {{(printf "<%s>" $.style)|safeHTML}} 55 | {{ .Title }} 56 | {{(printf "" $.style)|safeHTML}} 57 | {{end}} 58 | 59 | {{if $.description}} 60 | {{if .Description}} 61 |

    {{.Description}}

    62 | {{else}} 63 |

    {{.Summary}}

    64 | {{end}} 65 | {{end}} 66 | {{end}} 67 | {{ if lt $.count $.depth}} 68 | 69 | {{if eq $.style "li"}} 70 |
      71 | {{end}} 72 | 73 | {{ if .Sections}} 74 | {{ .Scratch.Set "pages" (.Pages | union .Sections) }} 75 | {{else}} 76 | {{ .Scratch.Set "pages" .Pages }} 77 | {{end}} 78 | 79 | {{ $pages := (.Scratch.Get "pages") }} 80 | 81 | {{if eq $.sortTerm "Weight"}} 82 | {{template "childs" dict "menu" $pages.ByWeight "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 83 | {{else if eq $.sortTerm "Name"}} 84 | {{template "childs" dict "menu" $pages.ByTitle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 85 | {{else if eq $.sortTerm "PublishDate"}} 86 | {{template "childs" dict "menu" $pages.ByPublishDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 87 | {{else if eq $.sortTerm "Date"}} 88 | {{template "childs" dict "menu" $pages.ByDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 89 | {{else if eq $.sortTerm "Length"}} 90 | {{template "childs" dict "menu" $pages.ByLength "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 91 | {{else}} 92 | {{template "childs" dict "menu" $pages "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}} 93 | {{end}} 94 | 95 | {{if eq $.style "li"}} 96 |
    97 | {{end}} 98 | {{end}} 99 | {{end}} 100 | {{end}} 101 | {{end}} -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/expand.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
    3 |
    4 | 5 | 6 | {{$expandMessage := T "Expand-title"}} 7 | {{ if .IsNamedParams }} 8 | {{.Get "default" | default $expandMessage}} 9 | {{else}} 10 | {{.Get 0 | default $expandMessage}} 11 | {{end}} 12 | 13 |
    14 | 17 |
    -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/img.html: -------------------------------------------------------------------------------- 1 | {{ $img := $.Page.Resources.GetMatch (.Get 0)}} 2 |
    3 | {{(.Get 1)}} 4 |
    -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/mermaid.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
    {{ safeHTML .Inner }}
    3 | -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/notice.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
    {{ .Inner }}
    3 | -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/ref.html: -------------------------------------------------------------------------------- 1 | {{- if in (.Get 0) "/_index.md" -}} 2 | {{- $paths := (split (.Get 0) "_index.md") -}} 3 | {{- $pagepath := index $paths 0 -}} 4 | {{- $anchor := index $paths 1 -}} 5 | {{- with .Site.GetPage "section" (trim $pagepath "/") -}} 6 | {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} 7 | {{- end -}} 8 | {{- else -}} 9 | {{- with .Site.GetPage "section" (.Get 0) }} 10 | {{- .RelPermalink -}} 11 | {{- else -}} 12 | {{- .Get 0 | relref .Page -}} 13 | {{- end -}} 14 | {{- end -}} -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/relref.html: -------------------------------------------------------------------------------- 1 | {{- if in (.Get 0) "/_index.md" -}} 2 | {{- $paths := (split (.Get 0) "_index.md") -}} 3 | {{- $pagepath := index $paths 0 -}} 4 | {{- $anchor := index $paths 1 -}} 5 | {{- with .Site.GetPage "section" (trim $pagepath "/") -}} 6 | {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} 7 | {{- end -}} 8 | {{- else -}} 9 | {{- with .Site.GetPage "section" (.Get 0) }} 10 | {{- .RelPermalink -}} 11 | {{- else -}} 12 | {{- .Get 0 | relref .Page -}} 13 | {{- end -}} 14 | {{- end -}} -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/siteparam.html: -------------------------------------------------------------------------------- 1 | {{- $paramName := (.Get 0) -}} 2 | {{- $siteParams := .Site.Params -}} 3 | {{- with $paramName -}} 4 | {{- with $siteParams -}} 5 | {{- index . (lower $paramName) -}} 6 | {{- end -}} 7 | {{- end -}} -------------------------------------------------------------------------------- /themes/learn/layouts/shortcodes/siteurl.html: -------------------------------------------------------------------------------- 1 | {{ .Page.Site.BaseURL }} -------------------------------------------------------------------------------- /themes/learn/static/css/atom-one-dark-reasonable.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage 4 | 5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 6 | 7 | */ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | line-height: 1.3em; 13 | color: #abb2bf; 14 | background: #282c34; 15 | border-radius: 5px; 16 | } 17 | .hljs-keyword, .hljs-operator { 18 | color: #F92672; 19 | } 20 | .hljs-pattern-match { 21 | color: #F92672; 22 | } 23 | .hljs-pattern-match .hljs-constructor { 24 | color: #61aeee; 25 | } 26 | .hljs-function { 27 | color: #61aeee; 28 | } 29 | .hljs-function .hljs-params { 30 | color: #A6E22E; 31 | } 32 | .hljs-function .hljs-params .hljs-typing { 33 | color: #FD971F; 34 | } 35 | .hljs-module-access .hljs-module { 36 | color: #7e57c2; 37 | } 38 | .hljs-constructor { 39 | color: #e2b93d; 40 | } 41 | .hljs-constructor .hljs-string { 42 | color: #9CCC65; 43 | } 44 | .hljs-comment, .hljs-quote { 45 | color: #b18eb1; 46 | font-style: italic; 47 | } 48 | .hljs-doctag, .hljs-formula { 49 | color: #c678dd; 50 | } 51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst { 52 | color: #e06c75; 53 | } 54 | .hljs-literal { 55 | color: #56b6c2; 56 | } 57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string { 58 | color: #98c379; 59 | } 60 | .hljs-built_in, .hljs-class .hljs-title { 61 | color: #e6c07b; 62 | } 63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { 64 | color: #d19a66; 65 | } 66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title { 67 | color: #61aeee; 68 | } 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | .hljs-link { 76 | text-decoration: underline; 77 | } 78 | -------------------------------------------------------------------------------- /themes/learn/static/css/auto-complete.css: -------------------------------------------------------------------------------- 1 | .autocomplete-suggestions { 2 | text-align: left; 3 | cursor: default; 4 | border: 1px solid #ccc; 5 | border-top: 0; 6 | background: #fff; 7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1); 8 | 9 | /* core styles should not be changed */ 10 | position: absolute; 11 | display: none; 12 | z-index: 9999; 13 | max-height: 254px; 14 | overflow: hidden; 15 | overflow-y: auto; 16 | box-sizing: border-box; 17 | 18 | } 19 | .autocomplete-suggestion { 20 | position: relative; 21 | cursor: pointer; 22 | padding: 7px; 23 | line-height: 23px; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | color: #333; 28 | } 29 | 30 | .autocomplete-suggestion b { 31 | font-weight: normal; 32 | color: #1f8dd6; 33 | } 34 | 35 | .autocomplete-suggestion.selected { 36 | background: #333; 37 | color: #fff; 38 | } 39 | 40 | .autocomplete-suggestion:hover { 41 | background: #444; 42 | color: #fff; 43 | } 44 | 45 | .autocomplete-suggestion > .context { 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /themes/learn/static/css/featherlight.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Featherlight - ultra slim jQuery lightbox 3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/ 4 | * 5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) 6 | * MIT Licensed. 7 | **/ 8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} -------------------------------------------------------------------------------- /themes/learn/static/css/hugo-theme.css: -------------------------------------------------------------------------------- 1 | /* Insert here special css for hugo theme, on top of any other imported css */ 2 | 3 | 4 | /* Table of contents */ 5 | 6 | .progress ul { 7 | list-style: none; 8 | margin: 0; 9 | padding: 0 5px; 10 | } 11 | 12 | #TableOfContents { 13 | font-size: 13px !important; 14 | max-height: 85vh; 15 | overflow: auto; 16 | padding: 15px !important; 17 | } 18 | 19 | 20 | #TableOfContents > ul > li > ul > li > ul li { 21 | margin-right: 8px; 22 | } 23 | 24 | #TableOfContents > ul > li > a { 25 | font-weight: bold; padding: 0 18px; margin: 0 2px; 26 | } 27 | 28 | #TableOfContents > ul > li > ul > li > a { 29 | font-weight: bold; 30 | } 31 | 32 | #TableOfContents > ul > li > ul > li > ul > li > ul > li > ul > li { 33 | display: none; 34 | } 35 | 36 | body { 37 | font-size: 16px !important; 38 | color: #323232 !important; 39 | } 40 | 41 | #body a.highlight, #body a.highlight:hover, #body a.highlight:focus { 42 | text-decoration: none; 43 | outline: none; 44 | outline: 0; 45 | } 46 | #body a.highlight { 47 | line-height: 1.1; 48 | display: inline-block; 49 | } 50 | #body a.highlight:after { 51 | display: block; 52 | content: ""; 53 | height: 1px; 54 | width: 0%; 55 | background-color: #0082a7; /*#CE3B2F*/ 56 | -webkit-transition: width 0.5s ease; 57 | -moz-transition: width 0.5s ease; 58 | -ms-transition: width 0.5s ease; 59 | transition: width 0.5s ease; 60 | } 61 | #body a.highlight:hover:after, #body a.highlight:focus:after { 62 | width: 100%; 63 | } 64 | .progress { 65 | position:absolute; 66 | background-color: rgba(246, 246, 246, 0.97); 67 | width: auto; 68 | border: thin solid #ECECEC; 69 | display:none; 70 | z-index:200; 71 | } 72 | 73 | #toc-menu { 74 | border-right: thin solid #DAD8D8 !important; 75 | padding-right: 1rem !important; 76 | margin-right: 0.5rem !important; 77 | } 78 | 79 | #sidebar-toggle-span { 80 | border-right: thin solid #DAD8D8 !important; 81 | padding-right: 0.5rem !important; 82 | margin-right: 1rem !important; 83 | } 84 | 85 | .btn { 86 | display: inline-block !important; 87 | padding: 6px 12px !important; 88 | margin-bottom: 0 !important; 89 | font-size: 14px !important; 90 | font-weight: normal !important; 91 | line-height: 1.42857143 !important; 92 | text-align: center !important; 93 | white-space: nowrap !important; 94 | vertical-align: middle !important; 95 | -ms-touch-action: manipulation !important; 96 | touch-action: manipulation !important; 97 | cursor: pointer !important; 98 | -webkit-user-select: none !important; 99 | -moz-user-select: none !important; 100 | -ms-user-select: none !important; 101 | user-select: none !important; 102 | background-image: none !important; 103 | border: 1px solid transparent !important; 104 | border-radius: 4px !important; 105 | -webkit-transition: all 0.15s !important; 106 | -moz-transition: all 0.15s !important; 107 | transition: all 0.15s !important; 108 | } 109 | .btn:focus { 110 | /*outline: thin dotted; 111 | outline: 5px auto -webkit-focus-ring-color; 112 | outline-offset: -2px;*/ 113 | outline: none !important; 114 | } 115 | .btn:hover, 116 | .btn:focus { 117 | color: #2b2b2b !important; 118 | text-decoration: none !important; 119 | } 120 | 121 | .btn-default { 122 | color: #333 !important; 123 | background-color: #fff !important; 124 | border-color: #ccc !important; 125 | } 126 | .btn-default:hover, 127 | .btn-default:focus, 128 | .btn-default:active { 129 | color: #fff !important; 130 | background-color: #9e9e9e !important; 131 | border-color: #9e9e9e !important; 132 | } 133 | .btn-default:active { 134 | background-image: none !important; 135 | } 136 | 137 | /* anchors */ 138 | .anchor { 139 | color: #00bdf3; 140 | font-size: 0.5em; 141 | cursor:pointer; 142 | visibility:hidden; 143 | margin-left: 0.5em; 144 | position: absolute; 145 | margin-top:0.1em; 146 | } 147 | 148 | h2:hover .anchor, h3:hover .anchor, h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { 149 | visibility:visible; 150 | } 151 | 152 | /* Redfines headers style */ 153 | 154 | h2, h3, h4, h5, h6 { 155 | font-weight: 400; 156 | line-height: 1.1; 157 | } 158 | 159 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { 160 | font-weight: inherit; 161 | } 162 | 163 | h2 { 164 | font-size: 2.5rem; 165 | line-height: 110% !important; 166 | margin: 2.5rem 0 1.5rem 0; 167 | } 168 | 169 | h3 { 170 | font-size: 2rem; 171 | line-height: 110% !important; 172 | margin: 2rem 0 1rem 0; 173 | } 174 | 175 | h4 { 176 | font-size: 1.5rem; 177 | line-height: 110% !important; 178 | margin: 1.5rem 0 0.75rem 0; 179 | } 180 | 181 | h5 { 182 | font-size: 1rem; 183 | line-height: 110% !important; 184 | margin: 1rem 0 0.2rem 0; 185 | } 186 | 187 | h6 { 188 | font-size: 0.5rem; 189 | line-height: 110% !important; 190 | margin: 0.5rem 0 0.2rem 0; 191 | } 192 | 193 | p { 194 | margin: 1rem 0; 195 | } 196 | 197 | figcaption h4 { 198 | font-weight: 300 !important; 199 | opacity: .85; 200 | font-size: 1em; 201 | text-align: center; 202 | margin-top: -1.5em; 203 | } 204 | 205 | .select-style { 206 | border: 0; 207 | width: 150px; 208 | border-radius: 0px; 209 | overflow: hidden; 210 | display: inline-flex; 211 | } 212 | 213 | .select-style svg { 214 | fill: #ccc; 215 | width: 14px; 216 | height: 14px; 217 | pointer-events: none; 218 | margin: auto; 219 | } 220 | 221 | .select-style svg:hover { 222 | fill: #e6e6e6; 223 | } 224 | 225 | .select-style select { 226 | padding: 0; 227 | width: 130%; 228 | border: none; 229 | box-shadow: none; 230 | background: transparent; 231 | background-image: none; 232 | -webkit-appearance: none; 233 | margin: auto; 234 | margin-left: 0px; 235 | margin-right: -20px; 236 | } 237 | 238 | .select-style select:focus { 239 | outline: none; 240 | } 241 | 242 | .select-style :hover { 243 | cursor: pointer; 244 | } 245 | 246 | @media only all and (max-width: 47.938em) { 247 | #breadcrumbs .links, #top-github-link-text { 248 | display: none; 249 | } 250 | } 251 | 252 | .is-sticky #top-bar { 253 | box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.1); 254 | } -------------------------------------------------------------------------------- /themes/learn/static/css/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /themes/learn/static/css/perfect-scrollbar.min.css: -------------------------------------------------------------------------------- 1 | /* perfect-scrollbar v0.6.13 */ 2 | .ps-container{-ms-touch-action:auto;touch-action:auto;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:0px;height:15px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;bottom:2px;height:6px}.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x,.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x{height:11px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:0;width:15px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;right:2px;width:6px}.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y,.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y{width:11px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} 3 | -------------------------------------------------------------------------------- /themes/learn/static/css/tags.css: -------------------------------------------------------------------------------- 1 | /* Tags */ 2 | 3 | #head-tags{ 4 | margin-left:1em; 5 | margin-top:1em; 6 | } 7 | 8 | #body .tags a.tag-link { 9 | display: inline-block; 10 | line-height: 2em; 11 | font-size: 0.8em; 12 | position: relative; 13 | margin: 0 16px 8px 0; 14 | padding: 0 10px 0 12px; 15 | background: #8451a1; 16 | 17 | -webkit-border-bottom-right-radius: 3px; 18 | border-bottom-right-radius: 3px; 19 | -webkit-border-top-right-radius: 3px; 20 | border-top-right-radius: 3px; 21 | 22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); 23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2); 24 | color: #fff; 25 | } 26 | 27 | #body .tags a.tag-link:before { 28 | content: ""; 29 | position: absolute; 30 | top:0; 31 | left: -1em; 32 | width: 0; 33 | height: 0; 34 | border-color: transparent #8451a1 transparent transparent; 35 | border-style: solid; 36 | border-width: 1em 1em 1em 0; 37 | } 38 | 39 | #body .tags a.tag-link:after { 40 | content: ""; 41 | position: absolute; 42 | top: 10px; 43 | left: 1px; 44 | width: 5px; 45 | height: 5px; 46 | -webkit-border-radius: 50%; 47 | border-radius: 100%; 48 | background: #fff; 49 | } 50 | -------------------------------------------------------------------------------- /themes/learn/static/css/theme-blue.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#1C90F3; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#167ad0; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #1C90F3; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#1C90F3; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#33a1ff; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#167ad0; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #33a1ff; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #a1d2fd; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#20272b; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#252c31; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #33a1ff; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #20272b; /* Color of
    separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /themes/learn/static/css/theme-green.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#599a3e; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#3f6d2c; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #599a3e; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#74b559; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#9cd484; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#599a3e; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #84c767; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #c7f7c4; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#1b211c; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#222723; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #599a3e; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #18211c; /* Color of
    separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /themes/learn/static/css/theme-red.css: -------------------------------------------------------------------------------- 1 | 2 | :root{ 3 | 4 | --MAIN-TEXT-color:#323232; /* Color of text by default */ 5 | --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ 6 | --MAIN-LINK-color:#f31c1c; /* Color of links */ 7 | --MAIN-LINK-HOVER-color:#d01616; /* Color of hovered links */ 8 | --MAIN-ANCHOR-color: #f31c1c; /* color of anchors on titles */ 9 | 10 | --MENU-HOME-LINK-color: #ccc; /* Color of the home button text */ 11 | --MENU-HOME-LINK-HOVER-color: #e6e6e6; /* Color of the hovered home button text */ 12 | 13 | --MENU-HEADER-BG-color:#dc1010; /* Background color of menu header */ 14 | --MENU-HEADER-BORDER-color:#e23131; /*Color of menu header border */ 15 | 16 | --MENU-SEARCH-BG-color:#b90000; /* Search field background color (by default borders + icons) */ 17 | --MENU-SEARCH-BOX-color: #ef2020; /* Override search field border color */ 18 | --MENU-SEARCH-BOX-ICONS-color: #fda1a1; /* Override search field icons color */ 19 | 20 | --MENU-SECTIONS-ACTIVE-BG-color:#2b2020; /* Background color of the active section and its childs */ 21 | --MENU-SECTIONS-BG-color:#312525; /* Background color of other sections */ 22 | --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ 23 | --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ 24 | --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ 25 | --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ 26 | 27 | --MENU-VISITED-color: #ff3333; /* Color of 'page visited' icons in menu */ 28 | --MENU-SECTION-HR-color: #2b2020; /* Color of
    separator in menu */ 29 | 30 | } 31 | 32 | body { 33 | color: var(--MAIN-TEXT-color) !important; 34 | } 35 | 36 | textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { 37 | border-color: none; 38 | box-shadow: none; 39 | } 40 | 41 | h2, h3, h4, h5 { 42 | color: var(--MAIN-TITLES-TEXT-color) !important; 43 | } 44 | 45 | a { 46 | color: var(--MAIN-LINK-color); 47 | } 48 | 49 | .anchor { 50 | color: var(--MAIN-ANCHOR-color); 51 | } 52 | 53 | a:hover { 54 | color: var(--MAIN-LINK-HOVER-color); 55 | } 56 | 57 | #sidebar ul li.visited > a .read-icon { 58 | color: var(--MENU-VISITED-color); 59 | } 60 | 61 | #body a.highlight:after { 62 | display: block; 63 | content: ""; 64 | height: 1px; 65 | width: 0%; 66 | -webkit-transition: width 0.5s ease; 67 | -moz-transition: width 0.5s ease; 68 | -ms-transition: width 0.5s ease; 69 | transition: width 0.5s ease; 70 | background-color: var(--MAIN-LINK-HOVER-color); 71 | } 72 | #sidebar { 73 | background-color: var(--MENU-SECTIONS-BG-color); 74 | } 75 | #sidebar #header-wrapper { 76 | background: var(--MENU-HEADER-BG-color); 77 | color: var(--MENU-SEARCH-BOX-color); 78 | border-color: var(--MENU-HEADER-BORDER-color); 79 | } 80 | #sidebar .searchbox { 81 | border-color: var(--MENU-SEARCH-BOX-color); 82 | background: var(--MENU-SEARCH-BG-color); 83 | } 84 | #sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { 85 | background: var(--MENU-SECTIONS-ACTIVE-BG-color); 86 | } 87 | #sidebar .searchbox * { 88 | color: var(--MENU-SEARCH-BOX-ICONS-color); 89 | } 90 | 91 | #sidebar a { 92 | color: var(--MENU-SECTIONS-LINK-color); 93 | } 94 | 95 | #sidebar a:hover { 96 | color: var(--MENU-SECTIONS-LINK-HOVER-color); 97 | } 98 | 99 | #sidebar ul li.active > a { 100 | background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); 101 | color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; 102 | } 103 | 104 | #sidebar hr { 105 | border-color: var(--MENU-SECTION-HR-color); 106 | } 107 | 108 | #body .tags a.tag-link { 109 | background-color: var(--MENU-HEADER-BG-color); 110 | } 111 | 112 | #body .tags a.tag-link:before { 113 | border-right-color: var(--MENU-HEADER-BG-color); 114 | } 115 | 116 | #homelinks { 117 | background: var(--MENU-HEADER-BG-color); 118 | background-color: var(--MENU-HEADER-BORDER-color); 119 | border-bottom-color: var(--MENU-HEADER-BORDER-color); 120 | } 121 | 122 | #homelinks a { 123 | color: var(--MENU-HOME-LINK-color); 124 | } 125 | 126 | #homelinks a:hover { 127 | color: var(--MENU-HOME-LINK-HOVERED-color); 128 | } -------------------------------------------------------------------------------- /themes/learn/static/fonts/Inconsolata.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Inconsolata.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Inconsolata.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Inconsolata.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-Normal-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-Normal-webfont.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-Normal-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-Normal-webfont.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-Normal-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-Normal-webfont.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-Normal-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-Normal-webfont.woff2 -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_200.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_200.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_200.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_200.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_200.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_200.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_200.woff2 -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_300.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_300.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_300.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_300.woff2 -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_500.eot -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_500.ttf -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_500.woff -------------------------------------------------------------------------------- /themes/learn/static/fonts/Work_Sans_500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/fonts/Work_Sans_500.woff2 -------------------------------------------------------------------------------- /themes/learn/static/images/clippy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/learn/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-ia/standards-terraform/200785420637f315497cc6864f5ca0c26aafbeca/themes/learn/static/images/logo.png -------------------------------------------------------------------------------- /themes/learn/static/js/auto-complete.js: -------------------------------------------------------------------------------- 1 | // JavaScript autoComplete v1.0.4 2 | // https://github.com/Pixabay/JavaScript-autoComplete 3 | var autoComplete=function(){function e(e){function t(e,t){return e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className)}function o(e,t,o){e.attachEvent?e.attachEvent("on"+t,o):e.addEventListener(t,o)}function s(e,t,o){e.detachEvent?e.detachEvent("on"+t,o):e.removeEventListener(t,o)}function n(e,s,n,l){o(l||document,s,function(o){for(var s,l=o.target||o.srcElement;l&&!(s=t(l,e));)l=l.parentElement;s&&n.call(l,o)})}if(document.querySelector){var l={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:"",renderItem:function(e,t){t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var o=new RegExp("("+t.split(" ").join("|")+")","gi");return'
    '+e.replace(o,"$1")+"
    "},onSelect:function(){}};for(var c in e)e.hasOwnProperty(c)&&(l[c]=e[c]);for(var a="object"==typeof l.selector?[l.selector]:document.querySelectorAll(l.selector),u=0;u0?i.sc.scrollTop=n+i.sc.suggestionHeight+s-i.sc.maxHeight:0>n&&(i.sc.scrollTop=n+s)}else i.sc.scrollTop=0},o(window,"resize",i.updateSC),document.body.appendChild(i.sc),n("autocomplete-suggestion","mouseleave",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&setTimeout(function(){e.className=e.className.replace("selected","")},20)},i.sc),n("autocomplete-suggestion","mouseover",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&(e.className=e.className.replace("selected","")),this.className+=" selected"},i.sc),n("autocomplete-suggestion","mousedown",function(e){if(t(this,"autocomplete-suggestion")){var o=this.getAttribute("data-val");i.value=o,l.onSelect(e,o,this),i.sc.style.display="none"}},i.sc),i.blurHandler=function(){try{var e=document.querySelector(".autocomplete-suggestions:hover")}catch(t){var e=0}e?i!==document.activeElement&&setTimeout(function(){i.focus()},20):(i.last_val=i.value,i.sc.style.display="none",setTimeout(function(){i.sc.style.display="none"},350))},o(i,"blur",i.blurHandler);var r=function(e){var t=i.value;if(i.cache[t]=e,e.length&&t.length>=l.minChars){for(var o="",s=0;st||t>40)&&13!=t&&27!=t){var o=i.value;if(o.length>=l.minChars){if(o!=i.last_val){if(i.last_val=o,clearTimeout(i.timer),l.cache){if(o in i.cache)return void r(i.cache[o]);for(var s=1;s",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); 5 | -------------------------------------------------------------------------------- /themes/learn/static/js/hugo-learn.js: -------------------------------------------------------------------------------- 1 | // Get Parameters from some url 2 | var getUrlParameter = function getUrlParameter(sPageURL) { 3 | var url = sPageURL.split('?'); 4 | var obj = {}; 5 | if (url.length == 2) { 6 | var sURLVariables = url[1].split('&'), 7 | sParameterName, 8 | i; 9 | for (i = 0; i < sURLVariables.length; i++) { 10 | sParameterName = sURLVariables[i].split('='); 11 | obj[sParameterName[0]] = sParameterName[1]; 12 | } 13 | } 14 | return obj; 15 | }; 16 | 17 | // Execute actions on images generated from Markdown pages 18 | var images = $("div#body-inner img").not(".inline"); 19 | // Wrap image inside a featherlight (to get a full size view in a popup) 20 | images.wrap(function(){ 21 | var image =$(this); 22 | var o = getUrlParameter(image[0].src); 23 | var f = o['featherlight']; 24 | // IF featherlight is false, do not use feather light 25 | if (f != 'false') { 26 | if (!image.parent("a").length) { 27 | return ""; 28 | } 29 | } 30 | }); 31 | 32 | // Change styles, depending on parameters set to the image 33 | images.each(function(index){ 34 | var image = $(this) 35 | var o = getUrlParameter(image[0].src); 36 | if (typeof o !== "undefined") { 37 | var h = o["height"]; 38 | var w = o["width"]; 39 | var c = o["classes"]; 40 | image.css("width", function() { 41 | if (typeof w !== "undefined") { 42 | return w; 43 | } else { 44 | return "auto"; 45 | } 46 | }); 47 | image.css("height", function() { 48 | if (typeof h !== "undefined") { 49 | return h; 50 | } else { 51 | return "auto"; 52 | } 53 | }); 54 | if (typeof c !== "undefined") { 55 | var classes = c.split(','); 56 | for (i = 0; i < classes.length; i++) { 57 | image.addClass(classes[i]); 58 | } 59 | } 60 | } 61 | }); 62 | 63 | // Stick the top to the top of the screen when scrolling 64 | $(document).ready(function(){ 65 | $("#top-bar").sticky({topSpacing:0, zIndex: 1000}); 66 | }); 67 | 68 | 69 | jQuery(document).ready(function() { 70 | // Add link button for every 71 | var text, clip = new ClipboardJS('.anchor'); 72 | $("h1~h2,h1~h3,h1~h4,h1~h5,h1~h6").append(function(index, html){ 73 | var element = $(this); 74 | var url = encodeURI(document.location.origin + document.location.pathname); 75 | var link = url + "#"+element[0].id; 76 | return " " + 77 | "" + 78 | "" 79 | ; 80 | }); 81 | 82 | $(".anchor").on('mouseleave', function(e) { 83 | $(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w'); 84 | }); 85 | 86 | clip.on('success', function(e) { 87 | e.clearSelection(); 88 | $(e.trigger).attr('aria-label', 'Link copied to clipboard!').addClass('tooltipped tooltipped-s'); 89 | }); 90 | $('code.language-mermaid').each(function(index, element) { 91 | var content = $(element).html().replace(/&/g, '&'); 92 | $(element).parent().replaceWith('
    ' + content + '
    '); 93 | }); 94 | }); 95 | -------------------------------------------------------------------------------- /themes/learn/static/js/search.js: -------------------------------------------------------------------------------- 1 | var lunrIndex, pagesIndex; 2 | 3 | function endsWith(str, suffix) { 4 | return str.indexOf(suffix, str.length - suffix.length) !== -1; 5 | } 6 | 7 | // Initialize lunrjs using our generated index file 8 | function initLunr() { 9 | if (!endsWith(baseurl,"/")){ 10 | baseurl = baseurl+'/' 11 | }; 12 | 13 | // First retrieve the index file 14 | $.getJSON(baseurl +"index.json") 15 | .done(function(index) { 16 | pagesIndex = index; 17 | // Set up lunrjs by declaring the fields we use 18 | // Also provide their boost level for the ranking 19 | lunrIndex = lunr(function() { 20 | this.ref("uri"); 21 | this.field('title', { 22 | boost: 15 23 | }); 24 | this.field('tags', { 25 | boost: 10 26 | }); 27 | this.field("content", { 28 | boost: 5 29 | }); 30 | 31 | this.pipeline.remove(lunr.stemmer); 32 | this.searchPipeline.remove(lunr.stemmer); 33 | 34 | // Feed lunr with each file and let lunr actually index them 35 | pagesIndex.forEach(function(page) { 36 | this.add(page); 37 | }, this); 38 | }) 39 | }) 40 | .fail(function(jqxhr, textStatus, error) { 41 | var err = textStatus + ", " + error; 42 | console.error("Error getting Hugo index file:", err); 43 | }); 44 | } 45 | 46 | /** 47 | * Trigger a search in lunr and transform the result 48 | * 49 | * @param {String} query 50 | * @return {Array} results 51 | */ 52 | function search(queryTerm) { 53 | // Find the item in our index corresponding to the lunr one to have more info 54 | return lunrIndex.search(queryTerm+"^100"+" "+queryTerm+"*^10"+" "+"*"+queryTerm+"^10"+" "+queryTerm+"~2^1").map(function(result) { 55 | return pagesIndex.filter(function(page) { 56 | return page.uri === result.ref; 57 | })[0]; 58 | }); 59 | } 60 | 61 | // Let's get started 62 | initLunr(); 63 | $( document ).ready(function() { 64 | var searchList = new autoComplete({ 65 | /* selector for the search box element */ 66 | selector: $("#search-by").get(0), 67 | /* source is the callback to perform the search */ 68 | source: function(term, response) { 69 | response(search(term)); 70 | }, 71 | /* renderItem displays individual search results */ 72 | renderItem: function(item, term) { 73 | var numContextWords = 2; 74 | var text = item.content.match( 75 | "(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}" + 76 | term+"(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}"); 77 | item.context = text; 78 | return '
    ' + 83 | '» ' + item.title + 84 | '
    ' + 85 | (item.context || '') +'
    ' + 86 | '
    '; 87 | }, 88 | /* onSelect callback fires when a search suggestion is chosen */ 89 | onSelect: function(e, term, item) { 90 | location.href = item.getAttribute('data-uri'); 91 | } 92 | }); 93 | }); 94 | -------------------------------------------------------------------------------- /themes/learn/static/mermaid/mermaid.css: -------------------------------------------------------------------------------- 1 | /* Flowchart variables */ 2 | /* Sequence Diagram variables */ 3 | /* Gantt chart variables */ 4 | .mermaid .label { 5 | color: #333; 6 | } 7 | .node rect, 8 | .node circle, 9 | .node ellipse, 10 | .node polygon { 11 | fill: #ECECFF; 12 | stroke: #CCCCFF; 13 | stroke-width: 1px; 14 | } 15 | .edgePath .path { 16 | stroke: #333333; 17 | } 18 | .edgeLabel { 19 | background-color: #e8e8e8; 20 | } 21 | .cluster rect { 22 | fill: #ffffde !important; 23 | rx: 4 !important; 24 | stroke: #aaaa33 !important; 25 | stroke-width: 1px !important; 26 | } 27 | .cluster text { 28 | fill: #333; 29 | } 30 | .actor { 31 | stroke: #CCCCFF; 32 | fill: #ECECFF; 33 | } 34 | text.actor { 35 | fill: black; 36 | stroke: none; 37 | } 38 | .actor-line { 39 | stroke: grey; 40 | } 41 | .messageLine0 { 42 | stroke-width: 1.5; 43 | stroke-dasharray: "2 2"; 44 | marker-end: "url(#arrowhead)"; 45 | stroke: #333; 46 | } 47 | .messageLine1 { 48 | stroke-width: 1.5; 49 | stroke-dasharray: "2 2"; 50 | stroke: #333; 51 | } 52 | #arrowhead { 53 | fill: #333; 54 | } 55 | #crosshead path { 56 | fill: #333 !important; 57 | stroke: #333 !important; 58 | } 59 | .messageText { 60 | fill: #333; 61 | stroke: none; 62 | } 63 | .labelBox { 64 | stroke: #CCCCFF; 65 | fill: #ECECFF; 66 | } 67 | .labelText { 68 | fill: black; 69 | stroke: none; 70 | } 71 | .loopText { 72 | fill: black; 73 | stroke: none; 74 | } 75 | .loopLine { 76 | stroke-width: 2; 77 | stroke-dasharray: "2 2"; 78 | marker-end: "url(#arrowhead)"; 79 | stroke: #CCCCFF; 80 | } 81 | .note { 82 | stroke: #aaaa33; 83 | fill: #fff5ad; 84 | } 85 | .noteText { 86 | fill: black; 87 | stroke: none; 88 | font-family: 'trebuchet ms', verdana, arial; 89 | font-size: 14px; 90 | } 91 | /** Section styling */ 92 | .section { 93 | stroke: none; 94 | opacity: 0.2; 95 | } 96 | .section0 { 97 | fill: rgba(102, 102, 255, 0.49); 98 | } 99 | .section2 { 100 | fill: #fff400; 101 | } 102 | .section1, 103 | .section3 { 104 | fill: white; 105 | opacity: 0.2; 106 | } 107 | .sectionTitle0 { 108 | fill: #333; 109 | } 110 | .sectionTitle1 { 111 | fill: #333; 112 | } 113 | .sectionTitle2 { 114 | fill: #333; 115 | } 116 | .sectionTitle3 { 117 | fill: #333; 118 | } 119 | .sectionTitle { 120 | text-anchor: start; 121 | font-size: 11px; 122 | text-height: 14px; 123 | } 124 | /* Grid and axis */ 125 | .grid .tick { 126 | stroke: lightgrey; 127 | opacity: 0.3; 128 | shape-rendering: crispEdges; 129 | } 130 | .grid path { 131 | stroke-width: 0; 132 | } 133 | /* Today line */ 134 | .today { 135 | fill: none; 136 | stroke: red; 137 | stroke-width: 2px; 138 | } 139 | /* Task styling */ 140 | /* Default task */ 141 | .task { 142 | stroke-width: 2; 143 | } 144 | .taskText { 145 | text-anchor: middle; 146 | font-size: 11px; 147 | } 148 | .taskTextOutsideRight { 149 | fill: black; 150 | text-anchor: start; 151 | font-size: 11px; 152 | } 153 | .taskTextOutsideLeft { 154 | fill: black; 155 | text-anchor: end; 156 | font-size: 11px; 157 | } 158 | /* Specific task settings for the sections*/ 159 | .taskText0, 160 | .taskText1, 161 | .taskText2, 162 | .taskText3 { 163 | fill: white; 164 | } 165 | .task0, 166 | .task1, 167 | .task2, 168 | .task3 { 169 | fill: #8a90dd; 170 | stroke: #534fbc; 171 | } 172 | .taskTextOutside0, 173 | .taskTextOutside2 { 174 | fill: black; 175 | } 176 | .taskTextOutside1, 177 | .taskTextOutside3 { 178 | fill: black; 179 | } 180 | /* Active task */ 181 | .active0, 182 | .active1, 183 | .active2, 184 | .active3 { 185 | fill: #bfc7ff; 186 | stroke: #534fbc; 187 | } 188 | .activeText0, 189 | .activeText1, 190 | .activeText2, 191 | .activeText3 { 192 | fill: black !important; 193 | } 194 | /* Completed task */ 195 | .done0, 196 | .done1, 197 | .done2, 198 | .done3 { 199 | stroke: grey; 200 | fill: lightgrey; 201 | stroke-width: 2; 202 | } 203 | .doneText0, 204 | .doneText1, 205 | .doneText2, 206 | .doneText3 { 207 | fill: black !important; 208 | } 209 | /* Tasks on the critical line */ 210 | .crit0, 211 | .crit1, 212 | .crit2, 213 | .crit3 { 214 | stroke: #ff8888; 215 | fill: red; 216 | stroke-width: 2; 217 | } 218 | .activeCrit0, 219 | .activeCrit1, 220 | .activeCrit2, 221 | .activeCrit3 { 222 | stroke: #ff8888; 223 | fill: #bfc7ff; 224 | stroke-width: 2; 225 | } 226 | .doneCrit0, 227 | .doneCrit1, 228 | .doneCrit2, 229 | .doneCrit3 { 230 | stroke: #ff8888; 231 | fill: lightgrey; 232 | stroke-width: 2; 233 | cursor: pointer; 234 | shape-rendering: crispEdges; 235 | } 236 | .doneCritText0, 237 | .doneCritText1, 238 | .doneCritText2, 239 | .doneCritText3 { 240 | fill: black !important; 241 | } 242 | .activeCritText0, 243 | .activeCritText1, 244 | .activeCritText2, 245 | .activeCritText3 { 246 | fill: black !important; 247 | } 248 | .titleText { 249 | text-anchor: middle; 250 | font-size: 18px; 251 | fill: black; 252 | } 253 | /* 254 | 255 | 256 | */ 257 | .node text { 258 | font-family: 'trebuchet ms', verdana, arial; 259 | font-size: 14px; 260 | } 261 | .node.clickable { 262 | cursor: pointer; 263 | } 264 | div.mermaidTooltip { 265 | position: absolute; 266 | text-align: center; 267 | max-width: 200px; 268 | padding: 2px; 269 | font-family: 'trebuchet ms', verdana, arial; 270 | font-size: 12px; 271 | background: #ffffde; 272 | border: 1px solid #aaaa33; 273 | border-radius: 2px; 274 | pointer-events: none; 275 | z-index: 100; 276 | } 277 | 278 | -------------------------------------------------------------------------------- /themes/learn/static/mermaid/mermaid.dark.css: -------------------------------------------------------------------------------- 1 | /* Flowchart variables */ 2 | /* Sequence Diagram variables */ 3 | /* Gantt chart variables */ 4 | .mermaid .label { 5 | color: #323D47; 6 | } 7 | .node rect, 8 | .node circle, 9 | .node ellipse, 10 | .node polygon { 11 | fill: #BDD5EA; 12 | stroke: #81B1DB; 13 | stroke-width: 1px; 14 | } 15 | .edgePath .path { 16 | stroke: lightgrey; 17 | } 18 | .edgeLabel { 19 | background-color: #e8e8e8; 20 | } 21 | .cluster rect { 22 | fill: #6D6D65 !important; 23 | rx: 4 !important; 24 | stroke: rgba(255, 255, 255, 0.25) !important; 25 | stroke-width: 1px !important; 26 | } 27 | .cluster text { 28 | fill: #F9FFFE; 29 | } 30 | .actor { 31 | stroke: #81B1DB; 32 | fill: #BDD5EA; 33 | } 34 | text.actor { 35 | fill: black; 36 | stroke: none; 37 | } 38 | .actor-line { 39 | stroke: lightgrey; 40 | } 41 | .messageLine0 { 42 | stroke-width: 1.5; 43 | stroke-dasharray: "2 2"; 44 | marker-end: "url(#arrowhead)"; 45 | stroke: lightgrey; 46 | } 47 | .messageLine1 { 48 | stroke-width: 1.5; 49 | stroke-dasharray: "2 2"; 50 | stroke: lightgrey; 51 | } 52 | #arrowhead { 53 | fill: lightgrey !important; 54 | } 55 | #crosshead path { 56 | fill: lightgrey !important; 57 | stroke: lightgrey !important; 58 | } 59 | .messageText { 60 | fill: lightgrey; 61 | stroke: none; 62 | } 63 | .labelBox { 64 | stroke: #81B1DB; 65 | fill: #BDD5EA; 66 | } 67 | .labelText { 68 | fill: #323D47; 69 | stroke: none; 70 | } 71 | .loopText { 72 | fill: lightgrey; 73 | stroke: none; 74 | } 75 | .loopLine { 76 | stroke-width: 2; 77 | stroke-dasharray: "2 2"; 78 | marker-end: "url(#arrowhead)"; 79 | stroke: #81B1DB; 80 | } 81 | .note { 82 | stroke: rgba(255, 255, 255, 0.25); 83 | fill: #fff5ad; 84 | } 85 | .noteText { 86 | fill: black; 87 | stroke: none; 88 | font-family: 'trebuchet ms', verdana, arial; 89 | font-size: 14px; 90 | } 91 | /** Section styling */ 92 | .section { 93 | stroke: none; 94 | opacity: 0.2; 95 | } 96 | .section0 { 97 | fill: rgba(255, 255, 255, 0.3); 98 | } 99 | .section2 { 100 | fill: #EAE8B9; 101 | } 102 | .section1, 103 | .section3 { 104 | fill: white; 105 | opacity: 0.2; 106 | } 107 | .sectionTitle0 { 108 | fill: #F9FFFE; 109 | } 110 | .sectionTitle1 { 111 | fill: #F9FFFE; 112 | } 113 | .sectionTitle2 { 114 | fill: #F9FFFE; 115 | } 116 | .sectionTitle3 { 117 | fill: #F9FFFE; 118 | } 119 | .sectionTitle { 120 | text-anchor: start; 121 | font-size: 11px; 122 | text-height: 14px; 123 | } 124 | /* Grid and axis */ 125 | .grid .tick { 126 | stroke: rgba(255, 255, 255, 0.3); 127 | opacity: 0.3; 128 | shape-rendering: crispEdges; 129 | } 130 | .grid .tick text { 131 | fill: lightgrey; 132 | opacity: 0.5; 133 | } 134 | .grid path { 135 | stroke-width: 0; 136 | } 137 | /* Today line */ 138 | .today { 139 | fill: none; 140 | stroke: #DB5757; 141 | stroke-width: 2px; 142 | } 143 | /* Task styling */ 144 | /* Default task */ 145 | .task { 146 | stroke-width: 1; 147 | } 148 | .taskText { 149 | text-anchor: middle; 150 | font-size: 11px; 151 | } 152 | .taskTextOutsideRight { 153 | fill: #323D47; 154 | text-anchor: start; 155 | font-size: 11px; 156 | } 157 | .taskTextOutsideLeft { 158 | fill: #323D47; 159 | text-anchor: end; 160 | font-size: 11px; 161 | } 162 | /* Specific task settings for the sections*/ 163 | .taskText0, 164 | .taskText1, 165 | .taskText2, 166 | .taskText3 { 167 | fill: #323D47; 168 | } 169 | .task0, 170 | .task1, 171 | .task2, 172 | .task3 { 173 | fill: #BDD5EA; 174 | stroke: rgba(255, 255, 255, 0.5); 175 | } 176 | .taskTextOutside0, 177 | .taskTextOutside2 { 178 | fill: lightgrey; 179 | } 180 | .taskTextOutside1, 181 | .taskTextOutside3 { 182 | fill: lightgrey; 183 | } 184 | /* Active task */ 185 | .active0, 186 | .active1, 187 | .active2, 188 | .active3 { 189 | fill: #81B1DB; 190 | stroke: rgba(255, 255, 255, 0.5); 191 | } 192 | .activeText0, 193 | .activeText1, 194 | .activeText2, 195 | .activeText3 { 196 | fill: #323D47 !important; 197 | } 198 | /* Completed task */ 199 | .done0, 200 | .done1, 201 | .done2, 202 | .done3 { 203 | fill: lightgrey; 204 | } 205 | .doneText0, 206 | .doneText1, 207 | .doneText2, 208 | .doneText3 { 209 | fill: #323D47 !important; 210 | } 211 | /* Tasks on the critical line */ 212 | .crit0, 213 | .crit1, 214 | .crit2, 215 | .crit3 { 216 | stroke: #E83737; 217 | fill: #E83737; 218 | stroke-width: 2; 219 | } 220 | .activeCrit0, 221 | .activeCrit1, 222 | .activeCrit2, 223 | .activeCrit3 { 224 | stroke: #E83737; 225 | fill: #81B1DB; 226 | stroke-width: 2; 227 | } 228 | .doneCrit0, 229 | .doneCrit1, 230 | .doneCrit2, 231 | .doneCrit3 { 232 | stroke: #E83737; 233 | fill: lightgrey; 234 | stroke-width: 1; 235 | cursor: pointer; 236 | shape-rendering: crispEdges; 237 | } 238 | .doneCritText0, 239 | .doneCritText1, 240 | .doneCritText2, 241 | .doneCritText3 { 242 | fill: lightgrey !important; 243 | } 244 | .activeCritText0, 245 | .activeCritText1, 246 | .activeCritText2, 247 | .activeCritText3 { 248 | fill: #323D47 !important; 249 | } 250 | .titleText { 251 | text-anchor: middle; 252 | font-size: 18px; 253 | fill: lightgrey; 254 | } 255 | /* 256 | 257 | 258 | */ 259 | .node text { 260 | font-family: 'trebuchet ms', verdana, arial; 261 | font-size: 14px; 262 | } 263 | .node.clickable { 264 | cursor: pointer; 265 | } 266 | div.mermaidTooltip { 267 | position: absolute; 268 | text-align: center; 269 | max-width: 200px; 270 | padding: 2px; 271 | font-family: 'trebuchet ms', verdana, arial; 272 | font-size: 12px; 273 | background: #6D6D65; 274 | border: 1px solid rgba(255, 255, 255, 0.25); 275 | border-radius: 2px; 276 | pointer-events: none; 277 | z-index: 100; 278 | } 279 | -------------------------------------------------------------------------------- /themes/learn/theme.toml: -------------------------------------------------------------------------------- 1 | # theme.toml template for a Hugo theme 2 | # See https://github.com/spf13/hugoThemes#themetoml for an example 3 | 4 | name = "Learn" 5 | license = "MIT" 6 | licenselink = "https://github.com/matcornic/hugo-theme-learn/blob/master/LICENSE.md" 7 | description = "Documentation theme for Hugo, based on Grav Learn theme" 8 | homepage = "https://github.com/matcornic/hugo-theme-learn/" 9 | repo = "https://github.com/matcornic/hugo-theme-learn" 10 | tags = ["documentation", "grav", "learn", "doc", "search"] 11 | features = ["documentation", "menu", "nested sections", "search", "mermaid"] 12 | min_version = 0.25 13 | 14 | [author] 15 | name = "Mathieu Cornic" 16 | homepage = "https://matcornic.github.io/" 17 | 18 | [original] 19 | name = "Grav Learn" 20 | homepage = "https://learn.getgrav.org/" 21 | repo = "https://github.com/getgrav/grav-learn" 22 | --------------------------------------------------------------------------------