athena
last edited Wed, 24 Jul 2024 05:21:40 GMT
backlinks:
Uses
bookmarks
I needed a note taking management system that would play nicely with a static site generator, and I didn't want to use tools with restrictive liscensing. Athena is an extenable and minimal pre-configured 11ty theme bundled to work alongside foam and several vscode plugins. Content is written in markdown and HTML is generated during deployment. The simplicity of this workflow allows me to focus more on information rather than the design.
Installation direct link to this section
-
clone the repository
git clone https://gitlab.com/lzrddev/athena.git
-
install dependencies
npm install
-
Edit
.eleventy.js
to your liking -
Edit relevant metadata in
package.json
-
test before deployment
npx @11ty/eleventy --serve
You can debug 11ty under the hood by setting the appropriate environment variable:
$env:DEBUG="Eleventy*"; npx @11ty/eleventy --serve
Customization direct link to this section
Change any files in assets such as logos, images, and css. Templates can be modified, the main goal is that this is a simple system that can be customized to anyone's preferences for a logging system. .eleventyignore
can be used to hide private folders, this is enabled by default and applies to the /drafts
directory as well. The contents of these folders are stored as a git repository and they will not appear generated in /public
.
Directory Map direct link to this section
This is the default directory scheme used for my site:
/athena
/_includes
/.foam
/assets
/memex
/public
Templates and layouts are within _includes
, /assets
contains any media, fonts, and stylesheets used for the site, public
denotes the final output of generated files. The input and output directories can also be changed in .eleventy.js
like so:
return {
dir: {
input: "site",
output: "www",
includes: "_includes",
data: "_data"
},
passthroughFileCopy: true
};
Collections direct link to this section
I create a memex
collection in .eleventy.js
that is assigned to all markdown files in the specified notes directory. The same implementation can be used to create collections corresponding to different tags or blog posts.
Content Dates direct link to this section
Default date is set to file creation in 11ty. Easily overriden in front matter.
---
date: 2016-01-01
---
More valid values:
Created
Last Modified
git Last Modified
git Created
- valid YAML date values
Deployment direct link to this section
Currently only tested with gitlab pages, see .gitlab-ci.yml
for implementation details. Feel free to try this out with netlify if that's your jam. Self hosting is also an option, only the static contents of /outputFolder
are needed for a fully functional website.
Work in Progress direct link to this section
- [x] accessible anchor links
- [x] Images traditionally referrenced in markdown do not work for the time being, instead use traditional html. For whatever reason external links can be referrenced in markdown, but it isn't ideal.
- [x] table of contents/ outline for long form writing
- [x] RSS support
- [x] Backlinks need to be fixed for new update compatibility
- preview was removed
- [x] XML sitemap
- [x] page dates do not accurately reflect last edit
- frontmatter for note templates now set to
date: Last Modified
- frontmatter for note templates now set to
- [x] add light and dark mode
- [ ] mobile media queries
I removed the stream section because it felt redundant in place of activitypub