From d2ddf80f2a80610000138a8e2c9177bb86375c23 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar <3998+srid@users.noreply.github.com> Date: Mon, 4 Dec 2023 13:54:06 -0500 Subject: [PATCH] Initial commit --- .envrc | 1 + .gitattributes | 6 + .github/README.md | 45 ++++ .github/workflows/publish.yaml | 27 +++ .github/workflows/update-flake-lock.yaml | 23 ++ .gitignore | 2 + .vscode/extensions.json | 16 ++ .vscode/settings.json | 31 +++ .vscode/tasks.json | 23 ++ GitHub Pages.md | 5 + LICENSE | 121 +++++++++++ Tutorials/Slug.md | 24 +++ flake.lock | 264 +++++++++++++++++++++++ flake.nix | 37 ++++ index.md | 7 + index.yaml | 24 +++ templates/hooks/after-note.tpl | 13 ++ 17 files changed, 669 insertions(+) create mode 100644 .envrc create mode 100644 .gitattributes create mode 100644 .github/README.md create mode 100644 .github/workflows/publish.yaml create mode 100644 .github/workflows/update-flake-lock.yaml create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 GitHub Pages.md create mode 100644 LICENSE create mode 100644 Tutorials/Slug.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 index.md create mode 100644 index.yaml create mode 100644 templates/hooks/after-note.tpl diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..8392d159 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..5a9bbf04 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +*.md linguist-detectable +*.md linguist-language=Markdown +*.md linguist-documentation=false +*.md text +flake.lock linguist-generated=true +*.tpl linguist-language=HTML diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 00000000..62f6f475 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,45 @@ +# emanote-template + +A template repository to create your own Markdown-based [Emanote](https://github.com/srid/emanote) notebook with [Visual Studio Code](https://code.visualstudio.com/) support, as well as to publish it to GitHub Pages. + +See https://emanote.srid.ca/start/resources/emanote-template for details. + +## Using this template + +Click the "Use this template" green button on Github, and in the resulting repository make the following modifications, + +1. Change `index.yaml` to use your site's title (and set the same in `index.md`) and a suitable edit URL. +1. Start adding `.md` notes at repository root (you can use VSCode or [Obsidian](https://obsidian.md/)) + +If deploying using GitHub Pages, also: + +1. Change `flake.nix` to set the `baseUrl` (if your repository is named differently or you are using a CNAME). + +Checkout [examples](https://emanote.srid.ca/examples) and [guide](https://emanote.srid.ca/guide) for next steps. + +## Running using Nix + +To start the Emanote live server using Nix: + +```sh +# If you using VSCode, you can also: Ctrl+Shift+B +nix run +``` + +To update Emanote version in flake.nix: + +```sh +nix flake lock --update-input emanote +``` + +To build the static website via Nix: + +```sh +nix build -o ./result +# Then test it: +nix run nixpkgs#nodePackages.live-server -- ./result +``` + +## GitHub Pages + +GitHub Actions CI is responsible for deploying to GitHub Pages. See `.github/workflows/publish.yaml`. diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..fffcea74 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,27 @@ +name: "Publish" +on: + push: + branches: + - master +jobs: + emanote: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: nixbuild/nix-quick-install-action@v21 + with: + nix_conf: | + experimental-features = nix-command flakes + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + - uses: cachix/cachix-action@v11 + with: + name: srid + - name: Build the website (Nix) 🔧 + run: | + nix build -j 4 + - name: Deploy to gh-pages 🚀 + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./result/ + # cname: yoursite.com diff --git a/.github/workflows/update-flake-lock.yaml b/.github/workflows/update-flake-lock.yaml new file mode 100644 index 00000000..c2c83655 --- /dev/null +++ b/.github/workflows/update-flake-lock.yaml @@ -0,0 +1,23 @@ +name: update-flake-lock +on: + workflow_dispatch: # allows manual triggering + schedule: + - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + +jobs: + lockfile: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Install Nix + uses: cachix/install-nix-action@v17 + with: + extra_nix_config: | + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + - name: Update flake.lock + uses: DeterminateSystems/update-flake-lock@v10 + with: + pr-title: "Update flake.lock" # Title of PR to be created + pr-labels: | # Labels to be set on the PR + automated diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9a899cc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.direnv +/result diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..bd9a8da3 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,16 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "yzhang.markdown-all-in-one", + "svsool.markdown-memo", + "bierner.markdown-checkbox", + "houkanshan.vscode-markdown-footnote", + "bierner.emojisense", + "mdickin.markdown-shortcuts", + "mushan.vscode-paste-image", + "sean10.markless-sean10", + "gruntfuggly.todo-tree", + "bbenoist.nix" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..d79359e1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,31 @@ +{ + // Avoid having to explicitly save notes + "files.autoSave": "afterDelay", + // Minimap is not useful for Markdown notes + "editor.minimap.enabled": false, + // Generally note files are not opened in duplicate tabs. + // This also enables you to navigate to already open note in other split pane + "workbench.editor.revealIfOpen": true, + // For those that use daily notes, via vscode-memo extension + "autoSnippet.snippets": [ + { + "pattern": "**/\\d{4}-\\d{2}-\\d{2}.md", + // To specify the body of this snippet, see + // https://github.com/Microsoft/vscode/issues/8102#issuecomment-423476360 + "snippet": "daily", + } + ], + "editor.formatOnSave": true, + "editor.wordWrap": "on", + "files.autoSaveDelay": 500, + "files.associations": { + "*.tpl": "html" + }, + "pasteImage.insertPattern": "![[${imageFilePath}]]", + "search.exclude": { + ".direnv": true + } + // If use Git, these might be interesting: + // "git.autofetch": true, + // "git.postCommitCommand": "push" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..3209935f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,23 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Emanote Live Server", + "type": "shell", + "command": "nix", + "args": [ + "run" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + }, + "runOptions": { + "runOn": "folderOpen" + } + } + ] +} \ No newline at end of file diff --git a/GitHub Pages.md b/GitHub Pages.md new file mode 100644 index 00000000..640ab416 --- /dev/null +++ b/GitHub Pages.md @@ -0,0 +1,5 @@ +--- +slug: github-pages +--- + +[GitHub Pages](https://pages.github.com/) is an easy way to deploy and host static websites on GitHub. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..0e259d42 --- /dev/null +++ b/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/Tutorials/Slug.md b/Tutorials/Slug.md new file mode 100644 index 00000000..1696f72f --- /dev/null +++ b/Tutorials/Slug.md @@ -0,0 +1,24 @@ +--- +page: + headHtml: | + +--- +By default the filesystem path is used to determine the note URL. You can override this using the `slug` frontmatter metadata. + +## Overriding the URL + +For example, + +- Source: https://raw.githubusercontent.com/srid/srid/master/free/Actualism%20Method.md +- Rendered: https://srid.ca/method + +Notice that in the source, we see: + +```yaml +--- +slug: method +--- +``` + +This makes Emantoe use `/method` as the URL path for this note. Without this, by default, Emanote would use `/free/Actualism%20Method`. + diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..bea4b22f --- /dev/null +++ b/flake.lock @@ -0,0 +1,264 @@ +{ + "nodes": { + "check-flake": { + "locked": { + "lastModified": 1662502605, + "narHash": "sha256-jAT55UhabAxLAVGanxjnNdzH2/oX2ZjLsL4i2jPIP+g=", + "owner": "srid", + "repo": "check-flake", + "rev": "48a17393ed4fcd523399d6602c283775b5127295", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "check-flake", + "type": "github" + } + }, + "ema": { + "inputs": { + "check-flake": "check-flake", + "flake-parts": [ + "emanote", + "flake-parts" + ], + "flake-root": [ + "emanote", + "flake-root" + ], + "haskell-flake": [ + "emanote", + "haskell-flake" + ], + "nixpkgs": [ + "emanote", + "nixpkgs" + ], + "treefmt-nix": [ + "emanote", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1691619338, + "narHash": "sha256-Nxx184m3caxW5z/EMjVZyuTGi8IPH1qTwMAzJBblWUA=", + "owner": "srid", + "repo": "ema", + "rev": "de01c397e050434f41fc9a12fc40de264dc62c21", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "ema", + "type": "github" + } + }, + "emanote": { + "inputs": { + "ema": "ema", + "flake-parts": "flake-parts", + "flake-root": "flake-root", + "flake-schemas": "flake-schemas", + "haskell-flake": "haskell-flake", + "heist-extra": "heist-extra", + "nixpkgs": "nixpkgs", + "systems": "systems", + "treefmt-nix": "treefmt-nix", + "unionmount": "unionmount" + }, + "locked": { + "lastModified": 1701214770, + "narHash": "sha256-5WEoJYPRYD9N0qQ23nao6irzKg+SNH4DY3lTHHdBmSU=", + "owner": "srid", + "repo": "emanote", + "rev": "ea2dca29a92430572048eb5ad5f018b0e66c42bc", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "emanote", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1693611461, + "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-root": { + "locked": { + "lastModified": 1692742795, + "narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", + "owner": "srid", + "repo": "flake-root", + "rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "flake-root", + "type": "github" + } + }, + "flake-schemas": { + "locked": { + "lastModified": 1693615523, + "narHash": "sha256-LeyH24etXCxNJviWptyLy2DPT9xt+oOs/zE66To1iPY=", + "owner": "DeterminateSystems", + "repo": "flake-schemas", + "rev": "8940e872c4f8c7cd7d0a1ec169fa0a24697b1f1c", + "type": "github" + }, + "original": { + "owner": "DeterminateSystems", + "repo": "flake-schemas", + "type": "github" + } + }, + "haskell-flake": { + "locked": { + "lastModified": 1692741689, + "narHash": "sha256-CbNpheNJMTM9Wz5iTzdXmMtvfH9KvH/jNfv6N9roaqs=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "c8622c8a259e18e0a1919462ce885380108a723c", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "haskell-flake", + "type": "github" + } + }, + "heist-extra": { + "flake": false, + "locked": { + "lastModified": 1691619499, + "narHash": "sha256-4e8v5t4FM99pdcPhohP3dAeGtsFnirbfYGpbr2+qWxI=", + "owner": "srid", + "repo": "heist-extra", + "rev": "54ff970f733dd45b5509d1c4c298927b6241041b", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "heist-extra", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1693626178, + "narHash": "sha256-Rpiy6lIOu4zny8tfGuIeN1ji9eSz9nPmm9yBhh/4IOM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "bfb7dfec93f3b5d7274db109f2990bc889861caf", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1693471703, + "narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "emanote": "emanote", + "flake-parts": [ + "emanote", + "flake-parts" + ], + "nixpkgs": [ + "emanote", + "nixpkgs" + ] + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "emanote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693468138, + "narHash": "sha256-DddblCahuTW8K0ncPOheTlG3igE8b15LJjafF1PWhOo=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "6930a5ba0a722385baf273885a03f561dcb1af67", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "unionmount": { + "flake": false, + "locked": { + "lastModified": 1691619410, + "narHash": "sha256-V9/OcGu9cy4kV9jta12A6w5BEj8awSEVYrXPpg8YckQ=", + "owner": "srid", + "repo": "unionmount", + "rev": "ed73b627f88c8f021f41ba4b518ba41beff9df42", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "unionmount", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..6c2f0011 --- /dev/null +++ b/flake.nix @@ -0,0 +1,37 @@ +{ + nixConfig = { + extra-substituters = "https://srid.cachix.org"; + extra-trusted-public-keys = "srid.cachix.org-1:3clnql5gjbJNEvhA/WQp7nrZlBptwpXnUk6JAv8aB2M="; + }; + + inputs = { + emanote.url = "github:srid/emanote"; + nixpkgs.follows = "emanote/nixpkgs"; + flake-parts.follows = "emanote/flake-parts"; + }; + + outputs = inputs@{ self, flake-parts, nixpkgs, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + systems = nixpkgs.lib.systems.flakeExposed; + imports = [ inputs.emanote.flakeModule ]; + perSystem = { self', pkgs, system, ... }: { + emanote = { + # By default, the 'emanote' flake input is used. + # package = inputs.emanote.packages.${system}.default; + sites."default" = { + layers = [ ./. ]; + layersString = [ "." ]; + # port = 8080; + baseUrl = "/emanote-template/"; # Change to "/" (or remove it entirely) if using CNAME + # prettyUrls = true; + }; + }; + devShells.default = pkgs.mkShell { + buildInputs = [ + pkgs.nixpkgs-fmt + ]; + }; + formatter = pkgs.nixpkgs-fmt; + }; + }; +} diff --git a/index.md b/index.md new file mode 100644 index 00000000..957d7c7d --- /dev/null +++ b/index.md @@ -0,0 +1,7 @@ +# Emanote Template + +This is a Git template repository of Markdown notes that are automatically rendered using [Emanote] and hosted on [[GitHub Pages]], while enabling editing in the likes of [Visual Studio Code](https://emanote.srid.ca/start/resources/editors/vscode). For details, see https://github.com/srid/emanote-template. + +Any `.md` file (eg: [[GitHub Pages]]) or directory of `.md` files (eg: [[Tutorials]]) you add to the repository will be rendered automatically. For information on all features Emanote supports, see https://emanote.srid.ca/ + +[Emanote]: https://emanote.srid.ca/ diff --git a/index.yaml b/index.yaml new file mode 100644 index 00000000..d2cbfe4f --- /dev/null +++ b/index.yaml @@ -0,0 +1,24 @@ +# For documentation and available settings, see +# https://github.com/srid/emanote/blob/master/emanote/default/index.yaml + +page: + siteTitle: Emanote Template + +template: + theme: red + + # You can add your own variables here, like editBaseUrl. + # See after-note.tpl to see where editBaseUrl gets used. + editBaseUrl: https://github.com/srid/emanote-template/edit/master + + # Uncomment this to get neuron-style pages + # name: /templates/layouts/note + # layout: + # note: + # containerClass: container mx-auto max-w-screen-lg + + sidebar: + collapsed: false + + # If you are hosting on GitLab Pages, you may want to remove this. + urlStrategy: pretty diff --git a/templates/hooks/after-note.tpl b/templates/hooks/after-note.tpl new file mode 100644 index 00000000..a13b6e3f --- /dev/null +++ b/templates/hooks/after-note.tpl @@ -0,0 +1,13 @@ +
+ + + + + + + + + +
\ No newline at end of file