diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..73883a8 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ ++++ +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true ++++ + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..4da2772 --- /dev/null +++ b/config.toml @@ -0,0 +1,13 @@ +baseURL = 'https://itd.arsenm.dev/' +languageCode = 'en-us' +title = 'ITD' + +# Change the default theme to be use when building the site with Hugo +theme = "hugo-theme-relearn" + +# For search functionality +[outputs] +home = [ "HTML", "RSS", "JSON"] + +[params] +themeVariant = "blue" \ No newline at end of file diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..1ff6cb6 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,25 @@ ++++ +title = "Home" +date = 2021-10-23T00:11:38-07:00 ++++ + +# ITD + +{{% notice warning %}} +There is currently a bug in the bluetooth library used for ITD that will cause the following error when using BlueZ 5.62+: + +``` +MapToStruct: Field not found: MTU +``` + +This is mentioned in [an issue](https://gitea.arsenm.dev/Arsen6331/infinitime/issues/3). +{{% /notice %}} + +ITD is a daemon written in Go that communicates with the [InfinitTime](https://github.com/InfiniTimeOrg/InfiniTime) firmware running on the [PineTime](https://www.pine64.org/pinetime/) smartwatch. + +ITD is meant to be fast and easy to use. As such, it is is only a single binary that works on all Linux systems since it is statically compiled and thus does not rely on any dynamic libraries. + +ITD comes with `itctl`, a binary that uses the provided socket to control ITD and, by extension, the connected watch. + + +`itgui` is a gui frontend in ITD's repo. I do not compile it in CI as it requires OpenGL which makes cross-compiling a massive pain. \ No newline at end of file diff --git a/content/configuration/_index.md b/content/configuration/_index.md new file mode 100644 index 0000000..1416e55 --- /dev/null +++ b/content/configuration/_index.md @@ -0,0 +1,12 @@ ++++ +chapter = true +pre = "II. " +title = "Configuration" +weight = 2 ++++ + +### Chapter II + +# Configuration + +This chapter is about configuring ITD, including documentation about its config file and locations where it can be put. \ No newline at end of file diff --git a/content/configuration/about.md b/content/configuration/about.md new file mode 100644 index 0000000..b56ed46 --- /dev/null +++ b/content/configuration/about.md @@ -0,0 +1,12 @@ ++++ +title = "About" +date = 2021-10-23T23:04:51-07:00 +draft = true +weight = 1 ++++ + +ITD has a config file. It's a TOML file that is, by default, at `/etc/itd.toml`. ITD will also search `~/.config/itd.toml` for a config and will choose the one in home if possible. + +ITD can also be configured with environment variables. They take priority over the config. Variable names should be formatted as follows: ITD_<config field>. For example, socket path is `socket.path` in the config, so it would be `ITD_SOCKET_PATH` as an environment variable. To change which transliterators to use, `ITD_NOTIFS_TRANSLIT_USE` would be the variable, since the config field is `notifs.translit.use`. + +In most cases, config edits come into effect immediately, and no restart of ITD is needed. \ No newline at end of file diff --git a/content/configuration/sections.md b/content/configuration/sections.md new file mode 100644 index 0000000..8c353c1 --- /dev/null +++ b/content/configuration/sections.md @@ -0,0 +1,105 @@ ++++ +title = "Sections" +date = 2021-10-23T23:04:51-07:00 +draft = true +weight = 2 ++++ + +This page is about the various sections in the config, their purpose, and how to use them. + +### cfg.version + +This field is temporary and was added because I changed the config format a while ago and wanted to make sure no one was still using the old config with a new version of ITD. + +--- + +### socket + +This section contains options for the control socket exposed by ITD. + +#### path + +This field is a string indicating the filepath at which the control socket should be opened. + +--- + +### conn + +The conn secton contains options for ITD's connection to the PineTime. + +#### reconnect + +This field is a boolean that dictates whether ITD will attempt to reconnect to the PineTime in case of a disconnect. + +--- + +### on.connect + +This section contains options for what happens when ITD first connects to a PineTime. + +#### notify + +This field is a boolean that dictates whether a notification should be sent to InfiniTime upon connection. + +--- + +### on.reconnect + +This section contains options for what happens when ITD reconnects to a PineTime after a disconnect. + +#### notify + +This field is a boolean that dictates whether a notification should be sent to InfiniTime upon reconnect. + +#### setTime + +This field is a boolean that dictates whether the time should be updated when ITD reconnects to InfiniTime. + +--- + +### notifs.translit + +#### use + +This field is an array of strings which sets which transliterators should be used when transliterating text. The full list of transliterators can be found [here](https://gitea.arsenm.dev/Arsen6331/itd#transliteration) in the readme. + +#### custom + +This field is an array of strings which is a custom transliteration map. It can replace anything with something else. For example: + +```toml +custom = [ + "test", "replaced", + "æ", "ae", + "ē", "e", +] +``` + +An array is used because Golang does not preserve the order of a map. + +--- + +### notifs.ignore + +#### sender + +This field is an array of strings which contains senders from which notifications are ignored. + +#### summary + +This field is an array of strings which contains notification summaries whose notifications will be ignored. + + +#### body  + +This field is an array of strings which contains notification bodies whose notifications will be ignored. + +--- + +### music + +This section contains options for music control + +#### vol.interval + +This field is an integer indicating how much the volume should be changed for each volume up or down event from the music control app. \ No newline at end of file diff --git a/content/getting-started/_index.md b/content/getting-started/_index.md new file mode 100644 index 0000000..da705d7 --- /dev/null +++ b/content/getting-started/_index.md @@ -0,0 +1,12 @@ ++++ +chapter = true +pre = "I. " +title = "Getting Started" +weight = 1 ++++ + +### Chapter I + +# Getting Started + +This chapter is about `itd`, its purpose, and what it does. It also includes a note about my age and ability to respond. \ No newline at end of file diff --git a/content/getting-started/features.md b/content/getting-started/features.md new file mode 100644 index 0000000..1a6a552 --- /dev/null +++ b/content/getting-started/features.md @@ -0,0 +1,37 @@ ++++ +title = "Features" +date = 2021-10-23T23:04:51-07:00 +draft = true +weight = 2 ++++ + +The list of features is mentioned [here](https://gitea.arsenm.dev/Arsen6331/itd#features) in the readme. This page will describe how certain features work and how new ones are added. + +### Notification Relay + +The notification relay works by listening for method calls on the `org.freedesktop.Notifications` DBus interface. Any such method call represents a notification being sent. ITD reads the data from the method call and creates a notification suitable for ANS (Alert Notification Service) which is used by InfniTime to display notifications. This means DBus must be installed and running for ITD to relay notifications. + +### Transliteration + +Transliteration for ITD is implemented in a custom `translit` package. It consists of a `Transliterator` interface which looks like this: + +```go +type Transliterator interface { + Transliterate(string) string + Init() +} +``` + +Anything that satisfies that interface can be added to the `Transliterators` map and then used in ITD's config in the `notifs.translit.use` array. + +### Music Control + +Music control is implemented using `playerctl` which uses the MPRIS DBus interface. This means it will work with any music player which supports MPRIS. `playerctl` must be installed for ITD to do music control. + +### Control Socket + +ITD exposes a UNIX socket at `/tmp/itd/socket` by default. This socket can be used to control the daemon. It is how `itctl` and `itgui` work. This can be used in any language which supports UNIX sockets which is nearly all of them. Even bash can be used with `netcat`. + +### New Features + +New features are added whenever I find out they exist from InfiniTime's repo or developers. This means ITD's master branch may contain features not yet released in InfiniTime. \ No newline at end of file diff --git a/content/getting-started/note.md b/content/getting-started/note.md new file mode 100644 index 0000000..ff53e6b --- /dev/null +++ b/content/getting-started/note.md @@ -0,0 +1,15 @@ ++++ +title = "Note" +date = 2021-10-23T22:55:22-07:00 +draft = true +weight = 3 ++++ + +This is a note for anyone using or planning to contribute to ITD. I am {{}}Loading...{{}} years old and, at times, may be busy with school and unable to answer questions and/or work on the project for a while. If you do not get an answer quickly, I am probably busy. However, I sometimes answer questions, comment on issues, or push code while in school. That means there may be pauses where I cannot answer questions or comment on issues because I am moving between classes or busy doing an assignment. Please do not bombard me with messages if this occurs, I will answer as soon as I can. + +{{}} + +{{}} \ No newline at end of file diff --git a/content/getting-started/purpose.md b/content/getting-started/purpose.md new file mode 100644 index 0000000..af4f8f4 --- /dev/null +++ b/content/getting-started/purpose.md @@ -0,0 +1,10 @@ ++++ +title = "Purpose" +date = 2021-10-23T22:34:32-07:00 +draft = true +weight = 1 ++++ + +ITD was created because I could not find a good InfiniTime companion for Linux. There is [Siglo](https://github.com/alexr4535/siglo) which cannot do much beyond syncing time and updating the watch and is not very reliable. There is [Amazfish](https://github.com/piggz/harbour-amazfish) which works, but at least for me, is a bit clunky and unreliable. + +I wanted something that was easy enough to use that I could just run it and forget about it, and had any feature I may want to use. Also, I needed it to work on Linux because I only own Linux devices, including my phone, which is a PinePhone. This leads to the next requirement. I needed it to be easily cross-compiled so that I could use it on all my computers as well as aarch64 devices such as my PinePhone and Raspberry Pi 4s. All of these reasons contributed to me deciding to make ITD and they are what I try to emphasize. \ No newline at end of file diff --git a/content/socket/API.md b/content/socket/API.md new file mode 100644 index 0000000..897fe82 --- /dev/null +++ b/content/socket/API.md @@ -0,0 +1,338 @@ ++++ +title = "API" +date = 2021-10-23T23:04:51-07:00 +draft = true +weight = 2 ++++ + +This page documents the API of ITD's control socket. + +## Request format + +Request sent to ITD's socket should be valid JSON with the following format: + +| Field | Type | +|-------|------| +| type | int | +| data | any | + +Example: + +```json +{"type": 5, "data": {"title": "title1", "body": "body1"}} +``` + +Sends notification titled "title1" with a body "body1". + +--- + +## Response format + +Responses received from ITD will be valid JSON and have the following format: + +| Field | Type | +|--------|--------| +| type | int | +| value? | any | +| msg? | string | +| id? | string | +| error | bool | + +(Fields marked with "?" may not exist in all responses) + +Examples: + +```json +{"type":1,"value":66,"error":false} +``` +```json +{"type":6,"msg":"Data required for settime request","error":true} +``` +```json +{"type":6,"error":false} +``` + +--- + +## Requests + +This section will document each request type, its response, and what data it needs. + +### Heart Rate + +The heart rate request's type is 0. It requires no data and returns a `uint8` in its value field. + +Example request: + +```json +{"type":0} +``` + +Example response: + +```json +{"type":0,"value":92,"error":false} +``` + +--- + +### Battery Level + +The battery level request's type is 1. It requires no data and returns a `uint8` in its value field. + +Example request: + +```json +{"type":1} +``` + +Example response: + +```json +{"type":1,"value":65,"error":false} +``` + +--- + +### Firmware Version + +The firmware version request's type is 2. It requires no data and returns a string in its value field. + +Example request: + +```json +{"type":2} +``` + +Example response: + +```json +{"type":2,"value":"1.6.0","error":false} +``` + +--- + +### Firmware Upgrade + +The firmware upgrade request's type is 3. It requires data in the following format: + +| Field | Type | +|-------|----------| +| type | int | +| files | []string | + +Example requests: + +```json +{"type": 3, "data": {"type": 0, "files": ["pinetime-mcuboot-app-dfu-1.6.0.zip"]}} +``` + +```json +{"type": 3, "data": {"type": 1, "files": ["pinetime-mcuboot-app-image-1.6.0.bin", "pinetime-mcuboot-app-image-1.6.0.dat"]}} +``` + +The paths need to be absolute. They are not absolute here as this is an example. + +Example response: + +```json +{"type":3,"value":{"sent":2800,"recvd":2800,"total":361152},"error":false} +``` + +Responses will be sent continuously until the transfer is complete. + +--- + +### Bluetooth Address + +The bluetooth address request's type is 4. It requires no data and returns a string in its value field. + +Example request: + +```json +{"type":4} +``` + +Example response: + +```json +{"type":4,"value":"ED:47:AC:47:F4:FB","error":false} +``` + +--- + +### Notify + +The notify request's type is 5. It reques data in the following format: + +| Field | Type | +|-------|--------| +| title | string | +| body | string | + +Example request: + +```json +{"type": 5, "data": {"title": "title1", "body": "body1"}} +``` + +Example response: + +```json +{"type":5,"error":false} +``` + +--- + +### Set Time + +The set time request's type is 6. It requires a string as data. The string must be a date and time formatted as ISO8601/RFC3339 or the string "now". + +Example requests: + +```json +{"type":6,"data":"2021-10-24T06:40:35-07:00"} +``` +```json +{"type":6,"data":"now"} +``` + +Example response: + +```json +{"type":6,"error":false} +``` + +--- + +### Watch Heart Rate + +The watch heart rate request's type is 7. It requires no data. It returns a uint8 as its value every time the heart rate changes until it is canceled via the cancel request. It also returns an ID for use with the cancel request. + +Example request: + +```json +{"type":7} +``` + +Example response: + +```json +{"type":7,"value":83,"id":"d12e2ec2-accd-400c-9da7-be86580b067f","error":false} +``` + +--- + +### Watch Battery Level + +The watch battery level request's type is 8. It requires no data. It returns a uint8 as its value every time the battery level changes until it is canceled via the cancel request. It also returns an ID for use with the cancel request. + +Example request: + +```json +{"type":8} +``` + +Example response: + +```json +{"type":8,"value":63,"id":"70cce449-d8b8-4e07-a000-0ca4ee7a9c42","error":false} +``` + +--- + +### Motion + +The motion request's type is 9. It requires no data. It returns data in the following format: + +| Field | Type | +|-------|--------| +| X | 1nt16 | +| Y | 1nt16 | +| Z | 1nt16 | + +The values will only update if the watch is not sleeping. + +Example request: + +```json +{"type":9} +``` + +Example response: + +```json +{"type":9,"value":{"X":-220,"Y":475,"Z":-893},"error":false} +``` + +--- + +### Watch Motion + +The watch motion request's type is 10. It requires no data. It returns the same data as the motion request as its value every time the watch moves until it is canceled via the cancel request. It also returns an ID for use with the cancel request. + +Example request: + +```json +{"type":10} +``` + +Example response: + +```json +{"type":10,"value":{"X":-220,"Y":475,"Z":-893},"id":"d084789d-9fdc-4fce-878b-4408cd616901","error":false} +``` + +--- + +### Step Count + +The step count request's type is 11. It requires no data and returns a `uint32` in its value field. + +Example request: + +```json +{"type":11} +``` + +Example response: + +```json +{"type":11,"value":1043,"error":false} +``` + +--- + +### Watch Step Count + +The watch step count request's type is 12. It requires no data. It returns a `uint32` in its value field every time the step count changes until it is canceled via the cancel request. It also returns an ID for use with the cancel request. + +Example request: + +```json +{"type":12} +``` + +Example response: + +```json +{"type":12,"value":1045,"id":"54583e8f-80f6-45e3-a97f-b111defc0edc","error":false} +``` + +--- + +### Cancel + +The cancel request's type is 13. It requires a string as data, containing the ID returned by a watch request. Once run, it will terminate the watch request, clean up anything it was using, and cause ITD to stop listening for its value from the watch. + +Example request: + +```json +{"type":13,"data":"54583e8f-80f6-45e3-a97f-b111defc0edc"} +``` + +Example response: + +```json +{"type":13,"error":false} +``` \ No newline at end of file diff --git a/content/socket/_index.md b/content/socket/_index.md new file mode 100644 index 0000000..c65457b --- /dev/null +++ b/content/socket/_index.md @@ -0,0 +1,12 @@ ++++ +chapter = true +pre = "III. " +title = "Socket" +weight = 3 ++++ + +### Chapter III + +# Socket + +This chapter will document the API of the control socket exposed by ITD. \ No newline at end of file diff --git a/content/socket/types.md b/content/socket/types.md new file mode 100644 index 0000000..40c0d27 --- /dev/null +++ b/content/socket/types.md @@ -0,0 +1,33 @@ ++++ +title = "Types" +date = 2021-10-23T23:04:51-07:00 +draft = true +weight = 1 ++++ + +When making a request to ITD or receiving a response from it, a type integer is used to indicate what kind of request is being made. This page will document the integers and what they mean. + +Here is a list of all the request types: + +```go +const ( + ReqTypeHeartRate = 0 + ReqTypeBattLevel = 1 + ReqTypeFwVersion = 2 + ReqTypeFwUpgrade = 3 + ReqTypeBtAddress = 4 + ReqTypeNotify = 5 + ReqTypeSetTime = 6 + ReqTypeWatchHeartRate = 7 + ReqTypeWatchBattLevel = 8 + ReqTypeMotion = 9 + ReqTypeWatchMotion = 10 + ReqTypeStepCount = 11 + ReqTypeWatchStepCount = 12 + ReqTypeCancel = 13 +) +``` + +The response types are always the same as the request type used. + +ITD uses Go's `iota` keyword to generate these numbers, but I have placed their actual values on this page to make it easier to use them in other languages. \ No newline at end of file diff --git a/layouts/partials/logo.html b/layouts/partials/logo.html new file mode 100644 index 0000000..bb56285 --- /dev/null +++ b/layouts/partials/logo.html @@ -0,0 +1 @@ +ITD \ No newline at end of file diff --git a/layouts/shortcodes/raw.html b/layouts/shortcodes/raw.html new file mode 100644 index 0000000..ed3fb8a --- /dev/null +++ b/layouts/shortcodes/raw.html @@ -0,0 +1 @@ +{{.Inner}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/.editorconfig b/themes/hugo-theme-relearn/.editorconfig new file mode 100644 index 0000000..12f0ef5 --- /dev/null +++ b/themes/hugo-theme-relearn/.editorconfig @@ -0,0 +1,16 @@ +# https://editorconfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +[*.js] +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/themes/hugo-theme-relearn/.github/actions/build_site/action.yaml b/themes/hugo-theme-relearn/.github/actions/build_site/action.yaml new file mode 100644 index 0000000..74efc99 --- /dev/null +++ b/themes/hugo-theme-relearn/.github/actions/build_site/action.yaml @@ -0,0 +1,14 @@ +name: Build site +description: Builds the Hugo exampleSite for later deploy on GitHub-Pages +runs: + using: composite + steps: + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + + - name: Build site + shell: bash + run: | + hugo --minify --source ${GITHUB_WORKSPACE}/exampleSite --destination ${GITHUB_WORKSPACE}/../public --cleanDestinationDir --gc --baseURL https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/ --theme ${GITHUB_WORKSPACE} diff --git a/themes/hugo-theme-relearn/.github/actions/check_milestone/action.yaml b/themes/hugo-theme-relearn/.github/actions/check_milestone/action.yaml new file mode 100644 index 0000000..2dda0ec --- /dev/null +++ b/themes/hugo-theme-relearn/.github/actions/check_milestone/action.yaml @@ -0,0 +1,73 @@ +name: Check milestone +description: Checks if the given milestone and its according tag are valid to be released +inputs: + milestone: + description: Milestone for this release + required: true + github_token: + description: Secret GitHub token + required: true +outputs: + outcome: + description: Result of the check, success or failure + value: ${{ steps.outcome.outputs.outcome }} +runs: + using: composite + steps: + - name: Get tag uniqueness + id: unique_tag + uses: mukunku/tag-exists-action@v1.0.0 + with: + tag: ${{ env.MILESTONE }} + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + + - name: Get closed issues for milestone + id: closed_issues + uses: octokit/graphql-action@v2.x + with: + query: | + query { + search(first: 1, type: ISSUE, query: "user:${{ github.repository_owner }} repo:${{ github.event.repository.name }} milestone:${{ env.MILESTONE }} state:closed") { + issueCount + } + } + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + + - name: Get open issues for milestone + id: open_issues + uses: octokit/graphql-action@v2.x + with: + query: | + query { + search(first: 1, type: ISSUE, query: "user:${{ github.repository_owner }} repo:${{ github.event.repository.name }} milestone:${{ env.MILESTONE }} state:open") { + issueCount + } + } + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + + - name: Set outcome + id: outcome + shell: bash + run: | + if [ "${{ fromJSON(steps.closed_issues.outputs.data).search.issueCount > 0 && fromJSON(steps.open_issues.outputs.data).search.issueCount == 0 && steps.unique_tag.outputs.exists == 'false' }}" = "true" ]; then + echo "::set-output name=outcome::success" + else + echo "::set-output name=outcome::failure" + fi + + - name: Log results and exit + shell: bash + run: | + echo outcome : ${{ steps.outcome.outputs.outcome }} + echo has unique tag : ${{ steps.unique_tag.outputs.exists == 'false' }} + echo has closed issues: ${{ fromJSON(steps.closed_issues.outputs.data).search.issueCount > 0 }} + echo has open issues : ${{ fromJSON(steps.open_issues.outputs.data).search.issueCount > 0 }} + if [ "${{ steps.outcome.outputs.outcome }}" = "failure" ]; then + exit 1 + fi diff --git a/themes/hugo-theme-relearn/.github/actions/deploy_site/action.yaml b/themes/hugo-theme-relearn/.github/actions/deploy_site/action.yaml new file mode 100644 index 0000000..b03cae0 --- /dev/null +++ b/themes/hugo-theme-relearn/.github/actions/deploy_site/action.yaml @@ -0,0 +1,17 @@ +name: Deploy site +description: Deploys a built site on GitHub-Pages +inputs: + github_token: + description: Secret GitHub token + required: true +runs: + using: composite + steps: + - name: Deploy site + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ env.GITHUB_TOKEN }} + publish_dir: ${{ env.GITHUB_WORKSPACE }}/../public + env: + GITHUB_TOKEN: ${{ inputs.github_token }} + GITHUB_WORKSPACE: ${{ github.workspace }} diff --git a/themes/hugo-theme-relearn/.github/actions/release_milestone/action.yaml b/themes/hugo-theme-relearn/.github/actions/release_milestone/action.yaml new file mode 100644 index 0000000..a16e9fa --- /dev/null +++ b/themes/hugo-theme-relearn/.github/actions/release_milestone/action.yaml @@ -0,0 +1,64 @@ +name: Release milestone +description: Creates a release with changelog and tag out of a given milestone +inputs: + milestone: + description: Milestone for this release + required: true + github_token: + description: Secret GitHub token + required: true +runs: + using: composite + steps: + - name: Setup node + uses: actions/setup-node@v2 + with: + node-version: '16' + + - name: Close milestone + uses: Akkjon/close-milestone@v2 + with: + milestone_name: ${{ env.MILESTONE }} + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + + - name: Create provisionary tag + shell: bash + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + git config user.name "GitHub Actions Bot" + git config user.email "<>" + git tag --message "" "$MILESTONE" + git push origin "$MILESTONE" + + - name: Update changelog + shell: bash + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + GREN_GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + npx github-release-notes@0.17.1 changelog --generate --override --tags=all + git add * + git commit --message "Ship tag $MILESTONE" + git push origin main + + - name: Create final tag + shell: bash + env: + MILESTONE: ${{ inputs.milestone }} + GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + git tag --force --message "" "$MILESTONE" + git push --force origin "$MILESTONE" + + - name: Publish release + shell: bash + env: + MILESTONE: ${{ inputs.milestone }} + GREN_GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + npx github-release-notes@0.17.1 release --tags "$MILESTONE" diff --git a/themes/hugo-theme-relearn/.github/contributing.md b/themes/hugo-theme-relearn/.github/contributing.md new file mode 100644 index 0000000..0bcbe39 --- /dev/null +++ b/themes/hugo-theme-relearn/.github/contributing.md @@ -0,0 +1,28 @@ +# Guidelines + +## For Development + +- help us putting your code into production by opening a meaningful issue +- stay simple for the user by focusing on the mantra "convention over configuration" +- at installation the site should work reasonable without (m)any configuration +- stay close to the Hugo way +- don't use npm or any preprocessing, our contributors may not be front-end developers +- document new features in exampleSite +- don't break existing features if you don't have to +- remove reported issue from the browser's console +- be compatible to IE11, at least for main functionality, for Javascript this means: + - test in IE11 + - check caniuse.com + - don't use arrow functions + - don't use template literals + - don't use other fancy new ES5/6 stuff + +## For Release + +- create releases following [semver policy](https://semver.org/) +- we are using GitHub actions to create new releases +- a release is based on a milestone named like the release itself - just the version number, eg: 1.1.0 +- remember that there have to be at least one closed issue assigned to the milestone +- the release action only runs successfully if all assigned issues for this milestone are closed +- the milestone itself will be closed during execution of the action +- a once released milestone can not be released again diff --git a/themes/hugo-theme-relearn/.github/workflows/build.yaml b/themes/hugo-theme-relearn/.github/workflows/build.yaml new file mode 100644 index 0000000..fd9ce5c --- /dev/null +++ b/themes/hugo-theme-relearn/.github/workflows/build.yaml @@ -0,0 +1,20 @@ +name: Build + +on: + push: # Build on all pushes but only deploy for main branch + pull_request: # Build on all PRs regardless what branch + workflow_dispatch: # Allow this task to be manually started (you'll never know) + +jobs: + ci: + name: Run build + runs-on: ubuntu-latest + if: github.event_name != 'push' || (github.event_name == 'push' && github.ref != 'refs/heads/main') + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + + - name: Build site + uses: ./.github/actions/build_site diff --git a/themes/hugo-theme-relearn/.github/workflows/deploy.yaml b/themes/hugo-theme-relearn/.github/workflows/deploy.yaml new file mode 100644 index 0000000..2434748 --- /dev/null +++ b/themes/hugo-theme-relearn/.github/workflows/deploy.yaml @@ -0,0 +1,25 @@ +name: Deploy + +on: + push: # Build on all pushes but only deploy for main branch + workflow_dispatch: # Allow this task to be manually started (you'll never know) + +jobs: + deploy: + name: Run deploy + runs-on: ubuntu-latest + if: github.event_name != 'push' || (github.event_name == 'push' && github.ref == 'refs/heads/main') + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Build site + uses: ./.github/actions/build_site + + - name: Deploy site + uses: ./.github/actions/deploy_site + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/themes/hugo-theme-relearn/.github/workflows/release.yaml b/themes/hugo-theme-relearn/.github/workflows/release.yaml new file mode 100644 index 0000000..1d32b59 --- /dev/null +++ b/themes/hugo-theme-relearn/.github/workflows/release.yaml @@ -0,0 +1,42 @@ +name: Release + +on: + workflow_dispatch: + inputs: + milestone: + description: 'Milestone for this release' + required: true + +jobs: + release: + name: Run release + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Check milestone + id: check + uses: ./.github/actions/check_milestone + with: + milestone: ${{ github.event.inputs.milestone }} + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Create release + if: ${{ steps.check.outputs.outcome == 'success' }} + uses: ./.github/actions/release_milestone + with: + milestone: ${{ github.event.inputs.milestone }} + github_token: ${{ secrets.GITHUB_TOKEN }} + + # We need to deploy the site again to show the updated changelog + - name: Build site + uses: ./.github/actions/build_site + + - name: Deploy site + uses: ./.github/actions/deploy_site + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/themes/hugo-theme-relearn/.gitignore b/themes/hugo-theme-relearn/.gitignore new file mode 100644 index 0000000..940323c --- /dev/null +++ b/themes/hugo-theme-relearn/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +public/ +exampleSite/public +exampleSite/hugo*.exe diff --git a/themes/hugo-theme-relearn/.grenrc.js b/themes/hugo-theme-relearn/.grenrc.js new file mode 100644 index 0000000..eeeffe2 --- /dev/null +++ b/themes/hugo-theme-relearn/.grenrc.js @@ -0,0 +1,36 @@ +module.exports = { + changelogFilename: "exampleSite/content/basics/CHANGELOG.md", + dataSource: "milestones", + groupBy: { + "Enhancements": [ + "feature", + ], + "Fixes": [ + "bug" + ], + "Maintenance": [ + "task", + ], + "Uncategorised": [ + "closed", + ], + }, + ignoreLabels: [ + "discussion", + "documentation", + "duplicate", + "hugo", + "invalid", + "support", + "wontfix", + ], + ignoreTagsWith: [ + "Relearn", + ], + milestoneMatch: "{{tag_name}}", + onlyMilestones: true, + template: { + group: "\n### {{heading}}\n", + release: ({ body, date, release }) => `## ${release} (` + date.replace( /(\d+)\/(\d+)\/(\d+)/, '$3-$2-$1' ) + `)\n${body}`, + }, +}; diff --git a/themes/hugo-theme-relearn/LICENSE b/themes/hugo-theme-relearn/LICENSE new file mode 100644 index 0000000..ce8a3bd --- /dev/null +++ b/themes/hugo-theme-relearn/LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) 2021 Sören Weber +Copyright (c) 2017 Valere JEANTET +Copyright (c) 2016 MATHIEU CORNIC +Copyright (c) 2014 Grav + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/themes/hugo-theme-relearn/README.md b/themes/hugo-theme-relearn/README.md new file mode 100644 index 0000000..993aedd --- /dev/null +++ b/themes/hugo-theme-relearn/README.md @@ -0,0 +1,52 @@ +# Hugo Relearn Theme + +A theme for [Hugo](https://gohugo.io/) designed for documentation. + +![Overview](https://github.com/McShelby/hugo-theme-relearn/raw/main/images/screenshot.png) + +## Motivation + +The theme initially was a fork of the great [Learn theme](https://github.com/matcornic/hugo-theme-learn) with the aim of fixing long outstanding bugs and adepting to latest Hugo features. As far as possible this theme tries to be a drop-in replacement for the Learn theme. + +## Main features + +- Automatic Search +- Multilingual mode +- Unlimited menu levels +- Automatic next/prev buttons to navigate through menu entries +- Image resizing, shadow… +- Attachments files +- List child pages +- Mermaid diagram (flowchart, sequence, gantt) +- Customizable look and feel and theme variants +- Buttons +- Tip/Note/Info/Warning boxes +- Expand +- Tabs +- File inclusion + +## Installation + +Visit the [installation instructions](https://mcshelby.github.io/hugo-theme-relearn/basics/installation) to learn how to setup the theme in your Hugo installation. + +## Usage + +Visit the [documentation](https://mcshelby.github.io/hugo-theme-relearn/) to learn about all available features and how to use them. + +## Changelog + +See the [changelog](https://mcshelby.github.io/hugo-theme-relearn/basics/history) for a complete list of releases. + +## Contribution + +You are most welcome to contribute to the source code but please visit the [contribution guidelines](https://github.com/McShelby/hugo-theme-relearn/blob/main/.github/contributing.md) first. + +## License + +This theme is licensed under the [MIT License](https://github.com/McShelby/hugo-theme-relearn/blob/main/LICENSE). + +## Credits + +Special thanks to [everyone who has contributed](https://github.com/McShelby/hugo-theme-relearn/graphs/contributors) to this project. + +Many thanks to [@matcornic](https://github.com/matcornic) for his work on the [Learn theme](https://github.com/matcornic/hugo-theme-learn). diff --git a/themes/hugo-theme-relearn/archetypes/chapter.md b/themes/hugo-theme-relearn/archetypes/chapter.md new file mode 100644 index 0000000..6669355 --- /dev/null +++ b/themes/hugo-theme-relearn/archetypes/chapter.md @@ -0,0 +1,12 @@ ++++ +chapter = true +pre = "X. " +title = "{{ replace .Name "-" " " | title }}" +weight = 5 ++++ + +### Chapter X + +# Some Chapter title + +Lorem Ipsum. \ No newline at end of file diff --git a/themes/hugo-theme-relearn/archetypes/default.md b/themes/hugo-theme-relearn/archetypes/default.md new file mode 100644 index 0000000..0af9e21 --- /dev/null +++ b/themes/hugo-theme-relearn/archetypes/default.md @@ -0,0 +1,6 @@ ++++ +title = "{{ replace .Name "-" " " | title }}" +weight = 5 ++++ + +Lorem Ipsum. \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/config.toml b/themes/hugo-theme-relearn/exampleSite/config.toml new file mode 100644 index 0000000..c7aba1f --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/config.toml @@ -0,0 +1,106 @@ +baseURL = "https://example.com" +canonifyURLs = true +languageCode = "en" +defaultContentLanguage = "en" + +title = "Hugo Relearn Documentation" +theme = "hugo-theme-relearn" +themesdir = "../.." +relativeURLs = true + +[params] + editURL = "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/" + description = "Documentation for Hugo Relearn Theme" + author = "Sören Weber" + showVisitedLinks = true + disableBreadcrumb = false + disableNextPrev = false + disableLandingPageButton = true + disableMermaid = false + titleSeparator = "::" + themeVariant = "relearn" + disableSeoHiddenPages = true + +[outputs] + home = ["HTML", "RSS", "JSON"] # add JSON to the home page to support lunr search + +[markup] + [markup.highlight] + style = "base16-snazzy" # choose a color theme or create your own + guessSyntax = false # if set to true, avoid unstyled code if no language was given but mermaid code fences will not work anymore + +[markup.goldmark.renderer] + unsafe= true + +[module] + [module.hugoVersion] + min = "0.25" + +[Languages] + [Languages.en] + title = "Documentation for Hugo Relearn Theme" + weight = 1 + languageName = "English" + landingPageURL = "/" + landingPageName = " Home" + + [[Languages.en.menu.shortcuts]] + name = " Tags" + url = "/tags/" + weight = 5 + + [[Languages.en.menu.shortcuts]] + name = " GitHub repo" + identifier = "ds" + url = "https://github.com/McShelby/hugo-theme-relearn" + weight = 10 + + [[Languages.en.menu.shortcuts]] + name = " Showcases" + url = "/showcase/" + weight = 11 + + [[Languages.en.menu.shortcuts]] + name = " Hugo Documentation" + identifier = "hugodoc" + url = "https://gohugo.io/" + weight = 20 + + [[Languages.en.menu.shortcuts]] + name = " Credits" + url = "/credits/" + weight = 30 + + [Languages.pir] + title = "Documentat'n fer Cap'n Hugo Relearrrn Theme" + weight = 1 + languageName = "Arrr! Pirrrates" + landingPageURL = "/pir/" + landingPageName = " Arrr! Home" + + [[Languages.pir.menu.shortcuts]] + name = " Arrr! Tags" + url = "/tags/" + weight = 5 + + [[Languages.pir.menu.shortcuts]] + name = " GitHub repo" + identifier = "ds" + url = "https://github.com/McShelby/hugo-theme-relearn" + weight = 10 + + [[Languages.pir.menu.shortcuts]] + name = " Showcases" + url = "/showcase/" + weight = 11 + + [[Languages.pir.menu.shortcuts]] + name = " Cap'n Hugo Documentat'n" + identifier = "hugodoc" + url = "https://gohugo.io/" + weight = 20 + + [[Languages.pir.menu.shortcuts]] + name = " Crrredits" + url = "/credits/" + weight = 30 diff --git a/themes/hugo-theme-relearn/exampleSite/content/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/_index.en.md new file mode 100644 index 0000000..2367c64 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/_index.en.md @@ -0,0 +1,52 @@ ++++ +title = "Relearn Theme for Hugo" ++++ + +# Hugo Relearn Theme + +The [Relearn theme](http://github.com/McShelby/hugo-theme-relearn) is a theme for [Hugo](https://gohugo.io/), a static website generator written in Go. Where Hugo is often used for blogs, this theme is designed with documentation in mind. + +{{% notice info %}} +The theme initially was a fork of the great [Learn theme](https://github.com/matcornic/hugo-theme-learn) with the aim of fixing long outstanding bugs and adepting to latest Hugo features. As far as possible this theme tries to be a drop-in replacement for Learn theme. +{{% /notice %}} + +## Main features + +{{% notice tip %}} +See [what's new]({{% relref "basics/migration" %}}) within the latest update. +{{% /notice %}} + +* [Automatic Search]({{%relref "basics/configuration/_index.md#activate-search" %}}) +* [Multilingual mode]({{%relref "cont/i18n" %}}) +* Unlimited menu levels +* Automatic next/prev buttons to navigate through menu entries +* [Image resizing, shadow...]({{%relref "cont/markdown#images" %}}) +* [Attachments files]({{%relref "shortcodes/attachments" %}}) +* [List child pages]({{%relref "shortcodes/children" %}}) +* [Mermaid diagram]({{%relref "shortcodes/mermaid" %}}) (flowchart, sequence, gantt) +* [Customizable look and feel and theme variants]({{%relref "basics/customization"%}}) +* [Buttons]({{%relref "shortcodes/button" %}}) +* [Tip/Note/Info/Warning boxes]({{%relref "shortcodes/notice" %}}) +* [Expand]({{%relref "shortcodes/expand" %}}) +* [Tabs]({{%relref "shortcodes/tabs" %}}) +* [File inclusion]({{%relref "shortcodes/include" %}}) + +![Screenshot](https://github.com/McShelby/hugo-theme-relearn/raw/main/images/screenshot.png?width=40pc&classes=shadow) + +## Getting support + +To get support, feel free to open a new [discussion topic](https://github.com/McShelby/hugo-theme-relearn/discussions) or [issue](https://github.com/McShelby/hugo-theme-relearn/issues) in the official repository on GitHub. + +## Become a contributor + +Feel free to update this documentation by just clicking the **Edit this page** link displayed on top right of each page. Your changes will be deployed automatically once they were reviewed. + +You are most welcome to contribute bugfixes or even new features to the source code by making pull requests to the [official repository](https://github.com/McShelby/hugo-theme-relearn) via GitHub. Please visit the [contribution guidelines](https://github.com/McShelby/hugo-theme-relearn/blob/main/.github/contributing.md) first. + +## License + +This theme is licensed under the [MIT License](https://github.com/McShelby/hugo-theme-relearn/blob/main/LICENSE). + +## Credits + +This theme would not be possible without the work of many others. See the [credits]({{%relref "credits" %}}) for a detailed list. diff --git a/themes/hugo-theme-relearn/exampleSite/content/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/_index.pir.md new file mode 100644 index 0000000..a7a41f9 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/_index.pir.md @@ -0,0 +1,4 @@ ++++ +title = "Relearrrn Theme fer Cap'n Hugo" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/CHANGELOG.md b/themes/hugo-theme-relearn/exampleSite/content/basics/CHANGELOG.md new file mode 100644 index 0000000..5cf2e23 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/CHANGELOG.md @@ -0,0 +1,228 @@ +# Changelog + +## 2.6.0 (2021-10-21) + +### Fixes + +- [**bug**] theme: generate correct links if theme served from subdirectory [#120](https://github.com/McShelby/hugo-theme-relearn/issues/120) + ++++ + +## 2.5.1 (2021-10-12) + +### Fixes + +- [**bug**] security: fix XSS for malicioius image URLs [#117](https://github.com/McShelby/hugo-theme-relearn/issues/117) + ++++ + +## 2.5.0 (2021-10-08) + +### Enhancements + +- [**feature**] syntax highlight: provide default colors for unknown languages [#113](https://github.com/McShelby/hugo-theme-relearn/issues/113) + +### Fixes + +- [**bug**] security: fix XSS for malicioius URLs [#114](https://github.com/McShelby/hugo-theme-relearn/issues/114) +- [**bug**] menu: write correct local shortcut links [#112](https://github.com/McShelby/hugo-theme-relearn/issues/112) + ++++ + +## 2.4.1 (2021-10-07) + +### Fixes + +- [**bug**] theme: remove runtime styles from print [#111](https://github.com/McShelby/hugo-theme-relearn/issues/111) + ++++ + +## 2.4.0 (2021-10-07) + +### Enhancements + +- [**feature**] lang: add vietnamese translation [#109](https://github.com/McShelby/hugo-theme-relearn/issues/109) +- [**feature**] theme: simplify stylesheet for color variants [#107](https://github.com/McShelby/hugo-theme-relearn/issues/107) +- [**feature**] hidden pages: remove from RSS feed, JSON, taxonomy etc [#102](https://github.com/McShelby/hugo-theme-relearn/issues/102) +- [**feature**] theme: announce alternative content in header [#101](https://github.com/McShelby/hugo-theme-relearn/issues/101) +- [**feature**] menu: frontmatter option to change sort predicate [#98](https://github.com/McShelby/hugo-theme-relearn/issues/98) +- [**feature**] menu: add default setting for menu expansion [#97](https://github.com/McShelby/hugo-theme-relearn/issues/97) +- [**feature**] theme: improve print style [#93](https://github.com/McShelby/hugo-theme-relearn/issues/93) +- [**feature**] theme: improve style [#92](https://github.com/McShelby/hugo-theme-relearn/issues/92) + +### Fixes + +- [**bug**] include: don't generate additional HTML if file should be displayed "as is" [#110](https://github.com/McShelby/hugo-theme-relearn/issues/110) +- [**bug**] attachments: fix broken links if multilang config is used [#105](https://github.com/McShelby/hugo-theme-relearn/issues/105) +- [**bug**] theme: fix sticky header to remove horizontal scrollbar [#82](https://github.com/McShelby/hugo-theme-relearn/issues/82) + +### Maintenance + +- [**task**] chore: update fontawesome [#94](https://github.com/McShelby/hugo-theme-relearn/issues/94) + ++++ + +## 2.3.2 (2021-09-20) + +### Fixes + +- [**bug**] docs: rename history pirate translation [#91](https://github.com/McShelby/hugo-theme-relearn/issues/91) + ++++ + +## 2.3.1 (2021-09-20) + +### Fixes + +- [**bug**] docs: rename english pirate translation to avoid crash on rendering [#90](https://github.com/McShelby/hugo-theme-relearn/issues/90) + ++++ + +## 2.3.0 (2021-09-13) + +### Fixes + +- [**bug**] theme: fix usage of section element [#88](https://github.com/McShelby/hugo-theme-relearn/issues/88) + +### Maintenance + +- [**task**] theme: ensure IE11 compatiblity [#89](https://github.com/McShelby/hugo-theme-relearn/issues/89) +- [**task**] docs: Arrr! showcase multilang featurrre [#87](https://github.com/McShelby/hugo-theme-relearn/issues/87) + ++++ + +## 2.2.0 (2021-09-09) + +### Enhancements + +- [**feature**] sitemap: hide hidden pages from sitemap and SEO indexing [#85](https://github.com/McShelby/hugo-theme-relearn/issues/85) + +### Fixes + +- [**bug**] theme: fix showVisitedLinks in case Hugo is configured to modify relative URLs [#86](https://github.com/McShelby/hugo-theme-relearn/issues/86) + +### Maintenance + +- [**task**] theme: switch from data-vocabulary to schema [#84](https://github.com/McShelby/hugo-theme-relearn/issues/84) + ++++ + +## 2.1.0 (2021-09-07) + +### Enhancements + +- [**feature**] search: open expand if it contains search term [#80](https://github.com/McShelby/hugo-theme-relearn/issues/80) +- [**feature**] menu: scroll active item into view [#79](https://github.com/McShelby/hugo-theme-relearn/issues/79) +- [**feature**] search: disable search in hidden pages [#76](https://github.com/McShelby/hugo-theme-relearn/issues/76) +- [**feature**] search: improve readablility of index.json [#75](https://github.com/McShelby/hugo-theme-relearn/issues/75) +- [**feature**] search: increase performance [#74](https://github.com/McShelby/hugo-theme-relearn/issues/74) +- [**feature**] search: improve search context preview [#73](https://github.com/McShelby/hugo-theme-relearn/issues/73) + +### Fixes + +- [**bug**] search: hide non-site content [#81](https://github.com/McShelby/hugo-theme-relearn/issues/81) +- [**bug**] menu: always hide hidden sub pages [#77](https://github.com/McShelby/hugo-theme-relearn/issues/77) + ++++ + +## 2.0.0 (2021-08-28) + +### Enhancements + +- [**feature**] tabs: enhance styling [#65](https://github.com/McShelby/hugo-theme-relearn/issues/65) +- [**feature**] theme: improve readability [#64](https://github.com/McShelby/hugo-theme-relearn/issues/64) +- [**feature**] menu: show hidden pages if accessed directly [#60](https://github.com/McShelby/hugo-theme-relearn/issues/60) +- [**feature**] theme: treat pages without title as hidden [#59](https://github.com/McShelby/hugo-theme-relearn/issues/59) +- [**feature**] search: show search results if field gains focus [#58](https://github.com/McShelby/hugo-theme-relearn/issues/58) +- [**feature**] theme: add partial templates for pre/post menu entries [#56](https://github.com/McShelby/hugo-theme-relearn/issues/56) +- [**feature**] theme: make chapter archetype more readable [#55](https://github.com/McShelby/hugo-theme-relearn/issues/55) +- [**feature**] children: add parameter for container style [#53](https://github.com/McShelby/hugo-theme-relearn/issues/53) +- [**feature**] theme: make content a template [#50](https://github.com/McShelby/hugo-theme-relearn/issues/50) +- [**feature**] menu: control menu expansion with alwaysopen parameter [#49](https://github.com/McShelby/hugo-theme-relearn/issues/49) +- [**feature**] include: new shortcode to include other files [#43](https://github.com/McShelby/hugo-theme-relearn/issues/43) +- [**feature**] theme: adjust print styles [#35](https://github.com/McShelby/hugo-theme-relearn/issues/35) +- [**feature**] code highligher: switch to standard hugo highlighter [#32](https://github.com/McShelby/hugo-theme-relearn/issues/32) + +### Fixes + +- [**bug**] arrow-nav: default sorting ignores ordersectionsby [#63](https://github.com/McShelby/hugo-theme-relearn/issues/63) +- [**bug**] children: default sorting ignores ordersectionsby [#62](https://github.com/McShelby/hugo-theme-relearn/issues/62) +- [**bug**] arrow-nav: fix broken links on (and below) hidden pages [#61](https://github.com/McShelby/hugo-theme-relearn/issues/61) +- [**bug**] theme: remove superflous singular taxonomy from taxonomy title [#46](https://github.com/McShelby/hugo-theme-relearn/issues/46) +- [**bug**] theme: missing --MENU-HOME-LINK-HOVER-color in documentation [#45](https://github.com/McShelby/hugo-theme-relearn/issues/45) +- [**bug**] theme: fix home link when base URL has some path [#44](https://github.com/McShelby/hugo-theme-relearn/issues/44) + +### Maintenance + +- [**task**] docs: include changelog in exampleSite [#33](https://github.com/McShelby/hugo-theme-relearn/issues/33) + ++++ + +## 1.2.0 (2021-07-26) + +### Enhancements + +- [**feature**] theme: adjust copy-to-clipboard [#29](https://github.com/McShelby/hugo-theme-relearn/issues/29) +- [**feature**] attachments: adjust style between notice boxes and attachments [#28](https://github.com/McShelby/hugo-theme-relearn/issues/28) +- [**feature**] theme: adjust blockquote contrast [#27](https://github.com/McShelby/hugo-theme-relearn/issues/27) +- [**feature**] expand: add option to open on page load [#25](https://github.com/McShelby/hugo-theme-relearn/issues/25) +- [**feature**] expand: rework styling [#24](https://github.com/McShelby/hugo-theme-relearn/issues/24) +- [**feature**] attachments: sort output [#23](https://github.com/McShelby/hugo-theme-relearn/issues/23) +- [**feature**] notice: make restyling of notice boxes more robust [#20](https://github.com/McShelby/hugo-theme-relearn/issues/20) +- [**feature**] notice: fix contrast issues [#19](https://github.com/McShelby/hugo-theme-relearn/issues/19) +- [**feature**] notice: align box colors to common standards [#18](https://github.com/McShelby/hugo-theme-relearn/issues/18) +- [**feature**] notice: use distinct icons for notice box type [#17](https://github.com/McShelby/hugo-theme-relearn/issues/17) + +### Fixes + +- [**bug**] attachments: support i18n for attachment size [#21](https://github.com/McShelby/hugo-theme-relearn/issues/21) +- [**bug**] notice: support i18n for box labels [#16](https://github.com/McShelby/hugo-theme-relearn/issues/16) +- [**bug**] notice: support multiple blocks in one box [#15](https://github.com/McShelby/hugo-theme-relearn/issues/15) + +### Maintenance + +- [**task**] dependency: upgrade jquery to 3.6.0 [#30](https://github.com/McShelby/hugo-theme-relearn/issues/30) + ++++ + +## 1.1.1 (2021-07-04) + +### Maintenance + +- [**task**] theme: prepare for new hugo theme registration [#13](https://github.com/McShelby/hugo-theme-relearn/issues/13) + ++++ + +## 1.1.0 (2021-07-02) + +### Enhancements + +- [**feature**] mermaid: expose options in config.toml [#4](https://github.com/McShelby/hugo-theme-relearn/issues/4) + +### Fixes + +- [**bug**] mermaid: config option for CDN url not used [#12](https://github.com/McShelby/hugo-theme-relearn/issues/12) +- [**bug**] mermaid: only highlight text in HTML elements [#10](https://github.com/McShelby/hugo-theme-relearn/issues/10) +- [**bug**] mermaid: support pan & zoom for graphs [#9](https://github.com/McShelby/hugo-theme-relearn/issues/9) +- [**bug**] mermaid: code fences not always rendered [#6](https://github.com/McShelby/hugo-theme-relearn/issues/6) +- [**bug**] mermaid: search term on load may bomb chart [#5](https://github.com/McShelby/hugo-theme-relearn/issues/5) + +### Maintenance + +- [**task**] mermaid: update to 8.10.2 [#7](https://github.com/McShelby/hugo-theme-relearn/issues/7) + ++++ + +## 1.0.1 (2021-07-01) + +### Maintenance + +- [**task**] Prepare for hugo showcase [#3](https://github.com/McShelby/hugo-theme-relearn/issues/3) + ++++ + +## 1.0.0 (2021-07-01) + +### Maintenance + +- [**task**] Fork project [#1](https://github.com/McShelby/hugo-theme-relearn/issues/1) diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/_index.en.md new file mode 100755 index 0000000..4d67f9b --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/_index.en.md @@ -0,0 +1,11 @@ ++++ +chapter = true +title = "Basics" +weight = 1 ++++ + +### Chapter 1 + +# Basics + +Discover what this Hugo theme is all about and the core-concepts behind it. diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/_index.pir.md new file mode 100644 index 0000000..3ffb2d4 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/_index.pir.md @@ -0,0 +1,6 @@ ++++ +chapter = true +title = "Basics" +weight = 1 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.en.md new file mode 100644 index 0000000..40e0c47 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.en.md @@ -0,0 +1,135 @@ ++++ +title = "Configuration" +weight = 20 ++++ + +## Global site parameters + +On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), the Relearn theme lets you define the following parameters in your `config.toml` (here, values are default). + +Note that some of these parameters are explained in details in other sections of this documentation. + +```toml +[params] + # This controls whether submenus will be expanded (true), or collapsed (false) in the + # menu; if no setting is given, the first menu level is set to false, all others to true; + # this can be overridden in the pages frontmatter + alwaysopen = true + # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page. + # Useful to give opportunity to people to create merge request for your doc. + # See the config.toml file from this documentation site to have an example. + editURL = "" + # Author of the site, will be used in meta information + author = "" + # Description of the site, will be used in meta information + description = "" + # Shows a checkmark for visited pages on the menu + showVisitedLinks = false + # Disable search function. It will hide search bar + disableSearch = false + # Disable search in hidden pages, otherwise they will be shown in search box + disableSearchHiddenPages = false + # Disables hidden pages from showing up in the sitemap and on Google (et all), otherwise they may be indexed by search engines + disableSeoHiddenPages = false + # Disables hidden pages from showing up on the tags page although the tag term will be displayed even if all pages are hidden + disableTagHiddenPages = false + # Javascript and CSS cache are automatically busted when new version of site is generated. + # Set this to true to disable this behavior (some proxies don't handle well this optimization) + disableAssetsBusting = false + # Set this to true to disable copy-to-clipboard button for inline code. + disableInlineCopyToClipBoard = false + # A title for shortcuts in menu is set by default. Set this to true to disable it. + disableShortcutsTitle = false + # If set to false, a Home button will appear below the search bar on the menu. + # It is redirecting to the landing page of the current language if specified. (Default is "/") + disableLandingPageButton = true + # When using mulitlingual website, disable the switch language button. + disableLanguageSwitchingButton = false + # Hide breadcrumbs in the header and only show the current page title + disableBreadcrumb = true + # If set to true, prevents Hugo from including the Mermaid module if not needed (will reduce load times and traffic) + disableMermaid = false + # Specifies the remote location of the Mermaid js + customMermaidURL = "https://unpkg.com/mermaid@8.8.0/dist/mermaid.min.js" + # Initialization parameter for Mermaid, see Mermaid documentation + mermaidInitialize = "{ \"theme\": \"default\" }" + # Hide Next and Previous page buttons normally displayed full height beside content + disableNextPrev = true + # Order sections in menu by "weight" or "title". Default to "weight"; + # this can be overridden in the pages frontmatter + ordersectionsby = "weight" + # Change default color scheme with a variant one. Can be "red", "blue", "green". + themeVariant = "" + # Provide a list of custom css files to load relative from the `static/` folder in the site root. + custom_css = ["css/foo.css", "css/bar.css"] + # Change the title separator. Default to "::". + titleSeparator = "-" +``` + +## A word on running your site in a subfolder + +The theme runs best if your site is installed in the root of your webserver. If your site is served from a subfolder, eg. `https://example.com/mysite/`, you have to set the following lines to your `config.toml` + +````toml +baseURL = "https://example.com/mysite/" +canonifyURLs = true +```` + +Without `canonifyURLs=true` URLs in sublemental pages (like `sitemap.xml`, `rss.xml`) will be generated falsly while your HTML files will still work. See https://github.com/gohugoio/hugo/issues/5226. + +## Activate search + +If not already present, add the follow lines in the same `config.toml` file. + +```toml +[outputs] +home = [ "HTML", "RSS", "JSON"] +``` + +Relearn theme uses the last improvement available in hugo version 20+ to generate a json index file ready to be consumed by lunr.js javascript search engine. + +> Hugo generate lunrjs index.json at the root of public folder. +> When you build the site with `hugo server`, hugo generates it internally and of course it doesn’t show up in the filesystem + +## Mermaid + +The Mermaid configuration parameters can also be set on a specific page. In this case, the global parameter would be overwritten by the local one. See [Mermaid]({{< relref "shortcodes/mermaid.md" >}}) for additional documentation. + +> Example: +> +> Mermaid is globally disabled. By default it won't be loaded by any page. +> On page "Architecture" you need a class diagram. You can set the Mermaid parameters locally to only load mermaid on this page (not on the others). + +You also can disable Mermaid for specific pages while globally enabled. + +## Home Button Configuration + +If the `disableLandingPageButton` option is set to `false`, a Home button will appear +on the left menu. It is an alternative for clicking on the logo. To edit the +appearance, you will have to configure two parameters for the defined languages: + +```toml +[Lanugages] +[Lanugages.en] +... +landingPageURL = "/" +landingPageName = " Home" +... +[Lanugages.pir] +... +landingPageURL = "/pir/" +landingPageName = " Arrr! Homme" +... +``` + +If those params are not configured for a specific language, they will get their +default values: + +```toml +landingPageURL = "/" +landingPageName = " Home" +``` + +The home button is going to look like this: + +![Default Home Button](/basics/configuration/images/home_button_defaults.png?width=100%) diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.pir.md new file mode 100644 index 0000000..5849920 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Configurrrat'n" +weight = 20 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/images/home_button_defaults.png b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/images/home_button_defaults.png new file mode 100644 index 0000000..4d9cf58 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/configuration/images/home_button_defaults.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.en.md new file mode 100644 index 0000000..b9dab23 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.en.md @@ -0,0 +1,133 @@ ++++ +title = "Customization" +weight = 25 ++++ + +The Relearn theme has been built to be as configurable as possible by defining multiple [partials](https://gohugo.io/templates/partials/) + +In `themes/hugo-theme-relearn/layouts/partials/`, you will find all the partials defined for this theme. If you need to overwrite something, don't change the code directly. Instead [follow this page](https://gohugo.io/themes/customizing/). You'd create a new partial in the `layouts/partials` folder of your local project. This partial will have the priority. + +This theme defines the following partials : + +- *content*: the content page itself. This can be overridden if you wan't to display page's meta data above or below the content. +- *header*: the header of the content page (contains the breadcrumbs). _Not meant to be overwritten_ +- *custom-header*: custom headers in page. Meant to be overwritten when adding CSS imports. Don't forget to include `style` HTML tag directive in your file +- *footer*: the footer of the content page (contains the arrows). _Not meant to be overwritten_ +- *custom-footer*: custom footer in page. Meant to be overwritten when adding Javacript. Don't forget to include `javascript` HTML tag directive in your file +- *favicon*: the favicon +- *logo*: the logo, on top left hand corner. +- *meta*: HTML meta tags, if you want to change default behavior +- *menu*: left menu. _Not meant to be overwritten_ +- *menu-pre*: side-wide configuration to prepend to menu items. If you override this, it is your responsiblity to take the page's `pre` setting into account. +- *menu-post*: side-wide configuration to append to menu items. If you override this, it is your responsiblity to take the page's `post` setting into account. +- *menu-footer*: footer of the the left menu +- *search*: search box +- *toc*: table of contents + +## Change the logo + +Create a new file in `layouts/partials/` named `logo.html`. Then write any HTML you want. +You could use an `img` HTML tag and reference an image created under the *static* folder, or you could paste a SVG definition! + +{{% notice note %}} +The size of the logo will adapt automatically +{{% /notice %}} + +## Change the favicon + +If your favicon is a png, just drop off your image in your local `static/images/` folder and name it `favicon.png` + +If you need to change this default behavior, create a new file in `layouts/partials/` named `favicon.html`. Then write something like this: + +```html + +``` + +## Change default colors {#theme-variant} + +The Relearn theme let you choose between some predefined color scheme variants, but feel free to add one yourself! + +### Standard variant + +```toml +[params] + # Change default color scheme with a variant one. Can be empty, "red", "blue", "green". + themeVariant = "" +``` + +![Red variant](/basics/customization/images/standard-variant.png?width=60pc) + +### Red variant + +```toml +[params] + # Change default color scheme with a variant one. Can be empty, "red", "blue", "green". + themeVariant = "red" +``` + +![Red variant](/basics/customization/images/red-variant.png?width=60pc) + +### Blue variant + +```toml +[params] + # Change default color scheme with a variant one. Can be empty, "red", "blue", "green". + themeVariant = "blue" +``` + +![Blue variant](/basics/customization/images/blue-variant.png?width=60pc) + +### Green variant + +```toml +[params] + # Change default color scheme with a variant one. Can be empty, "red", "blue", "green". + themeVariant = "green" +``` + +![Green variant](/basics/customization/images/green-variant.png?width=60pc) + +### 'Mine‘ variant + +First, create a new CSS file in your local `static/css` folder prefixed by `theme` (e.g. with _mine_ theme `static/css/theme-mine.css`). Copy the following content and modify colors in CSS variables. + +```css +:root { + --MAIN-TEXT-color: #323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */ + --MAIN-LINK-color: #1C90F3; /* Color of links */ + --MAIN-LINK-HOVER-color: #167ad0; /* Color of hovered links */ + --MAIN-ANCHOR-color: #1C90F3; /* color of anchors on titles */ + + --MAIN-CODE-color: #e2e4e5; /* fallback color for code background */ + --MAIN-CODE-BG-color: #282a36; /* fallback color for code text */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color: #1C90F3; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #33a1ff; /*Color of menu header border */ + + --MENU-SEARCH-BG-color: #167ad0; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #33a1ff; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #a1d2fd; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color: #20272b; /* Background color of the active section and its children */ + --MENU-SECTIONS-BG-color: #252c31; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #33a1ff; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #20272b; /* Color of
separator in menu */ +} +``` + +Then, set the `themeVariant` value with the name of your custom theme file. That's it! + +```toml +[params] + # Change default color scheme with a variant one. Can be "red", "blue", "green". + themeVariant = "mine" +``` diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.pir.md new file mode 100644 index 0000000..03cd9da --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Customizat'n" +weight = 25 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/blue-variant.png b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/blue-variant.png new file mode 100644 index 0000000..9d27712 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/blue-variant.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/green-variant.png b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/green-variant.png new file mode 100644 index 0000000..d7c288c Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/green-variant.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/red-variant.png b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/red-variant.png new file mode 100644 index 0000000..69b6073 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/red-variant.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/standard-variant.png b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/standard-variant.png new file mode 100644 index 0000000..04baacd Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/customization/images/standard-variant.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.en.md new file mode 100644 index 0000000..d238f41 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.en.md @@ -0,0 +1,5 @@ ++++ +title = "History" +weight = 30 ++++ +{{% include "basics/CHANGELOG.md" false %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.pir.md new file mode 100644 index 0000000..844a9c1 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/history/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Historrry" +weight = 30 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.en.md new file mode 100644 index 0000000..292f26d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.en.md @@ -0,0 +1,102 @@ ++++ +title = "Installation" +weight = 15 ++++ + +The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you learn more about it by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/). + +## Create your project + +Hugo provides a `new` command to create a new website. + +``` +hugo new site +``` + +## Install the theme + +Install the Relearn theme by following [this documentation](https://gohugo.io/getting-started/quick-start/#step-3-add-a-theme) + +This theme's repository is: https://github.com/McShelby/hugo-theme-relearn.git + +Alternatively, you can [download the theme as .zip](https://github.com/McShelby/hugo-theme-relearn/archive/main.zip) file and extract it in the `themes` directory + +## Basic configuration + +When building the website, you can set a theme by using `--theme` option. However, we suggest you modify the configuration file (`config.toml`) and set the theme as the default. You can also add the `[outputs]` section to enable the search functionality. + +```toml +# Change the default theme to be use when building the site with Hugo +theme = "hugo-theme-relearn" + +# For search functionality +[outputs] +home = [ "HTML", "RSS", "JSON"] +``` + +## Create your first chapter page + +Chapters are pages that contain other child pages. It has a special layout style and usually just contains a _chapter name_, the _title_ and a _brief abstract_ of the section. + +```markdown +### Chapter 1 + +# Basics + +Discover what this Hugo theme is all about and the core concepts behind it. +``` + +renders as + +![A Chapter](/basics/installation/images/chapter.png?classes=shadow&width=60pc) + +The Relearn theme provides archetypes to create skeletons for your website. Begin by creating your first chapter page with the following command + +```shell +hugo new --kind chapter basics/_index.md +``` + +By opening the given file, you should see the property `chapter=true` on top, meaning this page is a _chapter_. + +By default all chapters and pages are created as a draft. If you want to render these pages, remove the property `draft: true` from the metadata. + +## Create your first content pages + +Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter: + +```shell +hugo new basics/first-content.md +hugo new basics/second-content/_index.md +``` + +Feel free to edit those files by adding some sample content and replacing the `title` value in the beginning of the files. + +## Launching the website locally + +Launch by using the following command: + +```shell +hugo serve +``` + +Go to `http://localhost:1313` + +You should notice three things: + +1. You have a left-side **Basics** menu, containing two submenus with names equal to the `title` properties in the previously created files. +2. The home page explains how to customize it by following the instructions. +3. When you run `hugo serve`, when the contents of the files change, the page automatically refreshes with the changes. Neat! + +## Build the website + +When your site is ready to deploy, run the following command: + +```shell +hugo +``` + +A `public` folder will be generated, containing all static content and assets for your website. It can now be deployed on any web server. + +{{% notice note %}} +This website can be automatically published and hosted with [Netlify](https://www.netlify.com/) (Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)). Alternatively, you can use [GitHub pages](https://gohugo.io/hosting-and-deployment/hosting-on-github/) +{{% /notice %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.pir.md new file mode 100644 index 0000000..c23fc58 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Installat'n" +weight = 15 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/installation/images/chapter.png b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/images/chapter.png new file mode 100644 index 0000000..bf4b43c Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/installation/images/chapter.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.en.md new file mode 100644 index 0000000..2feab51 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.en.md @@ -0,0 +1,92 @@ ++++ +title = "What's new" +weight = 2 ++++ + +This document shows you what's new in the latest release. For a detailed list of changes, see the [history page]({{%relref "basics/history" %}}). + +**Breaking**: A change that requires action by you after upgrading to assure the site is still functional. + +**Change**: A change in default behavior. This may requires action by you / may or may not be revertable by configuration. + +**New**: Marks new behavior you might find interesting or comes configurable. + ++++ + +## 2.6.0 + +- **New**: Your site can now be served from a subfolder if you set `baseURL` and `canonifyURLs=true` in your `config.toml`. See the [documentation]({{% relref "basics/configuration/#a-word-on-running-your-site-in-a-subfolder" %}}) for a detailed example. + ++++ + +## 2.5.0 + +- **Change**: Add new colors `--MAIN-CODE-color` and `--MAIN-CODE-BG-color` for syntax highlightning fallback in your stylesheet in case `guessSyntax=true` is set. Ideally they are set to the same values as the ones from your chosen chroma style. + ++++ + +## 2.4.0 + +- **Change**: Creation of customized stylesheets was simplified down to only contain the CSS variables. Everything else can and should be deleted from your custom stylesheet to assure everything works fine. For the predefined stylesheet variants, this change is already included. The [documentation]({{%relref "basics/customization/#mine-variant" %}}) was adjusted accordingly. + +- **New**: Hidden pages are displayed by default in their according tags page. You can now turn off this behavior by setting `disableTagHiddenPages=true` in your `config.toml`. + +- **New**: You can define the expansion state of your menus for the whole site by setting the `alwaysopen` option in your `config.toml`. Please see further [documentation]({{%relref "cont/pages/#override-expand-state-rules-for-menu-entries" %}}) for possible values and default behavior. + +- **New**: New frontmatter `ordersectionsby` option to change immediate children sorting in menu and `children` shortcode. Possible values are `title` or `weight`. + +- **New**: Alternate content of a page is now advertised in the HTML meta tags. See [Hugo documentation](https://gohugo.io/templates/rss/#reference-your-rss-feed-in-head). + ++++ + +## 2.2.0 + +- **New**: Hidden pages are displayed by default in the sitemap generated by Hugo and are therefore visible for search engine indexing. You can now turn off this behavior by setting `disableSeoHiddenPages=true` in your `config.toml`. + ++++ + +## 2.1.0 + +- **Change**: In case the site's structure contains addional *.md files not part of the site (eg files that are meant to be included by site pages - see CHANGELOG.md in exampleSite), they will now be ignored by the search. + +- **New**: Hidden pages are indexed for the site search by default. You can now turn off this behavior by setting `disableSearchHiddenPages=true` in your `config.toml`. + +- **New**: If a search term is found in an `expand` shortcode, the expand will be opened. + +- **New**: The menu will scroll the active item into view on load. + ++++ + +## 2.0.0 + +- **Change**: Syntaxhighlightning was switched to [built in Hugo mechanism](https://gohugo.io/content-management/syntax-highlighting/). You may need to configure a new stylesheet or decide to roll you own as describedd on in the Hugo documentation + +- **Change**: In the predefined stylesheets there was a typo and `--MENU-HOME-LINK-HOVERED-color` must be changed to `--MENU-HOME-LINK-HOVER-color`. + +- **Change**: `--MENU-HOME-LINK-color` and `--MENU-HOME-LINK-HOVER-color` were missing in the documentation. You should add them to your custom stylesheets. + +- **Change**: Arrow navigation and `children` shortcode were ignoring setting for `ordersectionsby`. This is now changed and may result in different sorting order of your sub pages. + +- **Change**: If hidden pages are accessed directly by typing their URL, they will be exposed in the menu. + +- **Change**: A page without a `title` will be treated as `hidden=true`. + +- **New**: You can define the expansion state of your menus in the frontmatter. Please see further [documentation]({{%relref "cont/pages/#override-expand-state-rules-for-menu-entries" %}}) for possible values and default behavior. + +- **New**: New partials for defining pre/post content for menu items and the content. See [documentation]({{% relref "basics/customization" %}}) for further reading. + +- **New**: Shortcode [`children`]({{% relref "shortcodes/children" %}}) with new parameter `containerstyle`. + +- **New**: New shortcode [`include`]({{% relref "shortcodes/include" %}}) to include arbitrary file content into a page. + ++++ + +## 1.2.0 + +- **New**: Shortcode [`expand`]({{% relref "shortcodes/expand" %}}) with new parameter to open on page load. + ++++ + +## 1.1.0 + +- **New**: [`Mermaid`]({{% relref "shortcodes/mermaid#configuration" %}}) config options can be set in `config.toml`. \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.pir.md new file mode 100644 index 0000000..2b41b68 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/migration/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Migrrrat'n" +weight = 17 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.en.md new file mode 100755 index 0000000..2f0b4e2 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.en.md @@ -0,0 +1,11 @@ ++++ +disableToc = true +title = "Requirements" +weight = 10 ++++ + +Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements. + +Just download latest version of [Hugo binary (> 0.25)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple. + +![Magic](/basics/requirements/images/magic.gif?classes=shadow) diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.pir.md new file mode 100644 index 0000000..312e87c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/_index.pir.md @@ -0,0 +1,6 @@ ++++ +disableToc = true +title = "Requirrrements" +weight = 10 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/images/magic.gif b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/images/magic.gif new file mode 100644 index 0000000..235c4ed Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/basics/requirements/images/magic.gif differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/_index.en.md new file mode 100755 index 0000000..c0152a6 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/_index.en.md @@ -0,0 +1,11 @@ ++++ +chapter = true +title = "Content" +weight = 2 ++++ + +### Chapter 2 + +# Content + +Find out how to create and organize your content quickly and intuitively. diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/_index.pir.md new file mode 100644 index 0000000..4a040d6 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/_index.pir.md @@ -0,0 +1,6 @@ ++++ +chapter = true +title = "Rambl'n" +weight = 2 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.en.md new file mode 100644 index 0000000..044b63c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.en.md @@ -0,0 +1,58 @@ ++++ +title = "Archetypes" +weight = 10 ++++ + +Using the command: `hugo new [relative new content path]`, you can start a content file with the date and title automatically set. While this is a welcome feature, active writers need more: [archetypes](https://gohugo.io/content/archetypes/). + +It is pre-configured skeleton pages with default front matter. Please refer to the documentation for types of page to understand the differences. + +## Chapter {#archetypes-chapter} + +To create a Chapter page, run the following commands + +```shell +hugo new --kind chapter /_index.md +``` + +It will create a page with predefined Front-Matter: + +```toml ++++ +chapter = true +pre = "X. " +title = "{{ replace .Name "-" " " | title }}" +weight = 5 ++++ + +### Chapter X + +# Some Chapter title + +Lorem Ipsum. +``` + +## Default + +To create a default page, run either one of the following commands either + +```shell +hugo new //_index.md +``` + +or + +```shell +hugo new /.md +``` + +It will create a page with predefined Front-Matter: + +```toml ++++ +title = "{{ replace .Name "-" " " | title }}" +weight = 5 ++++ + +Lorem Ipsum. +``` diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.pir.md new file mode 100644 index 0000000..26ef304 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/archetypes.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Arrrchetypes" +weight = 10 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.en.md new file mode 100644 index 0000000..727ea1c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.en.md @@ -0,0 +1,71 @@ ++++ +title = "Multilingual and i18n" +weight = 30 ++++ + +The Relearn theme is fully compatible with Hugo multilingual mode. + +It provides: + +- Translation strings for default values (English, Arabic, Dutch, Piratized English, German, Hindi, Indonesian, Japanese, Piratized English, Portuguese, Russian, Simplified Chinese, Spanish, Turkish). Feel free to contribute! +- Automatic menu generation from multilingual content +- In-browser language switching + +![I18n menu](/cont/i18n/images/i18n-menu.gif) + +## Basic configuration + +After learning [how Hugo handle multilingual websites](https://gohugo.io/content-management/multilingual), define your languages in your `config.toml` file. + +For example with current English and Piratized English website. + +```toml +# English is the default language +defaultContentLanguage = "en" + +[Languages] +[Languages.en] +title = "Documentation for Hugo Relearn Theme" +weight = 1 +languageName = "English" + +[Languages.pir] +title = "Documentat'n fer Cap'n Hugo Relearrrn Theme" +weight = 2 +languageName = "Arrr! Pirrrates" +``` + +Then, for each new page, append the *id* of the language to the file. + +- Single file `my-page.md` is split in two files: + - in English: `my-page.md` + - in Piratized English: `my-page.pir.md` +- Single file `_index.md` is split in two files: + - in English: `_index.md` + - in Piratized English: `_index.pir.md` + +{{% notice info %}} +Be aware that only translated pages are displayed in menu. It's not replaced with default language content. +{{% /notice %}} + +{{% notice tip %}} +Use [slug](https://gohugo.io/content-management/multilingual/#translate-your-content) Front Matter parameter to translate urls too. +{{% /notice %}} + +## Overwrite translation strings + +Translations strings are used for common default values used in the theme (*Edit this page* button, *Search placeholder* and so on). Translations are available in English and Piratized English but you may use another language or want to override default values. + +To override these values, create a new file in your local i18n folder `i18n/.toml` and inspire yourself from the theme `themes/hugo-theme-relearn/i18n/en.toml` + +## Disable language switching + +Switching the language in the browser is a great feature, but for some reasons you may want to disable it. + +Just set `disableLanguageSwitchingButton=true` in your `config.toml` + +```toml +[params] + # When using mulitlingual website, disable the switch language button. + disableLanguageSwitchingButton = true +``` diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.pir.md new file mode 100644 index 0000000..9976e08 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Multilingual an' i18n" +weight = 30 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/images/i18n-menu.gif b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/images/i18n-menu.gif new file mode 100644 index 0000000..abf4cd5 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/cont/i18n/images/i18n-menu.gif differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/icons.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/icons.en.md new file mode 100644 index 0000000..a763b2a --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/icons.en.md @@ -0,0 +1,41 @@ ++++ +title = "Icons and logos" +weight = 27 ++++ + +The Relearn theme for Hugo loads the [**Font Awesome**](https://fontawesome.com) library, allowing you to easily display any icon or logo available in the Font Awesome free collection. + +## Finding an icon + +Browse through the available icons in the [Font Awesome Gallery](https://fontawesome.com/icons?d=gallery&m=free). Notice that the **free** filter is enabled, as only the free icons are available by default. + +Once on the Font Awesome page for a specific icon, for example the page for the [heart](https://fontawesome.com/icons/heart?style=solid), copy the HTML reference and paste into the Markdown content. + +The HTML to include the heart icon is: + +```html + +``` + +## Including in markdown + +Paste the `` HTML into markup and Font Awesome will load the relevant icon. + +```html +Built with by Relearn and Hugo +``` + +Which appears as + +Built with by Relearn and Hugo + +## Customising icons + +Font Awesome provides many ways to modify the icon + +* Change colour (by default the icon will inherit the parent colour) +* Increase or decrease size +* Rotate +* Combine with other icons + +Check the full documentation on [web fonts with CSS](https://fontawesome.com/how-to-use/web-fonts-with-css) for more. diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/icons.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/icons.pir.md new file mode 100644 index 0000000..dc6dada --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/icons.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Ay'cons an' logos" +weight = 27 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.en.md new file mode 100644 index 0000000..8e29c8f --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.en.md @@ -0,0 +1,696 @@ ++++ +title = "Markdown syntax" +weight = 15 ++++ + +Let's face it: Writing content for the Web is tiresome. WYSIWYG editors help alleviate this task, but they generally result in horrible code, or worse yet, ugly web pages. + +**Markdown** is a better way to write **HTML**, without all the complexities and ugliness that usually accompanies it. + +Some of the key benefits are: + +1. Markdown is simple to learn, with minimal extra characters so it's also quicker to write content. +2. Less chance of errors when writing in Markdown. +3. Produces valid XHTML output. +4. Keeps the content and the visual display separate, so you cannot mess up the look of your site. +5. Write in any text editor or Markdown application you like. +6. Markdown is a joy to use! + +John Gruber, the author of Markdown, puts it like this: + +> The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. While Markdown’s syntax has been influenced by several existing text-to-HTML filters, the single biggest source of inspiration for Markdown’s syntax is the format of plain text email. +> John Gruber + +Without further delay, let us go over the main elements of Markdown and what the resulting HTML looks like: + +{{% notice info %}} + Bookmark this page and the [official Commonmark reference](https://commonmark.org/help/) for easy future reference! +{{% /notice %}} + +## Headings + +Headings from `h1` through `h6` are constructed with a `#` for each level: + +```markdown +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading +``` + +Renders to: + +# h1 Heading + + +## h2 Heading + +### h3 Heading + +#### h4 Heading + +##### h5 Heading + +###### h6 Heading + +HTML: + +```html +

h1 Heading

+

h2 Heading

+

h3 Heading

+

h4 Heading

+
h5 Heading
+
h6 Heading
+``` + +## Comments + +Comments should be HTML compatible + +```html + +``` + +Comment below should **NOT** be seen: + + + +## Horizontal Rules + +The HTML `
` element is for creating a "thematic break" between paragraph-level elements. In Markdown, you can create a `
` with `+++` - three consecutive dashes + +renders to: + ++++ + +## Paragraphs + +Any text not starting with a special sign is written as normal, plain text and will be wrapped within `

` tags in the rendered HTML. + +So this body copy: + +```markdown +Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad. +``` + +renders to this HTML: + +```html +

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.

+``` + +## Text Markers + +### Bold + +For emphasizing a snippet of text with a heavier font-weight. + +The following snippet of text is **rendered as bold text**. + +```markdown +**rendered as bold text** +``` + +renders to: + + +**rendered as bold text** + + +and this HTML + +```html +rendered as bold text +``` + +### Italics + +For emphasizing a snippet of text with italics. + +The following snippet of text is _rendered as italicized text_. + +```markdown +_rendered as italicized text_ +``` + +renders to: + + +_rendered as italicized text_ + + +and this HTML: + +```html +rendered as italicized text +``` + +### Strikethrough + +In GFM (GitHub flavored Markdown) you can do strikethroughs. + +```markdown +~~Strike through this text.~~ +``` + +Which renders to: + +~~Strike through this text.~~ + +HTML: + +```html +Strike through this text. +``` + +## Blockquotes + +For quoting blocks of content from another source within your document. + +Add `>` before any text you want to quote. + +```markdown +> **Fusion Drive** combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined. +``` + +Renders to: + +> **Fusion Drive** combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined. + +and this HTML: + +```html +
+

Fusion Drive combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined.

+
+``` + +Blockquotes can also be nested: + +```markdown +> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue. Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi. +> +> > Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam. +> +> Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus. +``` + +Renders to: + +> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue. Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi. +> +> > Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam. +> +> Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus. + +## Lists + +### Unordered + +A list of items in which the order of the items does not explicitly matter. + +You may use any of the following symbols to denote bullets for each list item: + +```markdown +* valid bullet +- valid bullet ++ valid bullet +``` + +For example + +```markdown ++ Lorem ipsum dolor sit amet ++ Consectetur adipiscing elit ++ Integer molestie lorem at massa ++ Facilisis in pretium nisl aliquet ++ Nulla volutpat aliquam velit + - Phasellus iaculis neque + - Purus sodales ultricies + - Vestibulum laoreet porttitor sem + - Ac tristique libero volutpat at ++ Faucibus porta lacus fringilla vel ++ Aenean sit amet erat nunc ++ Eget porttitor lorem +``` + +Renders to: + + ++ Lorem ipsum dolor sit amet ++ Consectetur adipiscing elit ++ Integer molestie lorem at massa ++ Facilisis in pretium nisl aliquet ++ Nulla volutpat aliquam velit + - Phasellus iaculis neque + - Purus sodales ultricies + - Vestibulum laoreet porttitor sem + - Ac tristique libero volutpat at ++ Faucibus porta lacus fringilla vel ++ Aenean sit amet erat nunc ++ Eget porttitor lorem + + +And this HTML + +```html +
    +
  • Lorem ipsum dolor sit amet
  • +
  • Consectetur adipiscing elit
  • +
  • Integer molestie lorem at massa
  • +
  • Facilisis in pretium nisl aliquet
  • +
  • Nulla volutpat aliquam velit +
      +
    • Phasellus iaculis neque
    • +
    • Purus sodales ultricies
    • +
    • Vestibulum laoreet porttitor sem
    • +
    • Ac tristique libero volutpat at
    • +
    +
  • +
  • Faucibus porta lacus fringilla vel
  • +
  • Aenean sit amet erat nunc
  • +
  • Eget porttitor lorem
  • +
+``` + +### Ordered + +A list of items in which the order of items does explicitly matter. + +```markdown +1. Lorem ipsum dolor sit amet +4. Consectetur adipiscing elit +2. Integer molestie lorem at massa +8. Facilisis in pretium nisl aliquet +4. Nulla volutpat aliquam velit +99. Faucibus porta lacus fringilla vel +21. Aenean sit amet erat nunc +6. Eget porttitor lorem +``` + +Renders to: + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa +4. Facilisis in pretium nisl aliquet +5. Nulla volutpat aliquam velit +6. Faucibus porta lacus fringilla vel +7. Aenean sit amet erat nunc +8. Eget porttitor lorem + +And this HTML: + +```html +
    +
  1. Lorem ipsum dolor sit amet
  2. +
  3. Consectetur adipiscing elit
  4. +
  5. Integer molestie lorem at massa
  6. +
  7. Facilisis in pretium nisl aliquet
  8. +
  9. Nulla volutpat aliquam velit
  10. +
  11. Faucibus porta lacus fringilla vel
  12. +
  13. Aenean sit amet erat nunc
  14. +
  15. Eget porttitor lorem
  16. +
+``` + +{{% notice tip %}} +If you just use `1.` for each number, Markdown will automatically number each item. For example: +{{% /notice %}} + +```markdown +1. Lorem ipsum dolor sit amet +1. Consectetur adipiscing elit +1. Integer molestie lorem at massa +1. Facilisis in pretium nisl aliquet +1. Nulla volutpat aliquam velit +1. Faucibus porta lacus fringilla vel +1. Aenean sit amet erat nunc +1. Eget porttitor lorem +``` + +Renders to: + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa +4. Facilisis in pretium nisl aliquet +5. Nulla volutpat aliquam velit +6. Faucibus porta lacus fringilla vel +7. Aenean sit amet erat nunc +8. Eget porttitor lorem + +## Code + +### Inline code + +Wrap inline snippets of code with `` ` ``. + +```markdown +In this example, `
` should be wrapped as **code**. +``` + +Renders to: + +In this example, `
` should be wrapped as **code**. + +HTML: + +```html +

In this example, <div></div> should be wrapped as code.

+``` + +### Indented code + +Or indent several lines of code by at least two spaces, as in: + +```markdown + // Some comments + line 1 of code + line 2 of code + line 3 of code +``` + +Renders to: + + + // Some comments + line 1 of code + line 2 of code + line 3 of code + + +HTML: + +```html +
+  
+    // Some comments
+    line 1 of code
+    line 2 of code
+    line 3 of code
+  
+
+``` + +### Block code "fences" + +Use "fences" ```` ``` ```` to block in multiple lines of code. + +````plaintext +``` +Sample text here... +``` +```` + +HTML: + +```html +
+  Sample text here...
+
+``` + +### Syntax highlighting + +GFM, or "GitHub Flavored Markdown" also supports syntax highlighting. To activate it, usually you simply add the file extension of the language you want to use directly after the first code "fence", ` ```js `, and syntax highlighting will automatically be applied in the rendered HTML. + +See [Code Highlighting]({{% relref "syntaxhighlight" %}}) for additional documentation. + +For example, to apply syntax highlighting to JavaScript code: + +````plaintext +```js +grunt.initConfig({ + assemble: { + options: { + assets: 'docs/assets', + data: 'src/data/*.{json,yml}', + helpers: 'src/custom-helpers.js', + partials: ['src/partials/**/*.{hbs,md}'] + }, + pages: { + options: { + layout: 'default.hbs' + }, + files: { + './': ['src/templates/pages/index.hbs'] + } + } + } +}; +``` +```` + +Renders to: + +```js +grunt.initConfig({ + assemble: { + options: { + assets: 'docs/assets', + data: 'src/data/*.{json,yml}', + helpers: 'src/custom-helpers.js', + partials: ['src/partials/**/*.{hbs,md}'] + }, + pages: { + options: { + layout: 'default.hbs' + }, + files: { + './': ['src/templates/pages/index.hbs'] + } + } + } +}; +``` + +## Tables + +Tables are created by adding pipes as dividers between each cell, and by adding a line of dashes (also separated by bars) beneath the header. Note that the pipes do not need to be vertically aligned. + +```markdown +| Option | Description | +| ++++++ | +++++++++-- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | +``` + +Renders to: + +| Option | Description | +| ++++++ | +++++++++-- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +And this HTML: + +```html + + + + + + + + + + + + + + + + + +
OptionDescription
datapath to data files to supply the data that will be passed into templates.
engineengine to be used for processing templates. Handlebars is the default.
extextension to be used for dest files.
+``` + +### Right aligned text + +Adding a colon on the right side of the dashes below any heading will right align text for that column. + +```markdown +| Option | Description | +| ++++++:| +++++++++--:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | +``` + +| Option | Description | +| ++++++:| +++++++++--:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +### Two tables adjacent + +| Option | Description | +| ++++++ | +++++++++-- | +| ext | extension to be used for dest files. | + +| Option | Description | +| ++++++ | +++++++++-- | +| ext | extension to be used for dest files. | + +## Links + +### Basic link + +```markdown +[Assemble](http://assemble.io) +``` + +Renders to (hover over the link, there is no tooltip): + +[Assemble](http://assemble.io) + +HTML: + +```html +Assemble +``` + +### Add a tooltip + +```markdown +[Upstage](https://github.com/upstage/ "Visit Upstage!") +``` + +Renders to (hover over the link, there should be a tooltip): + +[Upstage](https://github.com/upstage/ "Visit Upstage!") + +HTML: + +```html +Upstage +``` + +### Named Anchors + +Named anchors enable you to jump to the specified anchor point on the same page. For example, each of these chapters: + +```markdown +# Table of Contents + * [Chapter 1](#chapter-1) + * [Chapter 2](#chapter-2) + * [Chapter 3](#chapter-3) +``` + +will jump to these sections: + +```markdown +## Chapter 1 +Content for chapter one. + +## Chapter 2 +Content for chapter one. + +## Chapter 3 +Content for chapter one. +``` +**NOTE** that specific placement of the anchor tag seems to be arbitrary. They are placed inline here since it seems to be unobtrusive, and it works. + +## Images {#images} +Images have a similar syntax to links but include a preceding exclamation point. + +```markdown +![Minion](https://octodex.github.com/images/minion.png) +``` + +![Minion](https://octodex.github.com/images/minion.png) + +or + +```markdown +![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat") +``` + +![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat") + +Like links, Images also have a footnote style syntax + +### Alternative usage : note images + +```markdown +![Alt text][id] +``` + +![Alt text][id] + +With a reference later in the document defining the URL location: + +[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" + + [id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" + +### Further image formatting + +The Hugo Markdown parser supports additional non-standard functionality. + +#### Resizing image + +Add HTTP parameters `width` and/or `height` to the link image to resize the image. Values are CSS values (default is `auto`). + +```markdown +![Minion](https://octodex.github.com/images/minion.png?width=20pc) +``` + +![Minion](https://octodex.github.com/images/minion.png?width=20pc) + +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.png?width=20pc) + +```markdown +![Minion](https://octodex.github.com/images/minion.png?height=50px) +``` + +![Minion](https://octodex.github.com/images/minion.png?height=50px) + +```markdown +![Minion](https://octodex.github.com/images/minion.png?height=50px&width=300px) +``` + +![Minion](https://octodex.github.com/images/minion.png?height=50px&width=300px) + +#### Add CSS classes + +Add a HTTP `classes` parameter to the link image to add CSS classes. `shadow`and `border` are available but you could define other ones. + +```markdown +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=shadow) +``` + +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?width=40pc&classes=shadow) + +```markdown +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border) +``` + +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?width=40pc&classes=border) + +```markdown +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border,shadow) +``` + +![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?width=40pc&classes=border,shadow) + +#### Lightbox + +Add a HTTP `featherlight` parameter to the link image to disable lightbox. By default lightbox is enabled using the featherlight.js plugin. You can disable this by defining `featherlight` to `false`. + +```markdown +![Minion](https://octodex.github.com/images/minion.png?featherlight=false) +``` + +![Minion](https://octodex.github.com/images/minion.png?featherlight=false) diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.pir.md new file mode 100644 index 0000000..64e826d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/markdown.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Marrrkdown rules" +weight = 15 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.en.md new file mode 100644 index 0000000..18c53ad --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.en.md @@ -0,0 +1,113 @@ ++++ +title = "Menu extra shortcuts" +weight = 25 ++++ + +You can define additional menu entries or shortcuts in the navigation menu without any link to content. + +## Basic configuration + +Edit the website configuration `config.toml` and add a `[[menu.shortcuts]]` entry for each link your want to add. + +Example from the current website: + +````toml +[[menu.shortcuts]] +name = " GitHub repo" +identifier = "ds" +url = "https://github.com/McShelby/hugo-theme-relearn" +weight = 10 + +[[menu.shortcuts]] +name = " Showcases" +url = "/showcase" +weight = 11 + +[[menu.shortcuts]] +name = " Hugo Documentation" +identifier = "hugodoc" +url = "https://gohugo.io/" +weight = 20 + +[[menu.shortcuts]] +name = " Credits" +url = "/credits" +weight = 30 +```` + +By default, shortcuts are preceded by a title. This title can be disabled by setting `disableShortcutsTitle=true`. +However, if you want to keep the title but change its value, it can be overriden by changing your local i18n translation string configuration. + +For example, in your local `i18n/en.toml` file, add the following content + +````toml +[Shortcuts-Title] +other = "" +```` + +Read more about [hugo menu](https://gohugo.io/extras/menus/) and [hugo i18n translation strings](https://gohugo.io/content-management/multilingual/#translation-of-strings) + +## Configuration for Multilingual mode {#i18n} + +When using a multilingual website, you can set different menus for each language. In the `config.toml` file, prefix your menu configuration by `Languages.`. + +Example from the current website: + +````toml +[Languages] +[Languages.en] +title = "Documentation for Hugo Relearn Theme" +weight = 1 +languageName = "English" + +[[Languages.en.menu.shortcuts]] +name = " GitHub repo" +identifier = "ds" +url = "https://github.com/McShelby/hugo-theme-relearn" +weight = 10 + +[[Languages.en.menu.shortcuts]] +name = " Showcases" +url = "/showcase" +weight = 11 + +[[Languages.en.menu.shortcuts]] +name = " Hugo Documentation" +identifier = "hugodoc" +url = "https://gohugo.io/" +weight = 20 + +[[Languages.en.menu.shortcuts]] +name = " Credits" +url = "/credits" +weight = 30 + +[Languages.pir] +title = "Documentat'n fer Cap'n Hugo Relearrrn Theme" +weight = 2 +languageName = "Arrr! Pirrrates" + +[[Languages.pir.menu.shortcuts]] +name = " GitHub repo" +identifier = "ds" +url = "https://github.com/McShelby/hugo-theme-relearn" +weight = 10 + +[[Languages.pir.menu.shortcuts]] +name = " Showcases" +url = "/showcase" +weight = 11 + +[[Languages.pir.menu.shortcuts]] +name = " Cap'n Hugo Documentat'n" +identifier = "hugodoc" +url = "https://gohugo.io/" +weight = 20 + +[[Languages.pir.menu.shortcuts]] +name = " Crrredits" +url = "/credits" +weight = 30 +```` + +Read more about [hugo menu](https://gohugo.io/extras/menus/) and [hugo multilingual menus](https://gohugo.io/content-management/multilingual/#menus) \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.pir.md new file mode 100644 index 0000000..0520e5c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/menushortcuts.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Menu extrrra shorrrtcuts" +weight = 25 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.en.md new file mode 100644 index 0000000..b1a161b --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.en.md @@ -0,0 +1,186 @@ ++++ +title = "Pages organization" +weight = 5 ++++ + +In **Hugo**, pages are the core of your site. Once it is configured, pages are definitely the added value to your documentation site. + +## Folders + +Organize your site like [any other Hugo project](https://gohugo.io/content/organization/). Typically, you will have a *content* folder with all your pages. + +````plaintext +content +├── level-one +│ ├── level-two +│ │ ├── level-three +│ │ │ ├── level-four +│ │ │ │ ├── _index.md <-- /level-one/level-two/level-three/level-four +│ │ │ │ ├── page-4-a.md <-- /level-one/level-two/level-three/level-four/page-4-a +│ │ │ │ ├── page-4-b.md <-- /level-one/level-two/level-three/level-four/page-4-b +│ │ │ │ └── page-4-c.md <-- /level-one/level-two/level-three/level-four/page-4-c +│ │ │ ├── _index.md <-- /level-one/level-two/level-three +│ │ │ ├── page-3-a.md <-- /level-one/level-two/level-three/page-3-a +│ │ │ ├── page-3-b.md <-- /level-one/level-two/level-three/page-3-b +│ │ │ └── page-3-c.md <-- /level-one/level-two/level-three/page-3-c +│ │ ├── _index.md <-- /level-one/level-two +│ │ ├── page-2-a.md <-- /level-one/level-two/page-2-a +│ │ ├── page-2-b.md <-- /level-one/level-two/page-2-b +│ │ └── page-2-c.md <-- /level-one/level-two/page-2-c +│ ├── _index.md <-- /level-one +│ ├── page-1-a.md <-- /level-one/page-1-a +│ ├── page-1-b.md <-- /level-one/page-1-b +│ └── page-1-c.md <-- /level-one/page-1-c +├── _index.md <-- / +└── page-top.md <-- /page-top +```` + +{{% notice note %}} +`_index.md` is required in each folder, it’s your “folder home page” +{{% /notice %}} + +## Types + +The Relearn theme defines two types of pages. *Default* and *Chapter*. Both can be used at any level of the documentation, the only difference being layout display. + +A **Chapter** displays a page meant to be used as introduction for a set of child pages. Commonly, it contains a simple title and a catch line to define content that can be found under it. +You can define any HTML as prefix for the menu. In the example below, it's just a number but that could be an [icon](https://fortawesome.github.io/Font-Awesome/). + +![Chapter page](/cont/pages/images/pages-chapter.png?width=50pc) + +```markdown ++++ +chapter = true +pre = "1. " +title = "Basics" +weight = 5 ++++ + +### Chapter 1 + +# Basics + +Discover what this Hugo theme is all about and the core-concepts behind it. +``` + +To tell the Relearn theme to consider a page as a chapter, set `chapter=true` in the Front Matter of the page. + +A **Default** page is any other content page. + +![Default page](/cont/pages/images/pages-default.png?width=50pc) + +```toml ++++ +title = "Installation" +weight = 15 ++++ +``` + +The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you to train by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/). + +## Create your project + +Hugo provides a `new` command to create a new website. + +```shell +hugo new site +``` + +The Relearn theme provides [archetypes]({{%relref "cont/archetypes" %}}) to help you create this kind of pages. + +## Front Matter configuration + +Each Hugo page has to define a [Front Matter](https://gohugo.io/content/front-matter/) in *toml*, *yaml* or *json*. This site will use *toml* in all cases. + +The Relearn theme uses the following parameters on top of Hugo ones : + +```toml ++++ +# Table of contents (toc) is enabled by default. Set this parameter to true to disable it. +# Note: Toc is always disabled for chapter pages +disableToc = "false" +# If set, this will be used for the page's menu entry (instead of the `title` attribute) +menuTitle = "" +# If set, this will explicitly override common rules for the expand state of a page's menu entry +alwaysopen = true +# If set, this will explicitly override common rules for the sorting order of a page's submenu entries +ordersectionsby = "title" +# The title of the page in menu will be prefixed by this HTML content +pre = "" +# The title of the page in menu will be postfixed by this HTML content +post = "" +# Set the page as a chapter, changing the way it's displayed +chapter = false +# Hide a menu entry by setting this to true +hidden = false +# Display name of this page modifier. If set, it will be displayed in the footer. +LastModifierDisplayName = "" +# Email of this page modifier. If set with LastModifierDisplayName, it will be displayed in the footer +LastModifierEmail = "" ++++ +``` + +### Add icon to a menu entry + +In the page frontmatter, add a `pre` param to insert any HTML code before the menu label. The example below uses the GitHub icon. + +```toml ++++ +title = "GitHub repo" +pre = " " ++++ +``` + +![Title with icon](/cont/pages/images/frontmatter-icon.png) + +### Ordering sibling menu/page entries + +Hugo provides a [flexible way](https://gohugo.io/content/ordering/) to handle order for your pages. + +The simplest way is to set `weight` parameter to a number. + +```toml ++++ +title = "My page" +weight = 5 ++++ +``` + +### Using a custom title for menu entries + +By default, the Relearn theme will use a page's `title` attribute for the menu item (or `linkTitle` if defined). + +But a page's title has to be descriptive on its own while the menu is a hierarchy. +We've added the `menuTitle` parameter for that purpose: + +For example (for a page named `content/install/linux.md`): + +```toml ++++ +title = "Install on Linux" +menuTitle = "Linux" ++++ +``` + +### Override expand state rules for menu entries + +You can change how the theme expands menu entries on the side of the content with the `alwaysopen` setting on a per page basis. If `alwaysopen=false` for any given entry, its children will not be shown in the menu as long as it is not necessary for the sake of navigation. + +The theme generates the menu based on the following rules: + +- all parent entries of the active page including their siblings are shown regardless of any settings +- immediate children entries of the active page are shown regardless of any settings +- if not overridden, all other first level entries behave like they would have been given `alwaysopen=false` +- if not overridden, all other entries of levels besides the first behave like they would have been given `alwaysopen=true` +- all visible entries show their immediate children entries if `alwaysopen=true`; this proceeds recursivley +- all remaining entries are not shown + +You can see this feature in action on the example page for [children shortcode]({{< relref "shortcodes/children" >}}) and its children pages. + +## Your Page + +To configure your page, you basically have three choices: + +1. Create an `_index.md` document in `content` folder and fill the file with *Markdown content* +2. Create an `index.html` file in the `static` folder and fill the file with *HTML content* +3. Configure your server to automatically redirect home page to one your documentation page diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.pir.md new file mode 100644 index 0000000..718ff7c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Planks orrrganizat'n" +weight = 5 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/frontmatter-icon.png b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/frontmatter-icon.png new file mode 100644 index 0000000..6b00b61 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/frontmatter-icon.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-chapter.png b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-chapter.png new file mode 100644 index 0000000..ad1c369 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-chapter.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-default.png b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-default.png new file mode 100644 index 0000000..094b630 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/cont/pages/images/pages-default.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.en.md new file mode 100644 index 0000000..b6db687 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.en.md @@ -0,0 +1,61 @@ ++++ +title = "Code highlighting" +weight = 16 ++++ + +The Relearn theme uses [Hugo's built-in syntax highlighting](https://gohugo.io/content-management/syntax-highlighting/) for code. + +## Markdown syntax + +Wrap the code block with three backticks and the name of the language. Highlight will try to auto detect the language if one is not provided. + + +````plaintext +```json +[ + { + "title": "apples", + "count": [12000, 20000], + "description": {"text": "...", "sensitive": false} + }, + { + "title": "oranges", + "count": [17500, null], + "description": {"text": "...", "sensitive": false} + } +] +``` +```` + + +Renders to: + +```json +[ + { + "title": "apples", + "count": [12000, 20000], + "description": {"text": "...", "sensitive": false} + }, + { + "title": "oranges", + "count": [17500, null], + "description": {"text": "...", "sensitive": false} + } +] +``` + +## Supported languages + +Hugo comes with a [remarkable list](https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages) of supported languages. + +## Recommended configuration + +You can choose a color theme from the [list of supported themes](https://xyproto.github.io/splash/docs/all.html) and add it in your `config.toml` + +````toml +[markup] + [markup.highlight] + style = "base16-snazzy" # choose a color theme or create your own + guessSyntax = false # if set to true, avoid unstyled code if no language was given but mermaid code fences will not work anymore +```` diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.pir.md new file mode 100644 index 0000000..8abebf9 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/syntaxhighlight.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Code highlight'n" +weight = 16 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/tags.en.md b/themes/hugo-theme-relearn/exampleSite/content/cont/tags.en.md new file mode 100644 index 0000000..2df22e5 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/tags.en.md @@ -0,0 +1,36 @@ ++++ +tags = ["documentation", "tutorial"] +title = "Tags" +weight = 40 ++++ + +The Relearn theme supports one default taxonomy of Hugo: the *tag* feature. + +## Configuration + +Just add tags to any page: + +```toml ++++ +tags = ["tutorial", "theme"] +title = "Theme tutorial" +weight = 15 ++++ +``` + +## Behavior + +The tags are displayed at the top of the page, in their insertion order. + +Each tag is a link to a *Taxonomy* page displaying all the articles with the given tag. + +## List all the tags + +In the `config.toml` file you can add a shortcut to display all the tags + +```toml +[[menu.shortcuts]] +name = " Tags" +url = "/tags" +weight = 30 +``` \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/cont/tags.pir.md b/themes/hugo-theme-relearn/exampleSite/content/cont/tags.pir.md new file mode 100644 index 0000000..20a7ee0 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/cont/tags.pir.md @@ -0,0 +1,6 @@ ++++ +tags = ["documentat'n", "tutorrrial"] +title = "Tags" +weight = 40 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/credits.en.md b/themes/hugo-theme-relearn/exampleSite/content/credits.en.md new file mode 100644 index 0000000..ee500f5 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/credits.en.md @@ -0,0 +1,27 @@ ++++ +disableToc = true +title = "Credits" ++++ + +## Contributors + +Special thanks to [everyone who has contributed](https://github.com/McShelby/hugo-theme-relearn/graphs/contributors) to this project. + +Many thanks to [@matcornic](https://github.com/matcornic) for his work on the [Learn theme](https://github.com/matcornic/hugo-theme-learn). + +## Packages and libraries + +* [Mermaid](https://mermaid-js.github.io/mermaid) - generation of diagram and flowchart from text in a similar manner as Markdown +* [font awesome](http://fontawesome.io/) - the iconic font and CSS framework +* [jQuery](https://jquery.com) - The Write Less, Do More, JavaScript Library +* [jquery-svg-zoom-pan](https://github.com/DanielHoffmann/jquery-svg-pan-zoom) - enable pan and zoom in Mermaid graphs +* [lunr](https://lunrjs.com) - Lunr enables you to provide a great search experience without the need for external, server-side, search services... +* [clipboard.js](https://zenorocha.github.io/clipboard.js) - copy text to clipboard +* [modernizr](https://modernizr.com) - A JavaScript toolkit that allows web developers to use new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don't support + +## Tooling + +* [gren](https://github.com/github-tools/github-release-notes) - Releasenotes generator +* [Hugo](https://gohugo.io/) - Static site generator +* [Netlify](https://www.netlify.com) - Continuous deployement and hosting of this documentation +* [Wercker](https://app.wercker.com) - Continous testing diff --git a/themes/hugo-theme-relearn/exampleSite/content/credits.pir.md b/themes/hugo-theme-relearn/exampleSite/content/credits.pir.md new file mode 100644 index 0000000..3a218c2 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/credits.pir.md @@ -0,0 +1,5 @@ ++++ +disableToc = true +title = "Crrredits" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/INCLUDE_ME.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/INCLUDE_ME.md new file mode 100644 index 0000000..65e40df --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/INCLUDE_ME.md @@ -0,0 +1,14 @@ +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even **_bold emphasized_** text +- [links](https://example.com) +- other shortcodes besides `include` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.en.md new file mode 100644 index 0000000..11fb2bb --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.en.md @@ -0,0 +1,19 @@ ++++ +chapter = true +title = "Shortcodes" +weight = 3 ++++ + +### Chapter 3 + +# Shortcodes + +Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities. + +But this happens to be a bad idea. Everyone uses Markdown because it's pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible. + +To avoid this limitations, Hugo created [shortcodes](https://gohugo.io/extras/shortcodes/). A shortcode is a simple snippet inside a page. + +The Relearn theme provides multiple shortcodes on top of existing ones. + +{{%children containerstyle="div" style="h2" description="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.pir.md new file mode 100644 index 0000000..b427972 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/_index.pir.md @@ -0,0 +1,6 @@ ++++ +chapter = true +title = "Shorrrtcodes" +weight = 3 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 new file mode 100644 index 0000000..94e3d0e Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf new file mode 100644 index 0000000..97377e9 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf new file mode 100644 index 0000000..e589c73 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.png b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.png new file mode 100644 index 0000000..48acf34 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.txt b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.txt new file mode 100644 index 0000000..19b69f4 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/hugo.txt @@ -0,0 +1 @@ +This is a small text \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 new file mode 100644 index 0000000..9f1fe56 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 differ diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.md new file mode 100644 index 0000000..9cb0ac0 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.en.md @@ -0,0 +1,94 @@ ++++ +description = "The Attachments shortcode displays a list of files attached to a page" +title = "Attachments" ++++ + +The Attachments shortcode displays a list of files attached to a page. + +{{% attachments /%}} + +## Usage + +The shortcurt lists files found in a **specific folder**. +Currently, it support two implementations for pages + +1. If your page is a Markdown file, attachements must be placed in a **folder** named like your page and ending with **.files**. + + > * content + > * _index.md + > * page.files + > * attachment.pdf + > * page.md + +2. If your page is a **folder**, attachements must be placed in a nested **'files'** folder. + + > * content + > * _index.md + > * page + > * index.md + > * files + > * attachment.pdf + +Be aware that if you use a multilingual website, you will need to have as many folders as languages. + +That's all! + +### Parameters + +| Parameter | Default | Description | +|:--|:--|:--| +| title | "Attachments" | List's title | +| sort | "asc" | Sorting the output in `asc`ending or `desc`ending order | +| style | "" | Choose between `orange`, `grey`, `blue` and `green` for nice style | +| pattern | ".*" | A regular expressions, used to filter the attachments by file name.

The **pattern** parameter value must be [regular expressions](https://en.wikipedia.org/wiki/Regular_expression). + +For example: + +* To match a file suffix of 'jpg', use **.*jpg** (not *.jpg). +* To match file names ending in 'jpg' or 'png', use **.*(jpg|png)** + +### Examples + +#### List of attachments ending in pdf or mp4 + +````go +{{%/*attachments title="Related files" pattern=".*(pdf|mp4)"/*/%}} +```` + +renders as + +{{%attachments title="Related files" pattern=".*(pdf|mp4)"/%}} + +#### Colored styled box + +````go +{{%/*attachments style="orange" /*/%}} +```` + +renders as + +{{% attachments style="orange" /%}} + +````go +{{%/*attachments style="grey" /*/%}} +```` + +renders as + +{{% attachments style="grey" /%}} + +````go +{{%/*attachments style="blue" /*/%}} +```` + +renders as + +{{% attachments style="blue" /%}} + +````go +{{%/*attachments style="green" /*/%}} +```` + +renders as + +{{% attachments style="green" /%}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.files/NoTreasure.txt b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.files/NoTreasure.txt new file mode 100644 index 0000000..f7b9fda --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.files/NoTreasure.txt @@ -0,0 +1 @@ +Harrr, nothn' to see herre \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.md new file mode 100644 index 0000000..da31540 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/attachments.pir.md @@ -0,0 +1,7 @@ ++++ +descrption = "Th' Attachments shorrrtcode displays a list o' files attached t' a plank" +title = "Attachments" ++++ +{{% attachments /%}} + +{{< piratify >}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.en.md new file mode 100644 index 0000000..b06a298 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.en.md @@ -0,0 +1,16 @@ ++++ +description = "Nice buttons on your page" +title = "Button" ++++ + +A button is a just a clickable button with optional icon. + +```go +{{%/* button href="https://gohugo.io/" */%}}Get Hugo{{%/* /button */%}} +{{%/* button href="https://gohugo.io/" icon="fas fa-download" */%}}Get Hugo with icon{{%/* /button */%}} +{{%/* button href="https://gohugo.io/" icon="fas fa-download" icon-position="right" */%}}Get Hugo with icon right{{%/* /button */%}} +``` + +{{% button href="https://gohugo.io/" %}}Get Hugo{{% /button %}} +{{% button href="https://gohugo.io/" icon="fas fa-download" %}}Get Hugo with icon{{% /button %}} +{{% button href="https://gohugo.io/" icon="fas fa-download" icon-position="right" %}}Get Hugo with icon right{{% /button %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.pir.md new file mode 100644 index 0000000..3bd0149 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/button.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Nice buttons on yer plank" +title = "Button" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.en.md new file mode 100644 index 0000000..b941079 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.en.md @@ -0,0 +1,51 @@ ++++ +alwaysopen = false +description = "List the child pages of a page" +title = "Children" ++++ + +Use the children shortcode to list the child pages of a page and the further descendants (children's children). By default, the shortcode displays links to the child pages. + +## Usage + +| Parameter | Default | Description | +|:--|:--|:--| +| page | _current_ | Specify the page name (section name) to display children for | +| containerstyle | "ul" | Choose the style used to group all children. It could be any HTML tag name | +| style | "li" | Choose the style used to display each descendant. It could be any HTML tag name | +| showhidden | "false" | When true, child pages hidden from the menu will be displayed | +| description | "false" | Allows you to include a short text under each page in the list. When no description exists for the page, children shortcode takes the first 70 words of your content. [Read more info about summaries on gohugo.io](https://gohugo.io/content/summaries/) | +| depth | 1 | Enter a number to specify the depth of descendants to display. For example, if the value is 2, the shortcode will display 2 levels of child pages. **Tips:** set 999 to get all descendants | +| sort | [ordersectionsby]({{% relref "basics/configuration#global-site-parameters" %}}) | Sort children by **weight**, to sort on menu order - **title**, to sort alphabetically on menu label. If not set it is sorted by the `ordersectionsby` setting of the site and the pages frontmatter | + +## Demo + +````go +{{%/* children */%}} +```` + +{{% children %}} + +````go +{{%/* children description="true" */%}} +```` + +{{%children description="true" %}} + +````go +{{%/* children depth="999" showhidden="true" */%}} +```` + +{{% children depth="999" showhidden="true" %}} + +````go +{{%/* children containerstyle="div" style="h2" depth="3" description="true" */%}} +```` + +{{% children containerstyle="div" style="h2" depth="3" description="true" %}} + +````go +{{%/* children containerstyle="div" style="div" depth="999" */%}} +```` + +{{% children containerstyle="div" style="div" depth="999" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.pir.md new file mode 100644 index 0000000..fe8f598 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/_index.pir.md @@ -0,0 +1,6 @@ ++++ +alwaysopen = false +descrption = "List th' child planks on a plank" +title = "Children" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.en.md new file mode 100644 index 0000000..83b2f9d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.en.md @@ -0,0 +1,13 @@ ++++ +alwaysopen = false +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1" +weight = 10 ++++ + +This is a demo child page. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.pir.md new file mode 100644 index 0000000..76b5a01 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/_index.pir.md @@ -0,0 +1,8 @@ ++++ +alwaysopen = false +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1" +weight = 10 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md new file mode 100644 index 0000000..4009c71 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md @@ -0,0 +1,12 @@ ++++ +alwaysopen = false +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1-1" ++++ + +This is a demo child page with a hidden child. You can still access the hidden child [directly]({{% relref "shortcodes/children/children-1/children-1-1/children-1-1-1" %}}) or via the search. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.pir.md new file mode 100644 index 0000000..761f398 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.pir.md @@ -0,0 +1,7 @@ ++++ +alwaysopen = false +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1-1" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md new file mode 100644 index 0000000..506a115 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md @@ -0,0 +1,12 @@ ++++ +description = "This is a hidden demo child page" +hidden = true +tags = ["children", "hidden"] +title = "page 1-1-1 (hidden)" ++++ + +This is a **hidden** demo child page. This page and all its children are hidden in the menu, arrow navigation and children shortcode as long as you aren't viewing this page or its children directly. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.pir.md new file mode 100644 index 0000000..17761c4 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.pir.md @@ -0,0 +1,7 @@ ++++ +descrption = "This be a hidden demo child plank" +hidden = true +tags = ["children", "hidden"] +title = "Plank 1-1-1 (hidden)" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md new file mode 100644 index 0000000..d5667ff --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md @@ -0,0 +1,11 @@ ++++ +description = "This is a non-hidden demo child page of a hidden parent page" +tags = ["children", "hidden"] +title = "page 1-1-1-1" ++++ + +This is a **non-hidden** demo child page of a hidden parent page with a hidden child. You can still access the hidden child [directly]({{% relref "shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1" %}}) or via the search. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.pir.md new file mode 100644 index 0000000..45e61de --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a non-hidden demo child plank o' a hidden parrrent plank" +tags = ["children", "hidden"] +title = "Plank 1-1-1-1" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md new file mode 100644 index 0000000..a1581a6 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md @@ -0,0 +1,12 @@ ++++ +description = "This is a hidden demo child page" +hidden = true +tags = ["children", "hidden"] +title = "page 1-1-1-1-1 (hidden)" ++++ + +This is a **hidden** demo child page. This page and all its children are hidden in the menu, arrow navigation and children shortcode as long as you aren't viewing this page or its children directly. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.pir.md new file mode 100644 index 0000000..3b31af1 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.pir.md @@ -0,0 +1,7 @@ ++++ +descrption = "This be a hidden demo child plank" +hidden = true +tags = ["children", "hidden"] +title = "Plank 1-1-1-1-1 (hidden)" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.en.md new file mode 100644 index 0000000..f26d411 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.en.md @@ -0,0 +1,7 @@ ++++ +description = "This is a non-hidden demo child page of a hidden parent page" +tags = ["children", "hidden"] +title = "page 1-1-1-1-1-1" ++++ + +This is a **non-hidden** demo child page of a hidden parent page. \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.pir.md new file mode 100644 index 0000000..54d6e56 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/children-1-1-1-1-1-1/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a non-hidden demo child plank on a hidden parrrent plank" +tags = ["children", "hidden"] +title = "Plank 1-1-1-1-1-1" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.en.md new file mode 100644 index 0000000..85adae8 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.en.md @@ -0,0 +1,11 @@ ++++ +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1-1-2" ++++ + +This is a plain demo child page. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.pir.md new file mode 100644 index 0000000..60e299b --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1-1-2" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.en.md new file mode 100644 index 0000000..74e144d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.en.md @@ -0,0 +1,7 @@ ++++ +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1-1-2-1" ++++ + +This is a plain demo child page. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.pir.md new file mode 100644 index 0000000..5af0f33 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-1/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1-1-2-1" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.en.md new file mode 100644 index 0000000..41f730e --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.en.md @@ -0,0 +1,7 @@ ++++ +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1-1-2-2" ++++ + +This is a plain demo child page. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.pir.md new file mode 100644 index 0000000..110c1e9 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-2/children-1-1-2-2/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1-1-2-2" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.en.md new file mode 100644 index 0000000..df89045 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.en.md @@ -0,0 +1,7 @@ ++++ +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 1-1-3" ++++ + +This is a plain demo child page. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.pir.md new file mode 100644 index 0000000..c5657c2 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-3/_index.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 1-1-3" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.en.md new file mode 100644 index 0000000..7324027 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.en.md @@ -0,0 +1,10 @@ ++++ +alwaysopen = false +tags = ["children", "non-hidden"] +title = "page 2" +weight = 20 ++++ + +This is a demo child page with no description. + +So its content is used as description. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.pir.md new file mode 100644 index 0000000..a715a73 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-2/_index.pir.md @@ -0,0 +1,7 @@ ++++ +alwaysopen = false +tags = ["children", "non-hidden"] +title = "Plank 2" +weight = 20 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.en.md new file mode 100644 index 0000000..71b022b --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.en.md @@ -0,0 +1,13 @@ ++++ +alwaysopen = false +description = "This is a demo child page" +tags = ["children", "non-hidden"] +title = "page 3" +weight = 30 ++++ + +This is a demo child page. + +## Subpages of this page + +{{% children showhidden="true" %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.pir.md new file mode 100644 index 0000000..34f466f --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/_index.pir.md @@ -0,0 +1,8 @@ ++++ +alwaysopen = false +descrption = "This be a demo child plank" +tags = ["children", "non-hidden"] +title = "Plank 3" +weight = 30 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.en.md new file mode 100644 index 0000000..c8cf6d9 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.en.md @@ -0,0 +1,7 @@ ++++ +description = "This is a plain page test nested in a parent" +tags = ["children", "non-hidden"] +title = "page 3-1" ++++ + +This is a plain demo child page. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.pir.md new file mode 100644 index 0000000..853f818 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-3/test3.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a plain plank test nested 'n a parrrent" +tags = ["children", "non-hidden"] +title = "Plank 3-1" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.en.md new file mode 100644 index 0000000..96358d0 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.en.md @@ -0,0 +1,10 @@ ++++ +alwaysopen = false +description = "This is a hidden demo child page" +hidden = true +tags = ["children", "hidden"] +title = "page 4 (hidden)" +weight = 40 ++++ + +This is a **hidden** demo child page. This page and all its children are hidden in the menu, arrow navigation and children shortcode as long as you aren't viewing this page or its children directly. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.pir.md new file mode 100644 index 0000000..94b3c77 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/children-4/_index.pir.md @@ -0,0 +1,9 @@ ++++ +alwaysopen = false +descrption = "This be a hidden demo child plank" +hidden = true +tags = ["children", "hidden"] +title = "Plank 4 (hidden)" +weight = 40 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.en.md new file mode 100644 index 0000000..b01bf45 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.en.md @@ -0,0 +1,8 @@ ++++ +description: | + This is a plain page test, and the beginning of a YAML multiline description... +title: "page X" +weight: 1 ++++ + +This is a plain demo child page. diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.pir.md new file mode 100644 index 0000000..a948582 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/children/test.pir.md @@ -0,0 +1,6 @@ ++++ +descrption = "This be a plain plank test" +title = "Plank X" +weight = 1 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.en.md new file mode 100644 index 0000000..09c2e6d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.en.md @@ -0,0 +1,95 @@ ++++ +description = "Displays an expandable/collapsible section of text on your page" +title = "Expand" ++++ + +The Expand shortcode displays an expandable/collapsible section of text on your page. + +## Usage + +````go +{{%/* expand "Does this Relearn theme rock?" { "true" | "false" } */%}} +Yes! +{{%/* /expand */%}} +```` + +The first optional parameter defines the text that appears next to the expand/collapse icon. The default text is `"Expand me..."`. + +The second optional parameter controls if the block is initially shown as expanded (`"true"`) or collapsed (`"false"`). The default ist `"false"`. +## Examples + +{{% expand "I'll tell you a secret..." %}} +...maybe the next time you'll open this expander! +{{% /expand %}} + +### All defaults + +{{% expand %}} +Yes, you did it! +{{% /expand %}} + +{{% expand "Show markup" "true" %}} +````go +{{%/* expand */%}} +Yes, you did it! +{{%/* /expand */%}} +```` +{{% /expand %}} + +### Initially expanded + +{{% expand "Expand me..." "true" %}} +No need to press you! +{{% /expand %}} + +{{% expand "Show markup" "true" %}} +````go +{{%/* expand "Expand me..." "true" */%}} +No need to press you! +{{%/* /expand */%}} +```` +{{% /expand %}} + +### Arbitrary text + +{{% expand "Show me endless possibilities" %}} +Some expandable text. + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even **_bold emphasized_** text +- [links](https://example.com) +- other shortcodes besides `expand` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{% /expand %}} + +{{% expand "Show markup" %}} +````go +{{%/* expand "Show me endless possibilities" */%}} +Some expandable text. + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even **_bold emphasized_** text +- [links](https://example.com) +- other shortcodes besides `expand` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{%/* /expand */%}} +```` +{{% /expand %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.pir.md new file mode 100644 index 0000000..b86a1a7 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/expand.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Displays an expand'ble/collaps'ble sect'n o' text on yer plank" +title = "Expand" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.en.md new file mode 100644 index 0000000..ff3e6dc --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.en.md @@ -0,0 +1,28 @@ ++++ +description = "Displays content from other Markdown files" +title = "Include" ++++ + +The include shortcode includes other files from your project inside of the current file. This can even contain Markdown and will be taken into account when generating the table of contents. + +## Usage + +````go +{{%/* include "" { "true" | "false" } */%}} +```` + +The first parameter is the path to the file to be included. + +If the file's content will be displayed as HTML, the second optional parameter controls if the first heading of the included file should be displayed ("true")- which is the default - or be hidden. + +## Examples + +### Arbitray content + +{{% include "shortcodes/INCLUDE_ME.md" %}} + +{{% expand "Show markup" %}} +````go +{{%/* include "shortcodes/INCLUDE_ME.md" */%}} +```` +{{% /expand %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.pir.md new file mode 100644 index 0000000..8782676 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/include.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Displays content from other Marrrkdown files" +title = "Include" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.en.md new file mode 100644 index 0000000..0d16513 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.en.md @@ -0,0 +1,226 @@ ++++ +description = "Generation of diagram and flowchart from text in a similar manner as Markdown" +title = "Mermaid" ++++ + +[Mermaid](https://mermaidjs.github.io/) is a library helping you to generate diagram and flowcharts from text, in a similar manner as Markdown. + +## Usage + +Just insert your Mermaid code in the `mermaid` shortcode like this: + +````go +{{}} +classDiagram + Person *-- Dog +{{}} +```` + +You can set an optional `align` attribute which defaults to `center`. + +If you don't need alignment you can use the alternative syntax using code fences if you have turned off `guessSyntax` for the `markup.highlight` setting (see below): + +````plaintext +```mermaid +classDiagram + Person *-- Dog +``` +```` + +The generated graphs can be be panned by dragging them and zoomed by using the mousewheel. On mobile devices you can use finger gestures. + +## Examples + +### Flowchart + +{{< mermaid align="left" >}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{< /mermaid >}} + +{{% expand "Show markup" "true" %}} +````go +{{}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{}} +```` +{{% /expand %}} + +### Sequence + +{{< mermaid >}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{< /mermaid >}} + +{{% expand "Show markup" "true" %}} +````go +{{}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{}} +```` +{{% /expand %}} + +### GANTT + +{{< mermaid >}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to Mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to Mermaid :1d +{{< /mermaid >}} + +{{% expand "Show markup" "true" %}} +````go +{{}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to Mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to Mermaid :1d +{{}} +```` +{{% /expand %}} + +### Class + +{{< mermaid >}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{< /mermaid >}} + +{{% expand "Show markup" "true" %}} +````go +{{}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{}} +```` +{{% /expand %}} + +### State + +````mermaid +stateDiagram-v2 + open: Open Door + closed: Closed Door + locked: Locked Door + open --> closed: Close + closed --> locked: Lock + locked --> closed: Unlock + closed --> open: Open +```` + +{{% expand "Show markup" "true" %}} +````go +```mermaid +stateDiagram-v2 + open: Open Door + closed: Closed Door + locked: Locked Door + open --> closed: Close + closed --> locked: Lock + locked --> closed: Unlock + closed --> open: Open +``` +```` +{{% /expand %}} + +## Configuration + +Mermaid is configured with default settings. You can customize Mermaid's default settings for all of your files thru a JSON object in your `config.toml` or override these settings sidewise thru your pages frontmatter. + +This JSON object is forwarded into Mermaid's `mermaid.initialize()` function. + +See [Mermaid documentation](http://mermaid-js.github.io/mermaid/getting-started/Setup.html#mermaidapi-configuration-defaults) for all allowed settings. + +Also, if you want to use mermaid codefences, you have to turn off `guessSyntax` for the `markup.highlight` setting. + +### Example + +````toml +[params] + mermaidInitialize = "{ \"theme\": \"dark\" }" + +[markup] + [markup.highlight] + guessSyntax = false # if set to true, avoid unstyled code if no language was given but mermaid code fences will not work anymore +```` + +or pages frontmatter +````toml ++++ +mermaidInitialize = "{ \"theme\": \"dark\" }" ++++ +```` diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.pir.md new file mode 100644 index 0000000..5f20eab --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/mermaid.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Generrrat'n o' diagrrram an' flowcharrrt frrrom text 'n a similar manner as Marrrkdown" +title = "Merrrmaid" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.en.md new file mode 100644 index 0000000..6a5ec9d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.en.md @@ -0,0 +1,192 @@ ++++ +description = "Disclaimers to help you structure your page" +title = "Notice" ++++ + +The notice shortcode shows four types of disclaimers to help you structure your page. + +## Usage + +````go +{{%/* notice [ note | info | tip | warning ] */%}} +Some markup +{{%/* /notice */%}} +```` + +## Examples + +### Note + +{{% notice note %}} +A **notice** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{% /notice %}} + +{{% expand "Show markup" %}} +````go +{{%/* notice note */%}} +A **notice** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{%/* /notice */%}} +```` +{{% /expand %}} + +### Info + +{{% notice info %}} +An **information** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{% /notice %}} + +{{% expand "Show markup" %}} +````go +{{%/* notice info */%}} +An **information** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{%/* /notice */%}} +```` +{{% /expand %}} + +### Tip + +{{% notice tip %}} +A **tip** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{% /notice %}} + +{{% expand "Show markup" %}} +````go +{{%/* notice tip */%}} +A **tip** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{%/* /notice */%}} +```` +{{% /expand %}} + +### Warning + +{{% notice warning %}} +A **warning** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{% /notice %}} + +{{% expand "Show markup" %}} +````go +{{%/* notice warning */%}} +A **warning** disclaimer + +You can add: + +- multiple paragraphs +- bullet point lists +- _emphasized_, **bold** and even ***bold emphasized*** text +- [links](https://example.com) +- other shortcodes besides `notice` +- etc. + +```plaintext +...and even source code +``` + +> the possiblities are endless +{{%/* /notice */%}} +```` +{{% /expand %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.pir.md new file mode 100644 index 0000000..98c1c43 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/notice.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Disclaimerrrs t' help ye strrructurrre yer plank" +title = "Notice" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.en.md new file mode 100644 index 0000000..5403c8d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.en.md @@ -0,0 +1,23 @@ ++++ +description = "Get value of site params variables in your page" +title = "Site param" ++++ + +`siteparam` shortcode is used to help you print values of site params. + +For instance, in this current site, the `editURL` variable is used in `config.toml` + +```toml +[params] + editURL = "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/" +``` + +Use the `siteparam` shortcode to display its value. + +```go +`editURL` Value : {{%/* siteparam "editURL" */%}} +``` + +is displayed as + +`editURL` Value : {{% siteparam "editURL" %}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.pir.md new file mode 100644 index 0000000..084146b --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/siteparam.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Get value o' ship parrrams varrriables 'n yer plank" +title = "Ship param" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.en.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.en.md new file mode 100644 index 0000000..34d8c46 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.en.md @@ -0,0 +1,123 @@ ++++ +description = "Synchronize selection of content in different tabbed views" +title = "Tabbed views" ++++ + +Choose which content to see across the page. Very handy for providing code +snippets for multiple languages or providing configuration in different formats. + +## Code example + +````go +{{}} +{{%/* tab name="python" */%}} +```python +print("Hello World!") +``` +{{%/* /tab */%}} +{{%/* tab name="R" */%}} +```R +> print("Hello World!") +``` +{{%/* /tab */%}} +{{%/* tab name="Bash" */%}} +```Bash +echo "Hello World!" +``` +{{%/* /tab */%}} +{{}} +```` + +Renders as: + +{{< tabs >}} +{{% tab name="python" %}} +```python +print("Hello World!") +``` +{{% /tab %}} +{{% tab name="R" %}} +```R +> print("Hello World!") +``` +{{% /tab %}} +{{% tab name="Bash" %}} +```Bash +echo "Hello World!" +``` +{{% /tab %}} +{{< /tabs >}} + +Tab views with the same tabs that belong to the same group sychronize their selection: + +{{< tabs >}} +{{% tab name="python" %}} +```python +print("Hello World!") +``` +{{% /tab %}} +{{% tab name="R" %}} +```R +> print("Hello World!") +``` +{{% /tab %}} +{{% tab name="Bash" %}} +```Bash +echo "Hello World!" +``` +{{% /tab %}} +{{< /tabs >}} + +## Config example + +````go +{{}} +{{%/* tab name="json" */%}} +```json +{ + "Hello": "World" +} +``` +{{%/* /tab */%}} +{{%/* tab name="XML" */%}} +```xml +World +``` +{{%/* /tab */%}} +{{%/* tab name="properties" */%}} +```properties +Hello = World +``` +{{%/* /tab */%}} +{{}} +```` + +Renders as: + +{{< tabs groupId="config" >}} +{{% tab name="json" %}} +```json +{ + "Hello": "World" +} +``` +{{% /tab %}} +{{% tab name="XML" %}} +```xml +World +``` +{{% /tab %}} +{{% tab name="properties" %}} +```ini +Hello = World +``` +{{% /tab %}} +{{< /tabs >}} + +{{% notice warning %}} +When using tab views with different content sets, make sure to use a common `groupId` for equal sets but distinct +`groupId` for different sets. The `groupId` defaults to `'default'`. +**Take this into account across the whole site!** +The tab selection is restored automatically based on the `groupId` and if it cannot find a tab item because it came +from the `'default'` group on a different page then all tabs will be empty at first. +{{% /notice %}} diff --git a/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.pir.md b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.pir.md new file mode 100644 index 0000000..bfbe015 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/shortcodes/tabs.pir.md @@ -0,0 +1,5 @@ ++++ +descrption = "Synchr'nize select'n o' content 'n different tabbed views" +title = "Tabbed views" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/showcase.en.md b/themes/hugo-theme-relearn/exampleSite/content/showcase.en.md new file mode 100644 index 0000000..a48ca6c --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/showcase.en.md @@ -0,0 +1,13 @@ ++++ +disableToc = true +title = "Showcase" ++++ + +#### [TAT](https://ovh.github.io/tat/overview/) by OVH +![TAT image](/images/showcase/tat.png?width=50pc) + +#### [Tshark.dev](https://tshark.dev) by Ross Jacobs +![Tshark.dev image](/images/showcase/tshark_dev.png?width=50pc) + +#### [inteliver](https://docs.inteliver.com) by Amir Lavasani +![docs.inteliver.com image](/images/showcase/inteliver_docs.png?width=50pc) \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/showcase.pir.md b/themes/hugo-theme-relearn/exampleSite/content/showcase.pir.md new file mode 100644 index 0000000..013c1b0 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/showcase.pir.md @@ -0,0 +1,5 @@ ++++ +disableToc = true +title = "Showcase" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/yours/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/yours/_index.en.md new file mode 100644 index 0000000..855d6c4 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/yours/_index.en.md @@ -0,0 +1,12 @@ ++++ +chapter = true +hidden = true +title = "This could be yours" +weight = 4 ++++ + +### Chapter 4 + +# This could be yours + +Start your success story. Now! \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/yours/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/yours/_index.pir.md new file mode 100644 index 0000000..8c1f2ed --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/yours/_index.pir.md @@ -0,0 +1,7 @@ ++++ +chapter = true +hidden = true +title = "This could be yers" +weight = 4 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.en.md b/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.en.md new file mode 100644 index 0000000..e05abd7 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.en.md @@ -0,0 +1,6 @@ ++++ +hidden = true +title = "The one and only hidden child" ++++ + +Placeholder... \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.pir.md b/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.pir.md new file mode 100644 index 0000000..53dd0c9 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/content/yours/children-1/_index.pir.md @@ -0,0 +1,5 @@ ++++ +hidden = true +title = "Th' one an' only hidden child" ++++ +{{< piratify >}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/layouts/partials/favicon.html b/themes/hugo-theme-relearn/exampleSite/layouts/partials/favicon.html new file mode 100644 index 0000000..48b528d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/layouts/partials/favicon.html @@ -0,0 +1,2 @@ +{{- $assetBusting := not .Site.Params.disableAssetsBusting -}} + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-footer.html b/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-footer.html new file mode 100644 index 0000000..cb43305 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-footer.html @@ -0,0 +1,6 @@ + + Download + Star + Fork +

Built with by Hugo

+ \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-pre.html b/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-pre.html new file mode 100644 index 0000000..98b2be8 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/layouts/partials/menu-pre.html @@ -0,0 +1 @@ +{{ if .Params.chapter }}{{ .Params.weight }}. {{ end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/ghcontributors.html b/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/ghcontributors.html new file mode 100644 index 0000000..3e8a928 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/ghcontributors.html @@ -0,0 +1,31 @@ + +
+ {{ $url := .Get 0 }} + {{ range getJSON $url }} +
+ + + {{.contributions}} commits +
+ {{ end }} +
\ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/piratify.html b/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/piratify.html new file mode 100644 index 0000000..2acac76 --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/layouts/shortcodes/piratify.html @@ -0,0 +1,97 @@ +{{- $langsrc := .Get 1 | default "en" }} +{{- $langtrg := .Page.Language.Lang }} +{{- $words := dict + "Hugo" "Cap'n Hugo" + "Info" "Ahoi" + "Note" "Avast" + "Tip" "Smarrrt Arrrse" + "Warning" "Arrr" + "good" "bloody" + "shortcode" "shorrrtcode" + "Shortcode" "Shorrrtcode" + "shortcodes" "shorrrtcodes" + "Shortcodes" "Shorrrtcodes" + "Mermaid" "Merrrmaid" + "Markdown" "Marrrkdown" + "Markup" "Marrrkup" + "markup" "marrrkup" + "for" "fer" + "Your" "Yer" + "your" "yer" + "You" "Ye" + "you" "ye" + "the" "th'" + "The" "Th'" + "is" "be" + "Is" "Be" + "are" "be" + "Are" "Be" + "Of" "O'" + "of" "o'" + "To" "T'" + "to" "t'" + "in" "'n" + "With" "Wit'" + "with" "wit'" + "Where" "Whar'" + "where" "whar'" + "After" "Aft" + "after" "aft" + "And" "An'" + "and" "an'" + "Load" "Board" + "load" "board" + "Loaded" "Boarded" + "loaded" "boarded" + "Content" "Rambling" + "content" "rambling" + "icon" "ay'con" + "Icon" "Ay'con" + "icons" "ay'cons" + "Icons" "Ay'cons" + "syntax" "rules" + "Syntax" "Rules" + "Site" "Ship" + "site" "ship" + "Page" "Plank" + "page" "plank" + "Pages" "Planks" + "pages" "planks" + "Relearn" "Relearrrn" + "Learn" "Learrrn" +}} +{{- $specials := dict + "(\\w)ing([\\s\\n<.,;?!:])" "'n" + "(\\w)ings([\\s\\n<.,;?!:])" "'ns" + "(\\w)tion([\\s\\n<.,;?!:])" "t'n" + "(\\w)tions([\\s\\n<.,;?!:])" "t'ns" + "(\\w)(?:[aeiou])ble([\\s\\n<.,;?!:])" "'ble" + "(\\w)(?:[aeiou])mize([\\s\\n<.,;?!:])" "'mize" + "(\\w)(?:[aeiou])mizes([\\s\\n<.,;?!:])" "'mizes" + "(\\w)(?:[aeiou])nize([\\s\\n<.,;?!:])" "'nize" + "(\\w)(?:[aeiou])nizes([\\s\\n<.,;?!:])" "'nizes" + "(.)=\"/([^\".]*?\")" (printf "=\"/%s/" $langtrg) +}} +{{- $fix := dict + "warn'n" "warning" + "sect'n" "section" + "n Cap'n" "n" + "Documentat'n fer Cap'n Hugo Relearrrn Theme" "Documentation for Hugo Relearn Theme" + "Avast right o' John" "Note right of John" +}} +{{- $c := "" }} +{{- range .Page.Translations }} + {{- if eq .Language.Lang $langsrc }} + {{- $c = .Content }} + {{- range $from, $to := $words }} + {{- $c = replaceRE (printf "([\\s\\n>])%s([\\s\\n<.,;?!:])" $from) (printf "${1}%s${2}" $to) $c }} + {{- end }} + {{- range $from, $to := $specials }} + {{- $c = replaceRE $from (printf "${1}%s${2}" $to) $c }} + {{- end }} + {{- range $from, $to := $fix }} + {{ $c = replace $c $from $to }} + {{- end }} + {{- end }} +{{- end }} +{{- $c | safeHTML }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.eot b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.eot new file mode 100755 index 0000000..702d2cc Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.eot differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.svg b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.svg new file mode 100755 index 0000000..811d3aa --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.ttf b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.ttf new file mode 100755 index 0000000..4c4637b Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.ttf differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff new file mode 100755 index 0000000..d95d5ca Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff2 b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff2 new file mode 100755 index 0000000..39074b2 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/fonts/monogramos-webfont.woff2 differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/images/logo.svg b/themes/hugo-theme-relearn/exampleSite/static/images/logo.svg new file mode 100644 index 0000000..48b180d --- /dev/null +++ b/themes/hugo-theme-relearn/exampleSite/static/images/logo.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/exampleSite/static/images/showcase/inteliver_docs.png b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/inteliver_docs.png new file mode 100644 index 0000000..9d9bf32 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/inteliver_docs.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tat.png b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tat.png new file mode 100644 index 0000000..35a5e63 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tat.png differ diff --git a/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tshark_dev.png b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tshark_dev.png new file mode 100644 index 0000000..08f81f9 Binary files /dev/null and b/themes/hugo-theme-relearn/exampleSite/static/images/showcase/tshark_dev.png differ diff --git a/themes/hugo-theme-relearn/i18n/ar.toml b/themes/hugo-theme-relearn/i18n/ar.toml new file mode 100644 index 0000000..85bbc01 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/ar.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "...البحث" + +[Clear-History] +other = "مسح السجل" + +[Attachments-label] +other = "مرفقات" + +[title-404] +other = "خطأ" + +[message-404] +other = ".¯\\_(ツ)_/¯أوبس. يبدو أن هذه الصفحة غير موجودة" + +[Go-to-homepage] +other = "الذهاب إلى الصفحة الرئيسية" + +[Edit-this-page] +other = "تعديل هذه الصفحة" + +[Shortcuts-Title] +other = "المزيد" + +[Expand-title] +other = "...قم بتوسيع" + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/de.toml b/themes/hugo-theme-relearn/i18n/de.toml new file mode 100644 index 0000000..66ee78c --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/de.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Suchen..." + +[Clear-History] +other = "Verlauf löschen" + +[Attachments-label] +other = "Anhänge" + +[title-404] +other = "Fehler" + +[message-404] +other = "Huch. Diese Seite scheint nicht zu existieren ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Gehe zur Homepage" + +[Edit-this-page] +other = "Bearbeite diese Seite" + +[Shortcuts-Title] +other = "Mehr" + +[Expand-title] +other = "Erweitere mich..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Anmerkung" + +[info] +other = "Info" + +[tip] +other = "Tipp" + +[warning] +other = "Warnung" diff --git a/themes/hugo-theme-relearn/i18n/en-pir.toml b/themes/hugo-theme-relearn/i18n/en-pir.toml new file mode 100644 index 0000000..6b893ba --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/en-pir.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Searrrch..." + +[Clear-History] +other = "Clear Historrry" + +[Attachments-label] +other = "Attachments" + +[title-404] +other = "Errror" + +[message-404] +other = "Woops. Looks like this plank doesn't exist ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Go t' homeplank" + +[Edit-this-page] +other = "Edit this plank" + +[Shortcuts-Title] +other = "Morrre" + +[Expand-title] +other = "Expand me..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Avast" + +[info] +other = "Ahoi" + +[tip] +other = "Smarrrt arrrse" + +[warning] +other = "Arrr" diff --git a/themes/hugo-theme-relearn/i18n/en.toml b/themes/hugo-theme-relearn/i18n/en.toml new file mode 100644 index 0000000..ef0d31b --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/en.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Search..." + +[Clear-History] +other = "Clear History" + +[Attachments-label] +other = "Attachments" + +[title-404] +other = "Error" + +[message-404] +other = "Woops. Looks like this page doesn't exist ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Go to homepage" + +[Edit-this-page] +other = "Edit this page" + +[Shortcuts-Title] +other = "More" + +[Expand-title] +other = "Expand me..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/es.toml b/themes/hugo-theme-relearn/i18n/es.toml new file mode 100644 index 0000000..4f8064f --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/es.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Buscar..." + +[Clear-History] +other = "Borrar Historial" + +[Attachments-label] +other = "Adjuntos" + +[title-404] +other = "Error" + +[message-404] +other = "Ups. Parece que la página no existe ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Ir al inicio" + +[Edit-this-page] +other = "Editar esta página" + +[Shortcuts-Title] +other = "Más" + +[Expand-title] +other = "Expandir..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Nota" + +[info] +other = "Información" + +[tip] +other = "Consejo" + +[warning] +other = "Aviso" diff --git a/themes/hugo-theme-relearn/i18n/fr.toml b/themes/hugo-theme-relearn/i18n/fr.toml new file mode 100644 index 0000000..b92493f --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/fr.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Rechercher..." + +[Clear-History] +other = "Supprimer l'historique" + +[Attachments-label] +other = "Pièces jointes" + +[title-404] +other = "Erreur" + +[message-404] +other = "Oups. On dirait que cette page n'existe pas ¯\\_(ツ)_/¯" + +[Go-to-homepage] +other = "Vers la page d'accueil" + +[Edit-this-page] +other = "Modifier la page" + +[Shortcuts-Title] +other = "Aller plus loin" + +[Expand-title] +other = "Déroulez-moi..." + +[Byte-symbol] +other = "o" + +[Kilobyte-symbol] +other = "ko" + +[Megabyte-symbol] +other = "Mo" + +[note] +other = "Remarque" + +[info] +other = "Information" + +[tip] +other = "Astuce" + +[warning] +other = "Avertissement" diff --git a/themes/hugo-theme-relearn/i18n/hi.toml b/themes/hugo-theme-relearn/i18n/hi.toml new file mode 100644 index 0000000..9e09f68 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/hi.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "खोजे..." + +[Clear-History] +other = "इतिहास मिटाएँ" + +[Attachments-label] +other = "संलग्नंक (अटैचमेंट)" + +[title-404] +other = "त्रुटि" + +[message-404] +other = "यह पृष्ठ अभि अनुपलब्ध है!" + +[Go-to-homepage] +other = "मुख्य पृष्ठ पर जाऐ" + +[Edit-this-page] +other = "यह पृष्ठ संपादित करें" + +[Shortcuts-Title] +other = "अधिक सामग्री दिखाएं" + +[Expand-title] +other = "विस्तार करे..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/id.toml b/themes/hugo-theme-relearn/i18n/id.toml new file mode 100644 index 0000000..a8bcd3d --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/id.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Telusuri..." + +[Clear-History] +other = "Bersihkan Riwayat" + +[Attachments-label] +other = "Lampiran" + +[title-404] +other = "Kesalahan" + +[message-404] +other = "Oops. Sepertinya halaman ini tidak ada ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Ke halaman depan" + +[Edit-this-page] +other = "Edit halaman ini" + +[Shortcuts-Title] +other = "Lainnya" + +[Expand-title] +other = "Bentangkan..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/ja.toml b/themes/hugo-theme-relearn/i18n/ja.toml new file mode 100644 index 0000000..c357d13 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/ja.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "検索..." + +[Clear-History] +other = "履歴削除" + +[Attachments-label] +other = "添付" + +[title-404] +other = "エラー" + +[message-404] +other = "おっと。ページが見当たりません。 ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "ホームページへ行く" + +[Edit-this-page] +other = "このページを編集" + +[Shortcuts-Title] +other = "更に" + +[Expand-title] +other = "開く..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/nl.toml b/themes/hugo-theme-relearn/i18n/nl.toml new file mode 100644 index 0000000..5ad56bd --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/nl.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Zoeken..." + +[Clear-History] +other = "Wis geschiedenis" + +[Attachments-label] +other = "Bijlagen" + +[title-404] +other = "Error" + +[message-404] +other = "Blijkbaar bestaat deze pagina niet ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Naar startpagina" + +[Edit-this-page] +other = "Deze pagina bewerken" + +[Shortcuts-Title] +other = "Snelkoppelingen" + +[Expand-title] +other = "Lees meer..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/pt.toml b/themes/hugo-theme-relearn/i18n/pt.toml new file mode 100644 index 0000000..6532da9 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/pt.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Procurar..." + +[Clear-History] +other = "Limpar Histórico" + +[Attachments-label] +other = "Anexos" + +[title-404] +other = "Erro" + +[message-404] +other = "Ops. Parece que a página não existe ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Ir para o início" + +[Edit-this-page] +other = "Editar esta página" + +[Shortcuts-Title] +other = "Mais" + +[Expand-title] +other = "Expandir..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Nota" + +[info] +other = "Informação" + +[tip] +other = "Dica" + +[warning] +other = "Aviso" diff --git a/themes/hugo-theme-relearn/i18n/ru.toml b/themes/hugo-theme-relearn/i18n/ru.toml new file mode 100644 index 0000000..69b44b7 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/ru.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Поиск..." + +[Clear-History] +other = "Очистить историю" + +[Attachments-label] +other = "Присоединенные файлы" + +[title-404] +other = "Ошибка" + +[message-404] +other = "Упс. Выглядит будто такой страницы нет ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Перейти на главную" + +[Edit-this-page] +other = "Редактировать" + +[Shortcuts-Title] +other = "Еще" + +[Expand-title] +other = "Развернуть..." + +[Byte-symbol] +other = "Б" + +[Kilobyte-symbol] +other = "КБ" + +[Megabyte-symbol] +other = "МБ" + +[note] +other = "Заметка" + +[info] +other = "Информация" + +[tip] +other = "Совет" + +[warning] +other = "Внимание" diff --git a/themes/hugo-theme-relearn/i18n/tr.toml b/themes/hugo-theme-relearn/i18n/tr.toml new file mode 100644 index 0000000..a6a9bab --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/tr.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "Ara..." + +[Clear-History] +other = "Geçmişi Temizle" + +[Attachments-label] +other = "Ekler" + +[title-404] +other = "Hata" + +[message-404] +other = "Uups. Görünüşe göre böyle bir sayfa yok ¯\\_(ツ)_/¯" + +[Go-to-homepage] +other = "Anasayfaya dön" + +[Edit-this-page] +other = "Sayfayı düzenle" + +[Shortcuts-Title] +other = "Dahası Var" + +[Expand-title] +other = "Genişlet..." + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Note" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[warning] +other = "Warning" diff --git a/themes/hugo-theme-relearn/i18n/vn.toml b/themes/hugo-theme-relearn/i18n/vn.toml new file mode 100644 index 0000000..fbd7ee7 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/vn.toml @@ -0,0 +1,50 @@ +[Search-placeholder] +other = "Tìm kiếm..." + +[Clear-History] +other = "Xóa lịch sử.." + +[Attachments-label] +other = "Tập tin đính kèm" + +[title-404] +other = "Lỗi" + +[message-404] +other = "Tiếc quá! Có vẻ như trang này không tồn tại ¯\\_(ツ)_/¯." + +[Go-to-homepage] +other = "Đi đến trang chủ" + +[Edit-this-page] +other = "Chỉnh sửa trang này" + +[Shortcuts-Title] +other = "Nội dung khác" + +[Expand-title] +other = "Mở rộng..." + +[BinaryPrefix-kilobyte] +other = "kb" + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "Ghi chú" + +[info] +other = "Thông tin" + +[tip] +other = "Mẹo vặt" + +[warning] +other = "Cảnh báo" diff --git a/themes/hugo-theme-relearn/i18n/zh-cn.toml b/themes/hugo-theme-relearn/i18n/zh-cn.toml new file mode 100644 index 0000000..8702b80 --- /dev/null +++ b/themes/hugo-theme-relearn/i18n/zh-cn.toml @@ -0,0 +1,47 @@ +[Search-placeholder] +other = "搜索..." + +[Clear-History] +other = "清理历史记录" + +[Attachments-label] +other = "附件" + +[title-404] +other = "错误" + +[message-404] +other = "哎哟。 看起来这个页面不存在 ¯\\_(ツ)_/¯。" + +[Go-to-homepage] +other = "转到主页" + +[Edit-this-page] +other = "编辑当前页" + +[Shortcuts-Title] +other = "更多" + +[Expand-title] +other = "展开" + +[Byte-symbol] +other = "B" + +[Kilobyte-symbol] +other = "KB" + +[Megabyte-symbol] +other = "MB" + +[note] +other = "注释" + +[info] +other = "信息" + +[tip] +other = "提示" + +[warning] +other = "警告" diff --git a/themes/hugo-theme-relearn/images/screenshot.png b/themes/hugo-theme-relearn/images/screenshot.png new file mode 100644 index 0000000..b7beb53 Binary files /dev/null and b/themes/hugo-theme-relearn/images/screenshot.png differ diff --git a/themes/hugo-theme-relearn/images/tn.png b/themes/hugo-theme-relearn/images/tn.png new file mode 100644 index 0000000..2d65346 Binary files /dev/null and b/themes/hugo-theme-relearn/images/tn.png differ diff --git a/themes/hugo-theme-relearn/layouts/404.html b/themes/hugo-theme-relearn/layouts/404.html new file mode 100644 index 0000000..fc2bf44 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/404.html @@ -0,0 +1,59 @@ + + + + + + {{ hugo.Generator -}} + {{- 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 }} + {{ .Scratch.Get "title" }} {{ default "::" .Site.Params.titleSeparator }} {{ .Site.Title }} + + {{- $assetBusting := not .Site.Params.disableAssetsBusting }} + + + + + + {{- with .Site.Params.themeVariant }} + + + {{- end }} + + {{- range .Site.Params.custom_css }} + + {{- end }} + + {{- partial "custom-header.html" . }} + + +
+
+
+
+

{{ T "title-404" }}

+

+

{{ T "message-404" }}

+

+

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

+

Page not found!

+
+
+
+ + diff --git a/themes/hugo-theme-relearn/layouts/_default/list.html b/themes/hugo-theme-relearn/layouts/_default/list.html new file mode 100644 index 0000000..e9953d5 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/_default/list.html @@ -0,0 +1,20 @@ +{{- partial "header.html" . }} +{{- if eq .Kind "section" }} + +{{ partial "content.html" . }} +{{- end }} + {{- if or (eq .Kind "taxonomy") (eq .Kind "term") }} +
    + {{- range .Pages }} + {{- if and .Title (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }} +
  • {{ .Title }}
  • + {{- end }} + {{- end }} +
+ {{- end }} +
+ {{- with .Params.LastModifierDisplayName }} + {{ . }} {{ with $.Date }} {{ .Format "02/01/2006" }}{{ end }} + {{- end }} +
+{{- partial "footer.html" . }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/_default/rss.xml b/themes/hugo-theme-relearn/layouts/_default/rss.xml new file mode 100644 index 0000000..445be9c --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/_default/rss.xml @@ -0,0 +1,42 @@ +{{- printf "" | safeHTML }} +{{- partial "page-meta.go" . }} +{{- $pages := .Page.Pages }} +{{- if .Page.IsHome }} + {{- $pages = .Page.Sections }} +{{- else if .Page.Sections}} + {{- $pages = (.Page.Pages | union .Page.Sections) }} +{{- end }} +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 0 -}} + {{- $pages = $pages | first $limit -}} +{{- end }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{- with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{- end -}} + {{- range $pages }} + {{- if and .Permalink .Title (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableSeoHiddenPages true) ) }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{- with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{- end }} + {{ .Permalink }} + {{ .Summary | html }} + + {{- end }} + {{- end }} + + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/_default/single.html b/themes/hugo-theme-relearn/layouts/_default/single.html new file mode 100644 index 0000000..62c9d81 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/_default/single.html @@ -0,0 +1,9 @@ +{{- partial "header.html" . }} + +{{ partial "content.html" . }} +
+ {{- with .Params.LastModifierDisplayName }} + {{ . }} {{ with $.Date }} {{ .Format "02/01/2006" }}{{ end }} + {{- end }} +
+{{- partial "footer.html" . }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/_default/sitemap.xml b/themes/hugo-theme-relearn/layouts/_default/sitemap.xml new file mode 100644 index 0000000..7ac5f64 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/_default/sitemap.xml @@ -0,0 +1,24 @@ +{{ printf "" | safeHTML }} +{{- partial "page-meta.go" . }} + +{{- range .Data.Pages }} +{{- if and .Title (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableSeoHiddenPages true) ) }} + + {{ .Permalink }}{{ if not .Lastmod.IsZero }} + {{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }} + {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} + {{ .Sitemap.Priority }}{{ end }}{{ if .IsTranslated }}{{ range .Translations }} + {{ end }} + {{ end }} + +{{- end -}} +{{- end }} + diff --git a/themes/hugo-theme-relearn/layouts/index.html b/themes/hugo-theme-relearn/layouts/index.html new file mode 100644 index 0000000..b5f7a61 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/index.html @@ -0,0 +1,19 @@ +{{- partial "header.html" . }} + + navigation + + +{{if .Site.Home.Content }} +{{.Site.Home.Content}} +{{else}} +

Customize your own home page

+

+ The site is working. Don't forget to customize this page with your own. You typically have 3 choices : +

+
    +
  • 1. Create an _index.md document in content folder and fill it with Markdown content
  • +
  • 2. Create an index.html file in the static folder and fill the file with HTML content
  • +
  • 3. Configure your server to automatically redirect home page to one your documentation page
  • +
+{{ end }} +{{- partial "footer.html" . }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/index.json b/themes/hugo-theme-relearn/layouts/index.json new file mode 100644 index 0000000..d329ce3 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/index.json @@ -0,0 +1,7 @@ +{{- $pages := slice }} +{{- range .Site.Pages }} +{{- if and .Title (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableSearchHiddenPages true) ) }} +{{- $pages = $pages | append (dict "uri" .RelPermalink "title" .Title "tags" .Params.tags "description" .Description "content" (.Plain | htmlUnescape)) }} +{{- end }} +{{- end }} +{{- $pages | jsonify (dict "indent" " ") }} diff --git a/themes/hugo-theme-relearn/layouts/partials/content.html b/themes/hugo-theme-relearn/layouts/partials/content.html new file mode 100644 index 0000000..fb3ffc2 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/content.html @@ -0,0 +1 @@ +{{ .Content }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/custom-comments.html b/themes/hugo-theme-relearn/layouts/partials/custom-comments.html new file mode 100644 index 0000000..53f5831 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/custom-comments.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/custom-footer.html b/themes/hugo-theme-relearn/layouts/partials/custom-footer.html new file mode 100644 index 0000000..daa6be7 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/custom-footer.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/custom-header.html b/themes/hugo-theme-relearn/layouts/partials/custom-header.html new file mode 100644 index 0000000..ee449b0 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/custom-header.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/favicon.html b/themes/hugo-theme-relearn/layouts/partials/favicon.html new file mode 100644 index 0000000..b47de9f --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/favicon.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/footer.html b/themes/hugo-theme-relearn/layouts/partials/footer.html new file mode 100644 index 0000000..6285591 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/footer.html @@ -0,0 +1,52 @@ + {{- if .Params.chapter }} + + {{- end }} + +{{- partial "custom-comments.html" . }} + + + +
+
+
+ + + + + + +{{- if (or (and (ne .Params.disableMermaid nil) (not .Params.disableMermaid)) (not .Site.Params.disableMermaid)) }} + {{- if isset .Params "custommermaidurl" }} + + {{- else if isset .Site.Params "custommermaidurl" }} + + {{- else }} + + {{- end }} + {{- if isset .Params "mermaidinitialize" }} + {{- $.Scratch.Set "mermaidInitialize" .Params.mermaidInitialize }} + {{- else if isset .Site.Params "mermaidinitialize" }} + {{- $.Scratch.Set "mermaidInitialize" .Site.Params.mermaidInitialize }} + {{- else }} + {{- $.Scratch.Set "mermaidInitialize" "{ \"startOnLoad\": true }" }} + {{- end }} + +{{- end }} + + {{- partial "custom-footer.html" . }} + + diff --git a/themes/hugo-theme-relearn/layouts/partials/header.html b/themes/hugo-theme-relearn/layouts/partials/header.html new file mode 100644 index 0000000..a156aa4 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/header.html @@ -0,0 +1,103 @@ + + + + + + {{ hugo.Generator -}} + {{- partial "meta.html" . }} + {{ partial "favicon.html" . }} + {{ .Title }} {{ default "::" .Site.Params.titleSeparator }} {{ .Site.Title }} + + {{- $assetBusting := not .Site.Params.disableAssetsBusting }} + + + + + + + {{- with .Site.Params.themeVariant }} + + + {{- end }} + + {{- range .Site.Params.custom_css }} + + {{- end }} + + + {{- partial "custom-header.html" . }} + + + {{- partial "menu.html" . }} +
+
+
+ {{- if not .IsHome }} +
+ {{- if and (or .IsPage .IsSection) .Site.Params.editURL }} + {{- $File := .File }} + {{- $Site := .Site }} + {{- with $File.Path }} + + {{- end }} + {{- end }} + {{- $toc := (and (not .Params.disableToc) (not .Params.chapter)) }} + + {{- if $toc }} + {{- partial "toc.html" . }} + {{- end }} +
+ {{- end }} +
+{{- partial "tags.html" . }} +
+ {{- if .Params.chapter }} +
+ {{- end }} +
+ {{- if and (not .IsHome) (not .Params.chapter) }} +

{{ if eq .Kind "term" }}{{ .Data.Singular }} :: {{ end }}{{ .Title }}

+ {{- end }} + +{{- define "breadcrumb" }} + {{- $parent := .page.Parent }} + {{- $depth := add .depth 1 }} + {{- if $parent }} + {{- template "breadcrumb" dict "page" $parent "depth" $depth }} + {{- end }} +
  • {{ .page.Title }}{{ if .depth }} > {{ end }}
  • +{{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/logo.html b/themes/hugo-theme-relearn/layouts/partials/logo.html new file mode 100644 index 0000000..f94d7be --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/logo.html @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/menu-footer.html b/themes/hugo-theme-relearn/layouts/partials/menu-footer.html new file mode 100644 index 0000000..478e2ef --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/menu-footer.html @@ -0,0 +1,2 @@ + +

    Built with by Hugo

    \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/menu-post.html b/themes/hugo-theme-relearn/layouts/partials/menu-post.html new file mode 100644 index 0000000..1022847 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/menu-post.html @@ -0,0 +1 @@ +{{ .Params.Post | safeHTML }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/menu-pre.html b/themes/hugo-theme-relearn/layouts/partials/menu-pre.html new file mode 100644 index 0000000..0552d7a --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/menu-pre.html @@ -0,0 +1 @@ +{{ .Params.Pre | safeHTML }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/menu.html b/themes/hugo-theme-relearn/layouts/partials/menu.html new file mode 100644 index 0000000..e5e55dd --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/menu.html @@ -0,0 +1,137 @@ + + + {{- define "section-tree-nav" }} + {{- $showvisitedlinks := .showvisitedlinks }} + {{- $currentNode := .currentnode }} + {{- $currentFileUniqueID := "" }} + {{- $alwaysopen := .alwaysopen }} + {{- with $currentNode.File }}{{ $currentFileUniqueID = .UniqueID }}{{ end }} + {{- with .sect }} + {{- $hidden := and (eq (.Scratch.Get "relearnIsHiddenFromCurrent") true) (not $.showhidden) (not (.IsAncestor $currentNode)) }} + {{- if $hidden }} + {{- else if .IsSection }} + {{- safeHTML .Params.head }} + {{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }} + {{- $currentOrdersectionsby := .Params.ordersectionsby | default $defaultOrdersectionsby }} + {{- $currentAlwaysopen := .Params.alwaysopen | default $alwaysopen }} +
  • + {{- partial "menu-pre.html" . }}{{ or .Params.menuTitle .LinkTitle .Title }}{{ partial "menu-post.html" . }} + {{- if $showvisitedlinks }}{{ end }}
      + {{- $pages := .Pages }} + {{- if .Page.IsHome }} + {{- $pages = .Sections }} + {{- else if .Page.Sections}} + {{- $pages = (.Pages | union .Sections) }} + {{- end }} + {{- $defaultAlwaysopen := .Site.Params.alwaysopen | default true }} + {{- if eq $currentOrdersectionsby "title" }} + {{- range $pages.ByTitle }} + {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }} + {{- end }} + {{- else }} + {{- range $pages.ByWeight }} + {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }} + {{- end }} + {{- end }}
  • + {{- else }} +
  • + {{- partial "menu-pre.html" . }}{{ or .Params.menuTitle .LinkTitle .Title }}{{ partial "menu-post.html" . }} + {{- if $showvisitedlinks }}{{ end }}
  • + {{- end }} + {{- end }} + {{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/meta.html b/themes/hugo-theme-relearn/layouts/partials/meta.html new file mode 100644 index 0000000..4fb098b --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/meta.html @@ -0,0 +1,21 @@ +{{- partial "page-meta.go" . }} +{{- if not (and .Title (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableSeoHiddenPages true) ) ) }} + +{{- else }} + {{- range .AlternativeOutputFormats }} + {{- if ne .Name "JSON" }} + + {{- end }} + {{- end }} +{{- end }} +{{- if and (ne .Site.Params.disableSeoHiddenPages true) (ne .Site.Params.disableSearchHiddenPages true) }} +{{- range .AlternativeOutputFormats }} +{{- if eq .Name "JSON" }} + +{{- end }} +{{- end }} +{{- end }} + +{{- with .Site.Params.author }} + +{{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/page-meta.go b/themes/hugo-theme-relearn/layouts/partials/page-meta.go new file mode 100644 index 0000000..0aca016 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/page-meta.go @@ -0,0 +1,56 @@ +{{- $currentNode := . }} +{{- $currentNode.Scratch.Set "relearnIsSelfFound" nil }} +{{- $currentNode.Scratch.Set "relearnPrevPage" nil }} +{{- $currentNode.Scratch.Set "relearnNextPage" nil }} +{{- $currentNode.Scratch.Set "relearnSubPages" nil }} +{{- template "relearn-structure" dict "node" .Site.Home "currentnode" $currentNode "hiddenstem" false "hiddencurrent" false }} +{{- define "relearn-structure" }} + {{- $currentNode := .currentnode }} + {{- $isSelf := eq $currentNode.RelPermalink .node.RelPermalink }} + {{- $isDescendant := and (not $isSelf) (.node.IsDescendant $currentNode) }} + {{- $isAncestor := and (not $isSelf) (.node.IsAncestor $currentNode) }} + {{- $isOther := and (not $isDescendant) (not $isSelf) (not $isAncestor) }} + + {{- if $isSelf }} + {{- $currentNode.Scratch.Set "relearnIsSelfFound" true }} + {{- end}} + {{- $isSelfFound := eq ($currentNode.Scratch.Get "relearnIsSelfFound") true }} + {{- $isPreSelf := and (not $isSelfFound) (not $isSelf) }} + {{- $isPostSelf := and ($isSelfFound) (not $isSelf) }} + + {{- $hidden_node := or (.node.Params.hidden) (eq .node.Title "") }} + {{- $hidden_stem:= or $hidden_node .hiddenstem }} + {{- $hidden_current_stem:= or $hidden_node .hiddencurrent }} + {{- $hidden_from_current := or (and $hidden_node (not $isAncestor) (not $isSelf) ) (and .hiddencurrent (or $isPreSelf $isPostSelf $isDescendant) ) }} + {{- .node.Scratch.Set "relearnIsHiddenNode" $hidden_node}} + {{- .node.Scratch.Set "relearnIsHiddenStem" $hidden_stem}} + {{- .node.Scratch.Set "relearnIsHiddenFromCurrent" $hidden_current_stem}} + + {{- if not $hidden_from_current }} + {{- if $isPreSelf }} + {{- $currentNode.Scratch.Set "relearnPrevPage" .node }} + {{- else if and $isPostSelf (eq ($currentNode.Scratch.Get "relearnNextPage") nil) }} + {{- $currentNode.Scratch.Set "relearnNextPage" .node }} + {{- end}} + {{- end }} + + {{- $currentNode.Scratch.Set "relearnSubPages" .node.Pages }} + {{- if .node.IsHome }} + {{- $currentNode.Scratch.Set "relearnSubPages" .node.Sections }} + {{- else if .node.Sections }} + {{- $currentNode.Scratch.Set "relearnSubPages" (.node.Pages | union .node.Sections) }} + {{- end }} + {{- $pages := ($currentNode.Scratch.Get "relearnSubPages") }} + + {{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }} + {{- $currentOrdersectionsby := .node.Params.ordersectionsby | default $defaultOrdersectionsby }} + {{- if eq $currentOrdersectionsby "title"}} + {{- range $pages.ByTitle }} + {{- template "relearn-structure" dict "node" . "currentnode" $currentNode "hiddenstem" $hidden_stem "hiddencurrent" $hidden_from_current }} + {{- end}} + {{- else}} + {{- range $pages.ByWeight }} + {{- template "relearn-structure" dict "node" . "currentnode" $currentNode "hiddenstem" $hidden_stem "hiddencurrent" $hidden_from_current }} + {{- end}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/search.html b/themes/hugo-theme-relearn/layouts/partials/search.html new file mode 100644 index 0000000..4cbfffd --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/search.html @@ -0,0 +1,16 @@ + + {{- $assetBusting := not .Site.Params.disableAssetsBusting }} + + + {{ "" | safeHTML }} + {{ "" | safeHTML }} + + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/tags.html b/themes/hugo-theme-relearn/layouts/partials/tags.html new file mode 100644 index 0000000..e61be76 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/tags.html @@ -0,0 +1,8 @@ + +{{- if .Params.tags }} +
    +{{- range .Params.tags }} + {{ . }} +{{- end }} +
    +{{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/partials/toc.html b/themes/hugo-theme-relearn/layouts/partials/toc.html new file mode 100644 index 0000000..6775620 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/partials/toc.html @@ -0,0 +1,6 @@ + +
    +
    +{{ .TableOfContents }} +
    +
    \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/attachments.html b/themes/hugo-theme-relearn/layouts/shortcodes/attachments.html new file mode 100644 index 0000000..0c17506 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/attachments.html @@ -0,0 +1,36 @@ +{{- $_hugo_config := `{ "version": 1 }` }} +{{- $style := .Get "style" | default "neutral" }} +{{- $title := .Get "title" | default ("Attachments-label" | T) }} +{{- $sort := .Get "sort" | default "asc" }} +
    +
    {{ $title }}
    +
      + {{- $filesName := "files" }} + {{- if ne .Page.File.BaseFileName "index" }} + {{- $filesName = printf "%s.files" .Page.File.BaseFileName }} + {{- end}} + + {{- $fileLink := printf "%s/%s" (.Page.Language.ContentDir | default "content") .Page.File.Dir }} + {{- $fileLink = replace (replace $fileLink "\\" "/") "content/" "" }} + {{- $fileDir := printf "%s/%s" (.Page.Language.ContentDir | default "content") .Page.File.Dir }} + {{- $fileDir = replace $fileDir "\\" "/" }} + {{- $pattern := .Get "pattern" | default "" }} + {{- range sort (readDir (printf "%s%s" $fileDir $filesName) ) "Name" $sort }} + {{- if findRE $pattern .Name}} + {{- $size := .Size }} + {{- $unit := "Byte-symbol" }} + {{- if ge $size 1024 }} + {{- $size = div $size 1024 }} + {{- $unit = "Kilobyte-symbol" }} + {{- end }} + {{- if ge $size 1024 }} + {{- $size = div $size 1024 }} + {{- $unit = "Megabyte-symbol" }} + {{- end }} + {{- $unitsymbol := $unit | T }} +
    • {{.Name}} ({{$size}} {{$unitsymbol}})
    • + {{- end }} + {{- end }} +
    + {{- .Inner }} +
    diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/button.html b/themes/hugo-theme-relearn/layouts/shortcodes/button.html new file mode 100644 index 0000000..0514798 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/button.html @@ -0,0 +1,14 @@ +{{- $_hugo_config := `{ "version": 1 }` }} + + {{- $icon := .Get "icon" }} + {{- $iconposition := .Get "icon-position" }} + {{- if ($icon) }} + {{- if or (not ($iconposition)) (eq $iconposition "left") }} + + {{- end }} + {{- end }} + {{ .Inner }} + {{- if and ($icon) (eq $iconposition "right")}} + + {{- end }} + diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/children.html b/themes/hugo-theme-relearn/layouts/shortcodes/children.html new file mode 100644 index 0000000..7558a69 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/children.html @@ -0,0 +1,96 @@ +{{- $_hugo_config := `{ "version": 1 }` }} +{{- $showhidden := .Get "showhidden"}} +{{- $style := .Get "style" | default "li" }} +{{- $depth := .Get "depth" | default 1 }} +{{- $withDescription := .Get "description" | default false }} +{{- $sortTerm := .Get "sort" | lower }} +{{- $containerstyle := .Get "containerstyle" | default "ul" }} + +{{ (printf "<%s class=\"children children-%s children-sort-%s\">" $containerstyle $style $sortTerm)|safeHTML }} + {{- $pages := .Page.Pages }} + {{- if .Page.IsHome }} + {{- $pages = .Page.Sections }} + {{- else if .Page.Sections}} + {{- $pages = (.Page.Pages | union .Page.Sections) }} + {{- end }} + + {{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }} + {{- $currentOrdersectionsby := $sortTerm | default (.Page.Params.ordersectionsby | default $defaultOrdersectionsby) }} + {{- if eq $currentOrdersectionsby "weight" }} + {{- template "childs" dict "menu" $pages.ByWeight "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- else if or (eq $currentOrdersectionsby "name") (eq $currentOrdersectionsby "title") }} + {{- template "childs" dict "menu" $pages.ByTitle "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- else if eq $currentOrdersectionsby "publishdate" }} + {{- template "childs" dict "menu" $pages.ByPublishDate "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- else if eq $currentOrdersectionsby "date" }} + {{- template "childs" dict "menu" $pages.ByDate "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- else if eq $currentOrdersectionsby "length" }} + {{- template "childs" dict "menu" $pages.ByLength "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- else }} + {{- template "childs" dict "menu" $pages "containerstyle" $containerstyle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm }} + {{- end }} +{{ (printf "" $containerstyle)|safeHTML }} + +{{- define "childs" }} + {{- range .menu }} + {{- $hidden := and (or (.Params.hidden) (eq .Title "")) (not $.showhidden) }} + {{- if not $hidden }} + {{- if not .IsHome }} + {{- if hasPrefix $.style "h" }} + {{- $num := sub ( int (trim $.style "h") ) 1 }} + {{- $numn := add $num $.count }} + +{{ (printf "" $numn)|safeHTML -}} +{{ .Title }} +{{- (printf "" $numn)|safeHTML }} + + {{- else }} +{{ (printf "<%s>" $.style)|safeHTML -}} +{{ .Title }} +{{- (printf "" $.style)|safeHTML }} + {{- end }} + + {{- if $.description }} + {{- if .Description }} +

    {{ .Description }}

    + {{else}} +

    {{ .Summary }}

    + {{- end }} + {{- end }} + {{- end }} + {{- if lt $.count $.depth }} + + {{- if eq $.style "li" }} +{{- (printf "<%s>" $.containerstyle)|safeHTML }} + {{- end }} + + {{- $pages := .Page.Pages }} + {{- if .Page.IsHome }} + {{- $pages = .Page.Sections }} + {{- else if .Page.Sections}} + {{- $pages = (.Page.Pages | union .Page.Sections) }} + {{- end }} + + {{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }} + {{- $currentOrdersectionsby := $.sortTerm | default (.Page.Params.ordersectionsby | default $defaultOrdersectionsby) }} + {{- if eq $currentOrdersectionsby "weight" }} + {{- template "childs" dict "menu" $pages.ByWeight "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- else if or (eq $.currentOrdersectionsby "name") (eq $.currentOrdersectionsby "title") }} + {{- template "childs" dict "menu" $pages.ByTitle "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- else if eq $.currentOrdersectionsby "publishdate" }} + {{- template "childs" dict "menu" $pages.ByPublishDate "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- else if eq $.currentOrdersectionsby "date" }} + {{- template "childs" dict "menu" $pages.ByDate "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- else if eq $.currentOrdersectionsby "length" }} + {{- template "childs" dict "menu" $pages.ByLength "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- else }} + {{- template "childs" dict "menu" $pages "containerstyle" $.containerstyle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm }} + {{- end }} + + {{- if eq $.style "li" }} +{{- (printf "" $.containerstyle)|safeHTML }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/expand.html b/themes/hugo-theme-relearn/layouts/shortcodes/expand.html new file mode 100644 index 0000000..4de845a --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/expand.html @@ -0,0 +1,19 @@ +{{- $_hugo_config := `{ "version": 1 }` }} +{{- $title := .Get 0 | default (T "Expand-title") }} +{{- $content := .Inner | safeHTML }} +{{- $expanded := eq (.Get 1) "true" }} +
    + {{/* things are getting complicated when search tries to open the expand box while jquery sets the display CSS on the element */}} + + + + {{ $title }} + +
    + {{ $content }} +
    +
    \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/include.html b/themes/hugo-theme-relearn/layouts/shortcodes/include.html new file mode 100644 index 0000000..a7dc2bf --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/include.html @@ -0,0 +1,7 @@ +{{- $file := .Get 0 }} +{{- $showFirstHeading := .Get 1 | default true }} +{{- if not $showFirstHeading }}
    {{ end }} + +{{ $file | readFile | safeHTML }} + +{{- if not $showFirstHeading }}
    {{ end }} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/mermaid.html b/themes/hugo-theme-relearn/layouts/shortcodes/mermaid.html new file mode 100644 index 0000000..a3e99e1 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/mermaid.html @@ -0,0 +1,4 @@ +{{- $_hugo_config := `{ "version": 1 }` }} +
    + {{- safeHTML .Inner -}} +
    diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/notice.html b/themes/hugo-theme-relearn/layouts/shortcodes/notice.html new file mode 100644 index 0000000..b5783a7 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/notice.html @@ -0,0 +1,7 @@ +{{- $_hugo_config := `{ "version": 1 }` }} +{{- $style := .Get 0 }} +{{- $title := $style | T }} +
    +
    {{ $title }}
    + {{- .Inner }} +
    \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/ref.html b/themes/hugo-theme-relearn/layouts/shortcodes/ref.html new file mode 100644 index 0000000..67dbd94 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/ref.html @@ -0,0 +1,14 @@ +{{- if in (.Get 0) "/_index.md" -}} + {{- $paths := (split (.Get 0) "_index.md") -}} + {{- $pagepath := index $paths 0 -}} + {{- $anchor := index $paths 1 -}} + {{- with .Site.GetPage "section" (trim $pagepath "/") -}} + {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} + {{- end -}} +{{- else -}} + {{- with .Site.GetPage "section" (.Get 0) }} + {{- .RelPermalink -}} + {{- else -}} + {{- .Get 0 | relref .Page -}} + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/relref.html b/themes/hugo-theme-relearn/layouts/shortcodes/relref.html new file mode 100644 index 0000000..67dbd94 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/relref.html @@ -0,0 +1,14 @@ +{{- if in (.Get 0) "/_index.md" -}} + {{- $paths := (split (.Get 0) "_index.md") -}} + {{- $pagepath := index $paths 0 -}} + {{- $anchor := index $paths 1 -}} + {{- with .Site.GetPage "section" (trim $pagepath "/") -}} + {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} + {{- end -}} +{{- else -}} + {{- with .Site.GetPage "section" (.Get 0) }} + {{- .RelPermalink -}} + {{- else -}} + {{- .Get 0 | relref .Page -}} + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/siteparam.html b/themes/hugo-theme-relearn/layouts/shortcodes/siteparam.html new file mode 100644 index 0000000..20cd2ca --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/siteparam.html @@ -0,0 +1,7 @@ +{{- $paramName := (.Get 0) -}} +{{- $siteParams := .Site.Params -}} +{{- with $paramName -}} + {{- with $siteParams -}} + {{- index . (lower $paramName) -}} + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/tab.html b/themes/hugo-theme-relearn/layouts/shortcodes/tab.html new file mode 100644 index 0000000..661af36 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/tab.html @@ -0,0 +1,11 @@ +{{ if .Parent }} + {{ $name := trim (.Get "name") " " }} + {{ if not (.Parent.Scratch.Get "tabs") }} + {{ .Parent.Scratch.Set "tabs" slice }} + {{ end }} + {{ with .Inner }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "content" . ) }} + {{ end }} +{{ else }} + {{- errorf "[%s] %q: tab shortcode missing its parent" site.Language.Lang .Page.Path -}} +{{ end}} diff --git a/themes/hugo-theme-relearn/layouts/shortcodes/tabs.html b/themes/hugo-theme-relearn/layouts/shortcodes/tabs.html new file mode 100644 index 0000000..e39cd20 --- /dev/null +++ b/themes/hugo-theme-relearn/layouts/shortcodes/tabs.html @@ -0,0 +1,21 @@ +{{- with .Inner }}{{/* don't do anything, just call it */}}{{ end }} +{{- $groupId := default "default" (.Get "groupId") }} +
    +
    + {{- range $idx, $tab := .Scratch.Get "tabs" }} + + {{- end }} +
    +
    + {{- range $idx, $tab := .Scratch.Get "tabs" }} +
    +{{ .content }} +
    + {{- end }} +
    +
    diff --git a/themes/hugo-theme-relearn/static/css/auto-complete.css b/themes/hugo-theme-relearn/static/css/auto-complete.css new file mode 100644 index 0000000..082a1f5 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/auto-complete.css @@ -0,0 +1,48 @@ +.autocomplete-suggestions { + text-align: left; + cursor: default; + border: 1px solid #ccc; + border-top: 0; + background: #fff; + box-shadow: -1px 1px 3px rgba(0,0,0,.1); + + /* core styles should not be changed */ + position: absolute; + display: none; + z-index: 9999; + max-height: 254px; + overflow: hidden; + overflow-y: auto; + box-sizing: border-box; +} +.autocomplete-suggestion { + position: relative; + cursor: pointer; + padding: 7px; + line-height: 23px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #333; +} + +.autocomplete-suggestion b { + font-weight: normal; + color: #1f8dd6; +} + +.autocomplete-suggestion.selected { + background: #333; + color: #fff; +} + +.autocomplete-suggestion:hover { + background: #444; + color: #fff; +} + +.autocomplete-suggestion > .context { + font-size: 12px; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/themes/hugo-theme-relearn/static/css/featherlight.min.css b/themes/hugo-theme-relearn/static/css/featherlight.min.css new file mode 100644 index 0000000..058487f --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/featherlight.min.css @@ -0,0 +1,8 @@ +/** + * Featherlight - ultra slim jQuery lightbox + * Version 1.7.13 - http://noelboss.github.io/featherlight/ + * + * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) + * MIT Licensed. +**/ +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}} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/css/fontawesome-all.min.css b/themes/hugo-theme-relearn/static/css/fontawesome-all.min.css new file mode 100644 index 0000000..ac76ff1 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/fontawesome-all.min.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/css/nucleus.css b/themes/hugo-theme-relearn/static/css/nucleus.css new file mode 100644 index 0000000..f3a8c16 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/nucleus.css @@ -0,0 +1,611 @@ +*, *::before, *::after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +@-webkit-viewport { + width: device-width; } +@-moz-viewport { + width: device-width; } +@-ms-viewport { + width: device-width; } +@-o-viewport { + width: device-width; } +@viewport { + width: device-width; } +html { + font-size: 100%; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; } + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; } + +audio:not([controls]) { + display: none; + height: 0; } + +[hidden], +template { + display: none; } + +a { + background: transparent; + text-decoration: none; } + +a:active, +a:hover { + outline: 0; } + +abbr[title] { + border-bottom: 1px dotted; } + +b, +strong { + font-weight: bold; } + +dfn { + font-style: italic; } + +mark { + background: #FFFF27; + color: #333; } + +sub, +sup { + font-size: 0.8rem; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +img { + border: 0; + max-width: 100%; } + +svg:not(:root) { + overflow: hidden; } + +figure { + margin: 1em 40px; } + +hr { + height: 0; } + +pre { + overflow: auto; } + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; } + +button { + overflow: visible; } + +button, +select { + text-transform: none; } + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; } + +button[disabled], +html input[disabled] { + cursor: default; } + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +input { + line-height: normal; } + +input[type="checkbox"], +input[type="radio"] { + padding: 0; } + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +input[type="search"] { + -webkit-appearance: textfield; } + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +legend { + border: 0; + padding: 0; } + +textarea { + overflow: auto; } + +optgroup { + font-weight: bold; } + +table { + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; + width: 100%; } + +tr, td, th { + vertical-align: middle; } + +th, td { + padding: 0.425rem 0; } + +th { + text-align: left; } + +.container { + width: 75em; + margin: 0 auto; + padding: 0; } + @media only all and (min-width: 60em) and (max-width: 74.938em) { + .container { + width: 60em; } } + @media only all and (min-width: 48em) and (max-width: 59.938em) { + .container { + width: 48em; } } + @media only all and (min-width: 30.063em) and (max-width: 47.938em) { + .container { + width: 30em; } } + @media only all and (max-width: 30em) { + .container { + width: 100%; } } + +.grid { + display: -webkit-box; + display: -moz-box; + display: box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row; + -moz-flex-flow: row; + flex-flow: row; + list-style: none; + margin: 0; + padding: 0; } + @media only all and (max-width: 47.938em) { + .grid { + -webkit-flex-flow: row wrap; + -moz-flex-flow: row wrap; + flex-flow: row wrap; } } + +.block { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + min-width: 0; + min-height: 0; } + @media only all and (max-width: 47.938em) { + .block { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 100%; + -moz-flex: 0 100%; + -ms-flex: 0 100%; + flex: 0 100%; } } + +@media only all and (max-width: 47.938em) { + body [class*="size-"] { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 100%; + -moz-flex: 0 100%; + -ms-flex: 0 100%; + flex: 0 100%; } } + +.size-1-2 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 50%; + -moz-flex: 0 50%; + -ms-flex: 0 50%; + flex: 0 50%; } + +.size-1-3 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 33.33333%; + -moz-flex: 0 33.33333%; + -ms-flex: 0 33.33333%; + flex: 0 33.33333%; } + +.size-1-4 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 25%; + -moz-flex: 0 25%; + -ms-flex: 0 25%; + flex: 0 25%; } + +.size-1-5 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 20%; + -moz-flex: 0 20%; + -ms-flex: 0 20%; + flex: 0 20%; } + +.size-1-6 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 16.66667%; + -moz-flex: 0 16.66667%; + -ms-flex: 0 16.66667%; + flex: 0 16.66667%; } + +.size-1-7 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 14.28571%; + -moz-flex: 0 14.28571%; + -ms-flex: 0 14.28571%; + flex: 0 14.28571%; } + +.size-1-8 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 12.5%; + -moz-flex: 0 12.5%; + -ms-flex: 0 12.5%; + flex: 0 12.5%; } + +.size-1-9 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 11.11111%; + -moz-flex: 0 11.11111%; + -ms-flex: 0 11.11111%; + flex: 0 11.11111%; } + +.size-1-10 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 10%; + -moz-flex: 0 10%; + -ms-flex: 0 10%; + flex: 0 10%; } + +.size-1-11 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 9.09091%; + -moz-flex: 0 9.09091%; + -ms-flex: 0 9.09091%; + flex: 0 9.09091%; } + +.size-1-12 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 8.33333%; + -moz-flex: 0 8.33333%; + -ms-flex: 0 8.33333%; + flex: 0 8.33333%; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { + .size-tablet-1-2 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 50%; + -moz-flex: 0 50%; + -ms-flex: 0 50%; + flex: 0 50%; } + + .size-tablet-1-3 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 33.33333%; + -moz-flex: 0 33.33333%; + -ms-flex: 0 33.33333%; + flex: 0 33.33333%; } + + .size-tablet-1-4 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 25%; + -moz-flex: 0 25%; + -ms-flex: 0 25%; + flex: 0 25%; } + + .size-tablet-1-5 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 20%; + -moz-flex: 0 20%; + -ms-flex: 0 20%; + flex: 0 20%; } + + .size-tablet-1-6 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 16.66667%; + -moz-flex: 0 16.66667%; + -ms-flex: 0 16.66667%; + flex: 0 16.66667%; } + + .size-tablet-1-7 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 14.28571%; + -moz-flex: 0 14.28571%; + -ms-flex: 0 14.28571%; + flex: 0 14.28571%; } + + .size-tablet-1-8 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 12.5%; + -moz-flex: 0 12.5%; + -ms-flex: 0 12.5%; + flex: 0 12.5%; } + + .size-tablet-1-9 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 11.11111%; + -moz-flex: 0 11.11111%; + -ms-flex: 0 11.11111%; + flex: 0 11.11111%; } + + .size-tablet-1-10 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 10%; + -moz-flex: 0 10%; + -ms-flex: 0 10%; + flex: 0 10%; } + + .size-tablet-1-11 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 9.09091%; + -moz-flex: 0 9.09091%; + -ms-flex: 0 9.09091%; + flex: 0 9.09091%; } + + .size-tablet-1-12 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 8.33333%; + -moz-flex: 0 8.33333%; + -ms-flex: 0 8.33333%; + flex: 0 8.33333%; } } +@media only all and (max-width: 47.938em) { + @supports not (flex-wrap: wrap) { + .grid { + display: block; + -webkit-box-lines: inherit; + -moz-box-lines: inherit; + box-lines: inherit; + -webkit-flex-wrap: inherit; + -moz-flex-wrap: inherit; + -ms-flex-wrap: inherit; + flex-wrap: inherit; } + + .block { + display: block; + -webkit-box-flex: inherit; + -moz-box-flex: inherit; + box-flex: inherit; + -webkit-flex: inherit; + -moz-flex: inherit; + -ms-flex: inherit; + flex: inherit; } } } +.first-block { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; } + +.last-block { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + +.fixed-blocks { + -webkit-flex-flow: row wrap; + -moz-flex-flow: row wrap; + flex-flow: row wrap; } + .fixed-blocks .block { + -webkit-box-flex: inherit; + -moz-box-flex: inherit; + box-flex: inherit; + -webkit-flex: inherit; + -moz-flex: inherit; + -ms-flex: inherit; + flex: inherit; + width: 25%; } + @media only all and (min-width: 60em) and (max-width: 74.938em) { + .fixed-blocks .block { + width: 33.33333%; } } + @media only all and (min-width: 48em) and (max-width: 59.938em) { + .fixed-blocks .block { + width: 50%; } } + @media only all and (max-width: 47.938em) { + .fixed-blocks .block { + width: 100%; } } + +body { + font-size: 1rem; + line-height: 1.5; } + +h1, h2, h3, h4, h5, h6 { + margin: 0.85rem 0 1rem 0; + text-rendering: optimizeLegibility; } + +h1 { + font-size: 3.25rem; } + +h2 { + font-size: 2.55rem; } + +h3 { + font-size: 2.15rem; } + +h4 { + font-size: 1.8rem; } + +h5 { + font-size: 1.4rem; } + +h6 { + font-size: 0.9rem; } + +p { + margin: 1rem 0; } + +ul, ol { + margin-top: 1rem; + margin-bottom: 1rem; } + ul ul, ul ol, ol ul, ol ol { + margin-top: 0; + margin-bottom: 0; } + +blockquote { + margin: 1.5rem 0; + padding-left: 0.85rem; } + +cite { + display: block; + font-size: 0.925rem; } + cite:before { + content: "\2014 \0020"; } + +pre { + margin: 1.5rem 0; + padding: 0.938rem; } + +code { + vertical-align: bottom; } + +small { + font-size: 0.925rem; } + +hr { + border-left: none; + border-right: none; + border-top: none; + margin: 1.5rem 0; } + +fieldset { + border: 0; + padding: 0.938rem; + margin: 0 0 1rem 0; } + +input, +label, +select { + display: block; } + +label { + margin-bottom: 0.425rem; } + label.required:after { + content: "*"; } + label abbr { + display: none; } + +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { + -webkit-transition: border-color; + -moz-transition: border-color; + transition: border-color; + border-radius: 0.1875rem; + margin-bottom: 0.85rem; + padding: 0.425rem 0.425rem; + width: 100%; } + 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 { + outline: none; } + +textarea { + resize: vertical; } + +input[type="checkbox"], input[type="radio"] { + display: inline; + margin-right: 0.425rem; } + +input[type="file"] { + width: 100%; } + +select { + width: auto; + max-width: 100%; + margin-bottom: 1rem; } + +button, +input[type="submit"] { + cursor: pointer; + user-select: none; + vertical-align: middle; + white-space: nowrap; + border: inherit; } diff --git a/themes/hugo-theme-relearn/static/css/perfect-scrollbar.min.css b/themes/hugo-theme-relearn/static/css/perfect-scrollbar.min.css new file mode 100644 index 0000000..ebd2cb4 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/perfect-scrollbar.min.css @@ -0,0 +1,2 @@ +/* perfect-scrollbar v0.6.13 */ +.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} diff --git a/themes/hugo-theme-relearn/static/css/print.css b/themes/hugo-theme-relearn/static/css/print.css new file mode 100644 index 0000000..3ae4ef9 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/print.css @@ -0,0 +1,109 @@ +#body #navigation { + display: none; +} +html, +body #body{ + font-size: 8.9pt; +} +pre code { + font-size: 8.3pt; +} +#body .padding { + /* remove page padding - this can be set exactly in the print setup */ + padding: 0; +} +code.copy-to-clipboard-inline { + border-bottom-right-radius: 2px; + border-top-right-radius: 2px; + border-right-width: 1px; +} +pre { + border: 1px solid #ccc; +} +#body #top-bar{ + background-color: #fff; /* avoid background bleeding*/ + border-bottom: 1px solid #ddd; + border-radius: 0; + padding-left: 0; /* for print, we want to align with the footer to ease the layout */ + color: #777; +} +#top-github-link { + /* we don't need this while printing */ + display: none; +} +#body #breadcrumbs { + width: 100%; +} +#body #breadcrumbs .links { + overflow-x: hidden; +} +.copy-to-clipboard { + display: none; +} + +#body h1, #body h2, #body h3, #body h4, #body h5, #body h6 { + /* better contrast for colored elements */ + color: black !important; +} +#body th, #body td, +#body code, #body strong, #body b, +#body li, #body dd, #body dt, +#body p, +#body .anchor, +#body a { + /* better contrast for colored elements */ + color: black; +} + +.progress { + /* we don't need this while printing */ + display: none !important; +} +hr{ + border-bottom: 1px solid #ddd; +} +#chapter h1 { + border-bottom: 1px solid #ddd; +} +.footline { + /* in print mode show footer line to signal reader the end of document */ + border-top: 1px solid #ddd; + color: #777; + margin-top: 1.5rem; + padding-top: .75rem; +} +#body #body-inner a { + /* in print we want to distinguish links in our content from + normal text even if printed black/white; + don't use a.highlight in selector to also get links that are + put as HTML into markdown */ + text-decoration-line: underline; +} +#toc-menu { + /* we don't need this while printing */ + display: none; +} +#sidebar-toggle-span { + /* we don't need this while printing */ + display: none; +} +#breadcrumbs .links { + display: inline; +} +#top-bar{ + /* the header is sticky which is not suitable for print; */ + position: inherit; /* IE11 doesn't know "initial" here */ +} +#top-bar.is-sticky { + box-shadow: initial; +} +#body .tab-nav-button:not(.active) { + opacity: .5; +} +#head-tags { + display: none; +} +mark { + background: inherit; + color: inherit; +} \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/css/tabs.css b/themes/hugo-theme-relearn/static/css/tabs.css new file mode 100644 index 0000000..98879d4 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/tabs.css @@ -0,0 +1,57 @@ +#body .tab-nav-button { + border-width: 1px 1px 1px 1px !important; + border-color: #ccc !important; + border-radius: 4px 4px 0 0 !important; + background-color: #eaeaea !important; + -webkit-print-color-adjust: exact; + color-adjust: exact; + float: left; + display: block; + position: relative; + margin-left: 4px; + bottom: -1px; +} +#body .tab-nav-button:first-child { + margin-left: 9px; +} +#body .tab-nav-button.active { + background-color: #fff !important; + border-bottom-color: #fff !important; +} +#body .tab-nav-button:not(.active) { + border-bottom-color: #ddd !important; + margin-top: 7px; + padding-bottom: 2px !important; + padding-top: 2px !important; +} +#body .tab-nav-button:not(.active) span { + opacity: .8; +} +#body .tab-panel { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} +#body .tab-content { + background-color: #fff; + clear: both; + -webkit-print-color-adjust: exact; + color-adjust: exact; + display: block; + padding: 8px; + border-width: 1px; + border-style: solid; + border-color: #ccc; + z-index: 10; +} +#body .tab-content .tab-item{ + display: none; +} + +#body .tab-content .tab-item.active{ + display: block; +} + +#body .tab-item pre{ + margin-bottom: 0; + margin-top: 0; +} diff --git a/themes/hugo-theme-relearn/static/css/tags.css b/themes/hugo-theme-relearn/static/css/tags.css new file mode 100644 index 0000000..f829e8a --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/tags.css @@ -0,0 +1,49 @@ +/* Tags */ + +#head-tags{ + margin-left:1em; + margin-top:1em; +} + +#body .tags a.tag-link { + display: inline-block; + line-height: 2em; + font-size: 0.8em; + position: relative; + margin: 0 16px 8px 0; + padding: 0 10px 0 12px; + background: #8451a1; + + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); + box-shadow: 0 1px 2px rgba(0,0,0,0.2); + color: #fff; +} + +#body .tags a.tag-link:before { + content: ""; + position: absolute; + top:0; + left: -.99em; + width: 0; + height: 0; + border-color: transparent #8451a1 transparent transparent; + border-style: solid; + border-width: 1em 1em 1em 0; +} + +#body .tags a.tag-link:after { + content: ""; + position: absolute; + top: 10px; + left: 1px; + width: 5px; + height: 5px; + -webkit-border-radius: 50%; + border-radius: 100%; + background: #fff; +} diff --git a/themes/hugo-theme-relearn/static/css/theme-blue.css b/themes/hugo-theme-relearn/static/css/theme-blue.css new file mode 100644 index 0000000..1b259fa --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/theme-blue.css @@ -0,0 +1,30 @@ +:root { + --MAIN-TEXT-color: #323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */ + --MAIN-LINK-color: #1C90F3; /* Color of links */ + --MAIN-LINK-HOVER-color: #167ad0; /* Color of hovered links */ + --MAIN-ANCHOR-color: #1C90F3; /* color of anchors on titles */ + + --MAIN-CODE-color: #e2e4e5; /* fallback color for code background */ + --MAIN-CODE-BG-color: #282a36; /* fallback color for code text */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color: #1C90F3; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #33a1ff; /*Color of menu header border */ + + --MENU-SEARCH-BG-color: #167ad0; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #33a1ff; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #a1d2fd; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color: #20272b; /* Background color of the active section and its children */ + --MENU-SECTIONS-BG-color: #252c31; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #33a1ff; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #20272b; /* Color of
    separator in menu */ +} diff --git a/themes/hugo-theme-relearn/static/css/theme-green.css b/themes/hugo-theme-relearn/static/css/theme-green.css new file mode 100644 index 0000000..983a612 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/theme-green.css @@ -0,0 +1,30 @@ +:root { + --MAIN-TEXT-color: #323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */ + --MAIN-LINK-color: #599a3e; /* Color of links */ + --MAIN-LINK-HOVER-color: #3f6d2c; /* Color of hovered links */ + --MAIN-ANCHOR-color: #599a3e; /* color of anchors on titles */ + + --MAIN-CODE-color: #e2e4e5; /* fallback color for code background */ + --MAIN-CODE-BG-color: #282a36; /* fallback color for code text */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color: #74b559; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #9cd484; /*Color of menu header border */ + + --MENU-SEARCH-BG-color: #599a3e; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #84c767; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #c7f7c4; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color: #1b211c; /* Background color of the active section and its children */ + --MENU-SECTIONS-BG-color: #222723; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #599a3e; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #18211c; /* Color of
    separator in menu */ +} diff --git a/themes/hugo-theme-relearn/static/css/theme-red.css b/themes/hugo-theme-relearn/static/css/theme-red.css new file mode 100644 index 0000000..1d4923e --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/theme-red.css @@ -0,0 +1,30 @@ +:root { + --MAIN-TEXT-color: #323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */ + --MAIN-LINK-color: #f31c1c; /* Color of links */ + --MAIN-LINK-HOVER-color: #d01616; /* Color of hovered links */ + --MAIN-ANCHOR-color: #f31c1c; /* color of anchors on titles */ + + --MAIN-CODE-color: #e2e4e5; /* fallback color for code background */ + --MAIN-CODE-BG-color: #282a36; /* fallback color for code text */ + + --MENU-HOME-LINK-color: #ccc; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #e6e6e6; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color: #dc1010; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #e23131; /*Color of menu header border */ + + --MENU-SEARCH-BG-color: #b90000; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #ef2020; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #fda1a1; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color: #2b2020; /* Background color of the active section and its children */ + --MENU-SECTIONS-BG-color: #312525; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #ff3333; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #2b2020; /* Color of
    separator in menu */ +} diff --git a/themes/hugo-theme-relearn/static/css/theme-relearn.css b/themes/hugo-theme-relearn/static/css/theme-relearn.css new file mode 100644 index 0000000..bb4f12f --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/theme-relearn.css @@ -0,0 +1,30 @@ +:root { + --MAIN-TEXT-color: #323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #444753; /* Color of titles h2-h3-h4-h5-h6 */ + --MAIN-LINK-color: #486ac9; /* Color of links */ + --MAIN-LINK-HOVER-color: #0044ff; /* Color of hovered links */ + --MAIN-ANCHOR-color: #486ac9; /* color of anchors on titles */ + + --MAIN-CODE-color: #e2e4e5; /* fallback color for code background */ + --MAIN-CODE-BG-color: #282a36; /* fallback color for code text */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color: #7dc903; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #7dc903; /*Color of menu header border */ + + --MENU-SEARCH-BG-color: #3d414d; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #efefef; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #ddd; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color: #202028; /* Background color of the active section and its children */ + --MENU-SECTIONS-BG-color: #282830; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #bababa; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #fff; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #444; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #506397; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #28292e; /* Color of
    separator in menu */ +} diff --git a/themes/hugo-theme-relearn/static/css/theme.css b/themes/hugo-theme-relearn/static/css/theme.css new file mode 100644 index 0000000..36d47d9 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/theme.css @@ -0,0 +1,1339 @@ +@charset "UTF-8"; + +@import "tags.css"; +@import "tabs.css"; + +#top-github-link, #body #breadcrumbs { + position: relative; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} +.button, .button-secondary { + display: inline-block; + padding: 7px 12px; +} +.button:active, .button-secondary:active { + margin: 2px 0 -2px 0; +} +@font-face { + font-family: 'Novacento Sans Wide'; + src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot"); + src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-UltraLight-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-UltraLight-webfont.svg#novecento_sans_wideultralight") format("svg"); + font-style: normal; + font-weight: 200; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 300; + src: url("../fonts/Work_Sans_300.eot?#iefix") format("embedded-opentype"), url("../fonts/Work_Sans_300.woff") format("woff"), url("../fonts/Work_Sans_300.woff2") format("woff2"), url("../fonts/Work_Sans_300.svg#WorkSans") format("svg"), url("../fonts/Work_Sans_300.ttf") format("truetype"); +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 500; + src: url("../fonts/Work_Sans_500.eot?#iefix") format("embedded-opentype"), url("../fonts/Work_Sans_500.woff") format("woff"), url("../fonts/Work_Sans_500.woff2") format("woff2"), url("../fonts/Work_Sans_500.svg#WorkSans") format("svg"), url("../fonts/Work_Sans_500.ttf") format("truetype"); +} +body { + background: #fff; + color: #777; +} +body #chapter h1 { + font-size: 3.5rem; +} +@media only all and (min-width: 48em) and (max-width: 59.938em) { + body #chapter h1 { + font-size: 3rem; + } +} +@media only all and (max-width: 47.938em) { + body #chapter h1 { + font-size: 2rem; + } +} +a { + color: #00bdf3; +} +a:hover { + color: #0082a7; +} +pre { + position: relative; +} +.bg { + background: #fff; + border: 1px solid #eaeaea; +} +b, strong, label, th { + font-weight: 600; +} +.default-animation, #header #logo-svg, #header #logo-svg path, #sidebar, #sidebar ul, #body, #body .padding, #body .nav { + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + transition: all 0.5s ease; +} +#sidebar { + font-weight: 300 !important; +} +fieldset { + border: 1px solid #ddd; +} +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { + background-color: white; + border: 1px solid #ddd; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); +} +textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover { + border-color: #c4c4c4; +} +#header-wrapper { + background: #8451a1; + color: #fff; + text-align: center; + border-bottom: 4px solid #9c6fb6; + padding: 1rem; +} +#header a { + display: inline-block; +} +#header #logo-svg { + width: 8rem; + height: 2rem; +} +#header #logo-svg path { + fill: #fff; +} +.searchbox { + margin-top: 1rem; + position: relative; + border: 1px solid #915eae; + background: #764890; + border-radius: 4px; +} +.searchbox label { + color: rgba(255, 255, 255, 0.8); + position: absolute; + left: 10px; + top: 3px; +} +.searchbox span { + color: rgba(255, 255, 255, 0.6); + position: absolute; + right: 10px; + top: 3px; + cursor: pointer; +} +.searchbox span:hover { + color: rgba(255, 255, 255, 0.9); +} +.searchbox input { + display: inline-block; + color: #fff; + width: 100%; + height: 30px; + background: transparent; + border: 0; + padding: 0 25px 0 30px; + margin: 0; + font-weight: 300; +} +.searchbox input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input::-moz-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input:-moz-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.6); +} +#sidebar-toggle-span { + display: none; +} +@media only all and (max-width: 47.938em) { + #sidebar-toggle-span { + display: inline; + } +} +#sidebar { + background-color: #322A38; + position: fixed; + top: 0; + width: 300px; + bottom: 0; + left: 0; + font-weight: 400; + font-size: 15px; +} +#sidebar a { + color: #ccc; +} +#sidebar a:hover { + color: #e6e6e6; +} +#sidebar a.subtitle { + color: rgba(204, 204, 204, 0.6); +} +#sidebar hr { + border-bottom: 1px solid #2a232f; +} +#sidebar a.padding { + padding: 0 1rem; +} +#sidebar ul { + list-style: none; + padding: 0; + margin: 0; +} +#sidebar ul.searched a { + color: #999999; +} +#sidebar ul.searched .search-match a { + color: #e6e6e6; +} +#sidebar ul.searched .search-match a:hover { + color: white; +} +#sidebar ul.topics { + margin: 0 1rem; +} +#sidebar ul.topics.searched ul { + display: block; +} +#sidebar ul.topics ul { + display: none; +} +#sidebar ul.topics > li > ul > li:last-child { + padding-bottom: 1rem; +} +#sidebar ul.topics ul ul { + padding-bottom: 0; +} +#sidebar ul.topics li.parent > ul, +#sidebar ul.topics li.active > ul, +#sidebar ul.topics li.alwaysopen > ul { + display: block; +} +#sidebar ul.topics > li > a { + line-height: 2rem; + font-size: 1.1rem; +} +#sidebar ul.topics > li > a b { + opacity: 0.5; + font-weight: normal; +} +#sidebar ul.topics > li > a .fa { + margin-top: 9px; +} +#sidebar ul.topics > li.parent { + background: #251f29; + margin-left: -1rem; + margin-right: -1rem; + padding-left: 1rem; + padding-right: 1rem; +} +#sidebar ul li.active > a { + background: #fff; + color: #777 !important; + margin-left: -1rem; + margin-right: -1rem; + padding-left: 1rem; + padding-right: 1rem; +} +#sidebar ul li { + padding: 0; +} +#sidebar ul li.visited + span { + margin-right: 16px; +} +#sidebar ul li a { + display: block; + padding: 2px 0; +} +#sidebar ul li a span { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + display: block; +} +#sidebar ul li > a { + padding: 4px 0; +} +#sidebar ul li.visited > a .read-icon { + color: #9c6fb6; + display: inline; +} +#sidebar ul li li { + padding-left: 1rem; + text-indent: 0.2rem; +} +#main { + background: #f7f7f7; + margin: 0 0 1.563rem 0; +} +#body { + position: relative; + margin-left: 300px; + min-height: 100%; +} +#body img, #body .video-container { + margin: 1.5rem auto; + display: block; + text-align: center; +} +#body img.border, #body .video-container.border { + border: 2px solid #e6e6e6 !important; + padding: 2px; +} +#body img.shadow, #body .video-container.shadow { + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); +} +#body img.inline { + display: inline !important; + margin: 0 !important; + vertical-align: bottom; +} +#body .bordered { + border: 1px solid #ccc; +} +#body .padding { + padding: 3rem 6rem; +} +@media only all and (max-width: 59.938em) { + #body .padding { + position: static; + padding: 15px 3rem; + } +} +@media only all and (max-width: 47.938em) { + #body .padding { + padding: 5px 1rem; + } +} +#body h1 + hr { + margin-top: -1rem; + margin-bottom: 2rem; +} +@media only all and (max-width: 59.938em) { + #body #navigation { + position: static; + margin-right: 0 !important; + width: 100%; + display: table; + } +} +#body .nav { + position: fixed; + top: 0; + bottom: 0; + width: 4rem; + font-size: 50px; + height: 100%; + cursor: pointer; + display: table; + text-align: center; +} +#body .nav > i { + display: table-cell; + vertical-align: middle; + text-align: center; +} +@media only all and (max-width: 59.938em) { + #body .nav { + display: table-cell; + position: static; + top: auto; + width: 50%; + text-align: center; + height: 100px; + line-height: 100px; + padding-top: 0; + } + #body .nav > i { + display: inline-block; + } +} +#body .nav:hover { + background: #F6F6F6; +} +#body .nav.nav-pref { + left: 0; +} +#body .nav.nav-next { + margin-right: 0px; + right: 0; +} + +/* we limit width if we have large screens */ +@media screen and ( min-width: 1300px ){ /* #sidebar/width + ./max-width */ + #body #body-inner { + max-width: 1000px; + margin: auto; + } +} + +#chapter { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + padding: 2rem 0; +} +#chapter #body-inner { + max-width: 80%; +} +#chapter h3 { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + font-weight: 300; + text-align: center; +} +#chapter h1 { + font-size: 5rem; + border-bottom: 4px solid #F0F2F4; +} +#chapter p { + text-align: justify; + font-size: 1.2rem; +} +#footer { + padding: 3rem 1rem; + color: #b3b3b3; + font-size: 13px; + text-align: center; +} +#footer p { + margin: 0; +} +body { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + font-weight: 300; + line-height: 1.6; + font-size: 18px !important; +} +h2, h3, h4, h5, h6 { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + text-rendering: optimizeLegibility; + color: #5e5e5e; + letter-spacing: -1px; +} +h1 { + font-family: "Novacento Sans Wide", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + text-align: center; + text-transform: uppercase; + color: #222; + font-weight: 200; +} +blockquote { + border-left: 10px solid rgba(0, 8, 16, 0.2); +} +blockquote p { + font-size: 1.1rem; + color: #56585d; +} +blockquote cite { + display: block; + text-align: right; + color: #222; + font-size: 1.2rem; +} +div.notices { + border-top-width: 2rem; + border-top-style: solid; + color: #505050; + -webkit-print-color-adjust: exact; + color-adjust: exact; + margin: 1.5rem 0; + padding-bottom: .1px; + padding-left: 1rem; + padding-right: 1rem; +} +div.notices > div.label { + color: #fff; + font-weight: normal; + margin-bottom: 1rem; + margin-top: -1.75rem; +} +div.notices > div.label:first-child:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-left: -.35rem; + margin-right: .35rem; +} +div.notices.info { + border-color: #4897CC; + background-color: #E9F5FD; +} +div.notices.info > div.label:first-child:before { + content: "\f05a"; +} +div.notices.warning { + border-color: #D96A68; + background-color: #FFEBEB; +} +div.notices.warning > div.label:first-child:before { + content: "\f071"; +} +div.notices.note { + border-color: #BF8B44; + background-color: #FFF2DB; +} +div.notices.note > div.label:first-child:before { + content: "\f06a"; +} +div.notices.tip { + border-color: #5AA55A; + background-color: #E6F9E6; +} +div.notices.tip > div.label:first-child:before { + content: "\f0eb"; +} + +/* attachments shortcode */ + +div.attachments { + border-top-width: 2rem; + border-top-style: solid; + color: #505050; + -webkit-print-color-adjust: exact; + color-adjust: exact; + margin: 1.5rem 0; + padding-left: 1rem; + padding-right: 1rem; + padding-bottom: .1px; +} + +div.attachments > div.label { + color: #fff; + font-weight: normal; + margin-bottom: 1rem; + margin-top: -1.75rem; +} + +div.attachments > div.label:first-child:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-left: -.35rem; + margin-right: .35rem; + content: "\f0c6"; +} + +div.attachments .attachments-files { + padding: 1rem; + display: block; + font-size: 1rem; + margin-top: -1rem; + margin-bottom: 0rem; +} + +div.attachments.orange { + border-color: #BF8B44; + background-color: #FFF2DB; +} + +div.attachments.green { + border-color: #5AA55A; + background-color: #E6F9E6; +} + +div.attachments.red { + border-color: #D96A68; + background-color: #FFEBEB; +} + +div.attachments.blue { + border-color: #4897CC; + background-color: #E9F5FD; +} + +div.attachments.grey { + border-color: #505D65; + background-color: #F4F4F4; +} + +div.attachments.neutral { + border-color: transparent; + background-color: transparent; +} +div.attachments.neutral > div.label { + color: #505050; +} + +/* Children shortcode */ +.children p { + font-size: small; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 0px; +} +.children-li p { + font-size: small; + font-style: italic; + +} +.children-h2 p, .children-h3 p { + font-size: small; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 0px; +} +.children h3,.children h2 { + margin-bottom: 0px; + margin-top: 5px; +} +#body-inner ul.children-h2, +#body-inner ul.children-h3, +#body-inner ul.children-h4, +#body-inner ul.children-h5, +#body-inner ul.children-h6 { + /* if we display children with style=h2 but without a containerstyle + a ul will be used for structuring; we remove default indention for uls + in this case */ + padding-inline-start: 0; +} + +code, kbd, pre, samp { + font-family: "Consolas", menlo, monospace; + font-size: 92%; + vertical-align: baseline; +} +code { + background-color: #FFFAE9; + border: 1px solid #F8E8C8; + border-radius: 2px; + color: #5E5E5E; + -webkit-print-color-adjust: economy; + color-adjust: economy; + padding-left: 2px; + padding-right: 2px; + white-space: nowrap; +} +code.copy-to-clipboard-inline { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-right-width: 0; +} +pre { + background-color: #272822; + border: 0; + border-radius: 2px; + color: #f8f8f2; + -webkit-print-color-adjust: economy; + color-adjust: economy; + line-height: 1.15; + padding: 1rem; +} +pre code { + background-color: inherit; + color: inherit; + -webkit-print-color-adjust: economy; + color-adjust: economy; + border: 0; + font-size: 15px; + margin: 0; + padding: 0; + white-space: inherit; +} +hr { + border-bottom: 4px solid #F0F2F4; +} +.page-title { + margin-top: -25px; + padding: 25px; + float: left; + clear: both; + background: #9c6fb6; + color: #fff; +} +#body a.anchor-link { + color: #ccc; +} +#body a.anchor-link:hover { + color: #9c6fb6; +} +#body-inner pre { + white-space: pre-wrap; +} +#body-inner h1, +#body-inner h2, +#body-inner h3, +#body-inner h4, +#body-inner h5, +#body-inner h6 { + /* big titles cause a horizontal scrollbar - fixing this by wrapping text */ + overflow-x: hidden; + overflow-wrap: break-word; +} + +table { + border: 1px solid #ccc; + margin-bottom: 1rem; + margin-top: 1rem; + table-layout: auto; +} +th, thead td { + background: #eaeaea; + border: 1px solid #ccc; + -webkit-print-color-adjust: exact; + color-adjust: exact; + padding: 0.5rem; +} +td { + border: 1px solid #ccc; + padding: 0.5rem; +} +.button { + background: #9c6fb6; + color: #fff; + box-shadow: 0 3px 0 #00a5d4; +} +.button:hover { + background: #00a5d4; + box-shadow: 0 3px 0 #008db6; + color: #fff; +} +.button:active { + box-shadow: 0 1px 0 #008db6; +} +.button-secondary { + background: #F8B450; + color: #fff; + box-shadow: 0 3px 0 #f7a733; +} +.button-secondary:hover { + background: #f7a733; + box-shadow: 0 3px 0 #f69b15; + color: #fff; +} +.button-secondary:active { + box-shadow: 0 1px 0 #f69b15; +} +.tooltipped { + position: relative; +} +.tooltipped:after { + border: 1px solid #777; + position: absolute; + z-index: 1000000; + display: none; + padding: 5px 8px; + font: normal normal 11px/1.5 "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + color: #fff; + text-align: center; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-wrap: break-word; + white-space: pre; + pointer-events: none; + content: attr(aria-label); + background: rgba(0, 0, 0, 0.8); + border-radius: 3px; + -webkit-font-smoothing: subpixel-antialiased; +} +.tooltipped:before { + position: absolute; + z-index: 1000001; + display: none; + width: 0; + height: 0; + color: rgba(0, 0, 0, 0.8); + pointer-events: none; + content: ""; + border: 5px solid transparent; +} +.tooltipped:hover:before, .tooltipped:hover:after, .tooltipped:active:before, .tooltipped:active:after, .tooltipped:focus:before, .tooltipped:focus:after { + display: inline-block; + text-decoration: none; +} +.tooltipped-s:after, .tooltipped-se:after, .tooltipped-sw:after { + top: 100%; + right: 50%; + margin-top: 5px; +} +.tooltipped-s:before, .tooltipped-se:before, .tooltipped-sw:before { + top: auto; + right: 50%; + bottom: -5px; + margin-right: -5px; + border-bottom-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-se:after { + right: auto; + left: 50%; + margin-left: -15px; +} +.tooltipped-sw:after { + margin-right: -15px; +} +.tooltipped-n:after, .tooltipped-ne:after, .tooltipped-nw:after { + right: 50%; + bottom: 100%; + margin-bottom: 5px; +} +.tooltipped-n:before, .tooltipped-ne:before, .tooltipped-nw:before { + top: -5px; + right: 50%; + bottom: auto; + margin-right: -5px; + border-top-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-ne:after { + right: auto; + left: 50%; + margin-left: -15px; +} +.tooltipped-nw:after { + margin-right: -15px; +} +.tooltipped-s:after, .tooltipped-n:after { + transform: translateX(50%); +} +.tooltipped-w:after { + right: 100%; + bottom: 50%; + margin-right: 5px; + transform: translateY(50%); +} +.tooltipped-w:before { + top: 50%; + bottom: 50%; + left: -5px; + margin-top: -5px; + border-left-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-e:after { + bottom: 50%; + left: 100%; + margin-left: 5px; + transform: translateY(50%); +} +.tooltipped-e:before { + top: 50%; + right: -5px; + bottom: 50%; + margin-top: -5px; + border-right-color: rgba(0, 0, 0, 0.8); +} +.highlightable { + padding: 1rem 0 1rem; + position: relative; +} +#sidebar .highlightable { + overflow: auto; +} +.lightbox-active #body { + overflow: visible; +} +.lightbox-active #body .padding { + overflow: visible; +} +#github-contrib i { + vertical-align: middle; +} +.featherlight img { + margin: 0 !important; +} +#top-bar { + background: #F6F6F6; + border-radius: 2px; + padding: 0 1rem; + height: 0; + min-height: 3rem; +} +#top-github-link { + position: relative; + z-index: 1; + float: right; + display: block; +} +#body #breadcrumbs { + height: auto; + margin-bottom: 0; + padding-left: 0; + line-height: 1.4; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + width: 70%; + display: inline-block; + float: left; +} +#body #breadcrumbs span { + padding: 0 0.1rem; +} +#body #breadcrumbs .links { + display: inline; + padding: 0 0.1rem; +} + +#body #breadcrumbs .links * { + display: inline-block; + padding: 0; +} +#body #breadcrumbs .links meta { + display: none; +} +#body #breadcrumbs .links li:last-of-type { + cursor: text; +} +a[aria-disabled="true"] { + color: inherit; + pointer-events: none; + text-decoration: none; +} +@media only all and (max-width: 59.938em) { + #sidebar { + width: 230px; + } + #body { + margin-left: 230px; + } +} +@media only all and (max-width: 47.938em) { + #sidebar { + width: 230px; + left: -230px; + } + #body { + margin-left: 0; + width: 100%; + } + .sidebar-hidden { + overflow: hidden; + } + .sidebar-hidden #sidebar { + left: 0; + } + .sidebar-hidden #body { + margin-left: 230px; + overflow: hidden; + } + .sidebar-hidden #overlay { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 10; + background: rgba(255, 255, 255, 0.5); + cursor: pointer; + } +} +.copy-to-clipboard { + background-color: #FFFAE9; + background-image: url(../images/clippy.svg); + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: 14px 16px; + border: 1px solid #F8E8C8; + border-radius: 0 2px 2px 0; + color: #5E5E5E; + cursor: pointer; + font-family: "Consolas", menlo, monospace; + font-size: 92%; + padding-left: 22px; +} +.copy-to-clipboard:hover { + background-color: #FCEBB4; + border-color: #B19F7A; +} +pre .copy-to-clipboard { + background-color: rgba( 204, 204, 204, .666 ); + border-color: #000; + border-radius: 2px; + padding: 10.5px 12.5px; + position: absolute; + right: 4px; + top: 4px; +} +pre .copy-to-clipboard:hover { + border-color: #505050; + background-color: rgba( 236, 236, 236, .9 ); +} + +#sidebar ul.topics > li > a .read-icon { + margin-top: 9px; +} + +#sidebar ul { + list-style: none; + padding: 0; + margin: 0; +} + +#sidebar #shortcuts li { + padding: 2px 0; + list-style: none; +} + +#sidebar ul li .read-icon { + display: none; + float: right; + font-size: 13px; + min-width: 16px; + margin: 4px 0 0 0; + text-align: right; +} +#sidebar ul li.visited > a .read-icon { + color: #00bdf3; + display: inline; +} + +#sidebar .nav-title { + color: white ; + font-family: "Novacento Sans Wide", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + font-size: 2rem; + font-weight: 400; + letter-spacing: -1px; + line-height: 110% !important; + margin: 1rem 0 1rem 0; + padding-left: 1rem; + text-rendering: optimizeLegibility; +} + +#homelinks { + background-color: #9c6fb6; + color: #fff; + padding: 7px 0; + border-bottom: 4px solid #9c6fb6; +} + +option { + color: initial; +} + +.expand{ + margin-bottom: 1rem; + margin-top: 1rem; +} + +.expand-label { + cursor: pointer; +} + +.expand-label > .fas { + font-size: .8rem; + width: .6rem; +} + +/* expander collapsed, default */ +.expand > .expand-label > .fa-chevron-down { + display: none; +} +.expand > .expand-label > .fa-chevron-right { + display: inline-block; +} + +/* expander expanded, controlled by expand.html */ +.expand.expand-expanded > .expand-label > .fa-chevron-down { + display: inline-block; +} +.expand.expand-expanded > .expand-label > .fa-chevron-right { + display: none; +} + +/* expander expand collapsed marked, must override logic of expand.html, controlled by relearn.js */ +.expand:not(.expand-expanded).expand-marked > .expand-label > .fa-chevron-down { + display: inline-block; +} +.expand:not(.expand-expanded).expand-marked > .expand-label > .fa-chevron-right { + display: none; +} +.expand:not(.expand-expanded).expand-marked > .expand-content { + /* this will disable jquery's animation */ + display: block !important; +} + +#body footer.footline{ + margin-top: 2rem; +} + +.mermaid { + margin-bottom: 1.7rem; + margin-top: 1.7rem; +} + +.include.hide-first-heading h1:first-of-type, +.include.hide-first-heading h2:first-of-type, +.include.hide-first-heading h3:first-of-type, +.include.hide-first-heading h4:first-of-type, +.include.hide-first-heading h5:first-of-type, +.include.hide-first-heading h6:first-of-type { + display: none; +} + +.include.hide-first-heading h1 + h2:first-of-type, +.include.hide-first-heading h1 + h3:first-of-type, +.include.hide-first-heading h2 + h3:first-of-type, +.include.hide-first-heading h1 + h4:first-of-type, +.include.hide-first-heading h2 + h4:first-of-type, +.include.hide-first-heading h3 + h4:first-of-type, +.include.hide-first-heading h1 + h5:first-of-type, +.include.hide-first-heading h2 + h5:first-of-type, +.include.hide-first-heading h3 + h5:first-of-type, +.include.hide-first-heading h4 + h5:first-of-type, +.include.hide-first-heading h1 + h6:first-of-type, +.include.hide-first-heading h2 + h6:first-of-type, +.include.hide-first-heading h3 + h6:first-of-type, +.include.hide-first-heading h4 + h6:first-of-type, +.include.hide-first-heading h5 + h6:first-of-type { + display: block; +} + +/* Table of contents */ + +.progress ul { + list-style: none; + margin: 0; + padding: 0 15px; +} + +#TableOfContents { + font-size: 13px !important; + max-height: 85vh; + overflow: auto; + padding: 15px 5px !important; +} + +#TableOfContents > ul > li > a { + font-weight: bold; +} + +body { + font-size: 16px !important; + color: #323232 !important; +} + +#body a.highlight, #body a.highlight:hover, #body a.highlight:focus { + text-decoration: none; + outline: none; + outline: 0; +} +#body a.highlight { + line-height: 1.1; + display: inline-block; +} +#body a.highlight:after { + display: block; + content: ""; + height: 1px; + width: 0%; + background-color: #0082a7; /*#CE3B2F*/ + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -ms-transition: width 0.5s ease; + transition: width 0.5s ease; +} +#body a.highlight:hover:after, #body a.highlight:focus:after { + width: 100%; +} + +.progress { + box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.1); + position:absolute; + background-color: rgba(246, 246, 246, 0.97); + width: auto; + border: thin solid #ECECEC; + display:none; + z-index:200; +} + +#toc-menu { + border-right: thin solid #DAD8D8 !important; + padding-right: 1rem !important; + margin-right: 0.5rem !important; +} + +#sidebar-toggle-span { + border-right: thin solid #DAD8D8 !important; + padding-right: 0.5rem !important; + margin-right: 1rem !important; +} + +.btn { + display: inline-block !important; + padding: 6px 12px !important; + margin-bottom: 0 !important; + font-size: 14px !important; + font-weight: normal !important; + line-height: 1.42857143 !important; + text-align: center !important; + white-space: nowrap !important; + vertical-align: middle !important; + -ms-touch-action: manipulation !important; + touch-action: manipulation !important; + cursor: pointer !important; + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; + background-image: none !important; + border: 1px solid transparent !important; + border-radius: 4px !important; + -webkit-transition: all 0.15s !important; + -moz-transition: all 0.15s !important; + transition: all 0.15s !important; +} +.btn:focus { + /*outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px;*/ + outline: none !important; +} +.btn:hover, +.btn:focus { + color: #2b2b2b !important; + text-decoration: none !important; +} + +.btn-default { + color: #333 !important; + background-color: #fff !important; + border-color: #ccc !important; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active { + color: #fff !important; + background-color: #9e9e9e !important; + border-color: #9e9e9e !important; +} +.btn-default:active { + background-image: none !important; +} + +/* anchors */ +.anchor { + color: #00bdf3; + font-size: 0.5em; + cursor:pointer; + visibility:hidden; + margin-left: 0.5em; + position: absolute; + margin-top:0.1em; +} + +h2:hover .anchor, h3:hover .anchor, h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { + visibility:visible; +} + +/* Redfines headers style */ + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + font-weight: inherit; +} + +#body h2 { + font-size: 2.2rem; + font-weight: 400; + margin-top: 2rem; +} + +#body h3 { + font-size: 1.8rem; + font-weight: 400; + margin-top: 2rem; +} + +#body h4 { + font-size: 1.85rem; + font-weight: 200; + margin-top: 2rem; +} + +#body h5 { + font-size: 1.6rem; + font-weight: 200; + margin-top: 2rem; +} + +#body h6 { + font-size: 1.3rem; + font-weight: 200; + margin-top: 2rem; +} + +#body h1 + h2, +#body h1 + h3, +#body h1 + h4, +#body h1 + h5, +#body h1 + h6, +#body h2 + h3, +#body h2 + h4, +#body h2 + h5, +#body h2 + h6, +#body h3 + h4, +#body h3 + h5, +#body h3 + h6, +#body h4 + h5, +#body h4 + h6, +#body h5 + h6 { + margin-top: 1rem; +} + +.select-style { + border: 0; + width: 150px; + border-radius: 0px; + overflow: hidden; + display: inline-flex; +} + +.select-style svg { + fill: #ccc; + width: 14px; + height: 14px; + pointer-events: none; + margin: auto; +} + +.select-style svg:hover { + fill: #e6e6e6; +} + +.select-style select { + padding: 0; + width: 130%; + border: none; + box-shadow: none; + background: transparent; + background-image: none; + -webkit-appearance: none; + margin: auto; + margin-left: 0px; + margin-right: -20px; +} + +.select-style select:focus { + outline: none; +} + +.select-style :hover { + cursor: pointer; +} + +@media only all and (max-width: 47.938em) { + #breadcrumbs .links, #top-github-link-text { + display: none; + } +} + +#top-bar { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 999; +} + +#top-bar.is-sticky { + box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.1); +} diff --git a/themes/hugo-theme-relearn/static/css/variant.css b/themes/hugo-theme-relearn/static/css/variant.css new file mode 100644 index 0000000..1426a50 --- /dev/null +++ b/themes/hugo-theme-relearn/static/css/variant.css @@ -0,0 +1,97 @@ +body { + color: var(--MAIN-TEXT-color) !important; +} + +h2, h3, h4, h5, h6 { + color: var(--MAIN-TITLES-TEXT-color) !important; +} + +a { + color: var(--MAIN-LINK-color); +} + +pre { + background-color: var(--MAIN-CODE-BG-color); + color: var(--MAIN-CODE-color); +} + +.anchor { + color: var(--MAIN-ANCHOR-color); +} + +a:hover { + color: var(--MAIN-LINK-HOVER-color); +} + +#sidebar ul li.visited > a .read-icon { + color: var(--MENU-VISITED-color); +} + +#body a.highlight:after { + background-color: var(--MAIN-LINK-HOVER-color); +} + +#sidebar { + background-color: var(--MENU-SECTIONS-BG-color); +} + +#sidebar #header-wrapper { + background-color: var(--MENU-HEADER-BG-color); + color: var(--MENU-SEARCH-BOX-color); + border-color: var(--MENU-HEADER-BORDER-color); +} + +#sidebar .searchbox { + border-color: var(--MENU-SEARCH-BOX-color); + background-color: var(--MENU-SEARCH-BG-color); +} + +#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { + background-color: var(--MENU-SECTIONS-ACTIVE-BG-color); +} + +#sidebar .searchbox * { + color: var(--MENU-SEARCH-BOX-ICONS-color); +} + +#sidebar a { + color: var(--MENU-SECTIONS-LINK-color); +} + +#sidebar a:hover { + color: var(--MENU-SECTIONS-LINK-HOVER-color); +} + +#sidebar ul li.active > a { + background-color: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); + color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; +} + +#sidebar hr { + border-color: var(--MENU-SECTION-HR-color); +} + +#body .tags a.tag-link { + background-color: var(--MENU-HEADER-BG-color); +} + +#body .tags a.tag-link:before { + border-right-color: var(--MENU-HEADER-BG-color); +} + +#homelinks { + background-color: var(--MENU-HEADER-BG-color); + border-bottom-color: var(--MENU-HEADER-BORDER-color); +} + +#homelinks a { + color: var(--MENU-HOME-LINK-color); +} + +#homelinks a:hover { + color: var(--MENU-HOME-LINK-HOVER-color); +} + +#sidebar .nav-title { + color: var(--MENU-SECTIONS-LINK-HOVER-color) !important; +} diff --git a/themes/hugo-theme-relearn/static/fonts/Inconsolata.eot b/themes/hugo-theme-relearn/static/fonts/Inconsolata.eot new file mode 100644 index 0000000..0a705d6 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Inconsolata.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Inconsolata.svg b/themes/hugo-theme-relearn/static/fonts/Inconsolata.svg new file mode 100644 index 0000000..36775f0 --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Inconsolata.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Inconsolata.ttf b/themes/hugo-theme-relearn/static/fonts/Inconsolata.ttf new file mode 100644 index 0000000..4b8a36d Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Inconsolata.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Inconsolata.woff b/themes/hugo-theme-relearn/static/fonts/Inconsolata.woff new file mode 100644 index 0000000..6f39625 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Inconsolata.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.eot b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.eot new file mode 100644 index 0000000..9984682 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.svg b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.svg new file mode 100644 index 0000000..6fa1a66 --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.ttf b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.ttf new file mode 100644 index 0000000..8cfb62d Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff new file mode 100644 index 0000000..d5c4290 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff2 b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff2 new file mode 100644 index 0000000..eefb4a3 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-Normal-webfont.woff2 differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.eot b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.eot new file mode 100644 index 0000000..2a26561 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.svg b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.svg new file mode 100644 index 0000000..c4e903b --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf new file mode 100644 index 0000000..9ce9c7f Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff new file mode 100644 index 0000000..381650c Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 new file mode 100644 index 0000000..7e65954 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.eot b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.eot new file mode 100644 index 0000000..4052e4f Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.svg b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.svg new file mode 100644 index 0000000..0ffbd3a --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.ttf b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.ttf new file mode 100644 index 0000000..68019e1 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff new file mode 100644 index 0000000..a1bd9e4 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff2 b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff2 new file mode 100644 index 0000000..20c68a7 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_200.woff2 differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.eot b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.eot new file mode 100644 index 0000000..ace7993 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.svg b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.svg new file mode 100644 index 0000000..7d29367 --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.ttf b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.ttf new file mode 100644 index 0000000..35387c2 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff new file mode 100644 index 0000000..8d789ea Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff2 b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff2 new file mode 100644 index 0000000..f6e216d Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_300.woff2 differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.eot b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.eot new file mode 100644 index 0000000..9df6929 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.eot differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.svg b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.svg new file mode 100644 index 0000000..90a91c1 --- /dev/null +++ b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.ttf b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.ttf new file mode 100644 index 0000000..5b8cc53 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.ttf differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff new file mode 100644 index 0000000..df05851 Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff differ diff --git a/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff2 b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff2 new file mode 100644 index 0000000..b06c54d Binary files /dev/null and b/themes/hugo-theme-relearn/static/fonts/Work_Sans_500.woff2 differ diff --git a/themes/hugo-theme-relearn/static/images/clippy.svg b/themes/hugo-theme-relearn/static/images/clippy.svg new file mode 100644 index 0000000..f455173 --- /dev/null +++ b/themes/hugo-theme-relearn/static/images/clippy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hugo-theme-relearn/static/images/gopher-404.jpg b/themes/hugo-theme-relearn/static/images/gopher-404.jpg new file mode 100644 index 0000000..2a50543 Binary files /dev/null and b/themes/hugo-theme-relearn/static/images/gopher-404.jpg differ diff --git a/themes/hugo-theme-relearn/static/js/auto-complete.js b/themes/hugo-theme-relearn/static/js/auto-complete.js new file mode 100644 index 0000000..0b46054 --- /dev/null +++ b/themes/hugo-theme-relearn/static/js/auto-complete.js @@ -0,0 +1,3 @@ +// JavaScript autoComplete v1.0.4 +// https://github.com/Pixabay/JavaScript-autoComplete +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 https://github.com/noelboss/featherlight/issues/317 +!function(u){"use strict";if(void 0!==u)if(u.fn.jquery.match(/-ajax/))"console"in window&&window.console.info("Featherlight needs regular jQuery, not the slim version.");else{var r=[],i=function(t){return r=u.grep(r,function(e){return e!==t&&0','
    ','",'
    '+n.loading+"
    ","
    ","
    "].join("")),o="."+n.namespace+"-close"+(n.otherClose?","+n.otherClose:"");return n.$instance=i.clone().addClass(n.variant),n.$instance.on(n.closeTrigger+"."+n.namespace,function(e){if(!e.isDefaultPrevented()){var t=u(e.target);("background"===n.closeOnClick&&t.is("."+n.namespace)||"anywhere"===n.closeOnClick||t.closest(o).length)&&(n.close(e),e.preventDefault())}}),this},getContent:function(){if(!1!==this.persist&&this.$content)return this.$content;var t=this,e=this.constructor.contentFilters,n=function(e){return t.$currentTarget&&t.$currentTarget.attr(e)},r=n(t.targetAttr),i=t.target||r||"",o=e[t.type];if(!o&&i in e&&(o=e[i],i=t.target&&r),i=i||n("href")||"",!o)for(var a in e)t[a]&&(o=e[a],i=t[a]);if(!o){var s=i;if(i=null,u.each(t.contentFilters,function(){return(o=e[this]).test&&(i=o.test(s)),!i&&o.regex&&s.match&&s.match(o.regex)&&(i=s),!i}),!i)return"console"in window&&window.console.error("Featherlight: no content filter found "+(s?' for "'+s+'"':" (no target specified)")),!1}return o.process.call(t,i)},setContent:function(e){return this.$instance.removeClass(this.namespace+"-loading"),this.$instance.toggleClass(this.namespace+"-iframe",e.is("iframe")),this.$instance.find("."+this.namespace+"-inner").not(e).slice(1).remove().end().replaceWith(u.contains(this.$instance[0],e[0])?"":e),this.$content=e.addClass(this.namespace+"-inner"),this},open:function(t){var n=this;if(n.$instance.hide().appendTo(n.root),!(t&&t.isDefaultPrevented()||!1===n.beforeOpen(t))){t&&t.preventDefault();var e=n.getContent();if(e)return r.push(n),s(!0),n.$instance.fadeIn(n.openSpeed),n.beforeContent(t),u.when(e).always(function(e){n.setContent(e),n.afterContent(t)}).then(n.$instance.promise()).done(function(){n.afterOpen(t)})}return n.$instance.detach(),u.Deferred().reject().promise()},close:function(e){var t=this,n=u.Deferred();return!1===t.beforeClose(e)?n.reject():(0===i(t).length&&s(!1),t.$instance.fadeOut(t.closeSpeed,function(){t.$instance.detach(),t.afterClose(e),n.resolve()})),n.promise()},resize:function(e,t){if(e&&t&&(this.$content.css("width","").css("height",""),this.$content.parent().width()');return n.onload=function(){r.naturalWidth=n.width,r.naturalHeight=n.height,t.resolve(r)},n.onerror=function(){t.reject(r)},n.src=e,t.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(e){return u(e)}},ajax:{regex:/./,process:function(e){var n=u.Deferred(),r=u("
    ").load(e,function(e,t){"error"!==t&&n.resolve(r.contents()),n.fail()});return n.promise()}},iframe:{process:function(e){var t=new u.Deferred,n=u("