Skip to content
Merged

V2 #47

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,6 @@ GEM
sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-target-blank (2.0.0)
jekyll (>= 3.0, < 5.0)
nokogiri (~> 1.10)
jekyll-tidy (0.2.2)
htmlbeautifier
htmlcompressor
Expand All @@ -63,16 +60,9 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
nokogiri (1.13.3-x64-mingw32)
racc (~> 1.4)
nokogiri (1.13.3-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.13.3-x86_64-linux)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.6)
racc (1.6.0)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
Expand All @@ -97,13 +87,13 @@ GEM
PLATFORMS
x64-mingw32
x86_64-darwin-19
x86_64-darwin-21
x86_64-linux

DEPENDENCIES
jekyll (~> 4.0.0)
jekyll-feed (~> 0.12)
jekyll-sitemap
jekyll-target-blank
jekyll-tidy
kramdown-math-katex
tzinfo (~> 1.2)
Expand All @@ -112,4 +102,4 @@ DEPENDENCIES
webrick (~> 1.7)

BUNDLED WITH
2.2.32
2.4.22
103 changes: 79 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,93 @@
# Jekyll Garden v 0.4!
![Slide 4_3 - 1 (1)](https://user-images.githubusercontent.com/1788677/169704768-65c32d93-7884-47fa-b98c-bc8329acc6a7.png)
# Jekyll Garden

A simple Jekyll theme that turns your Obsidian notes into a beautiful website. Perfect for sharing your thoughts and knowledge online. If you use Obsidian for note-taking, this theme makes it easy to publish your markdown files as a connected website with wiki-style links and full-text search.

Jekyll Garden theme lets you publish your [Obsidian](https://obsidian.md/) vault (or a subset of it) as a Jekyll static website. The theme is markdown and Obsidian setup friendly. You can use your own server or Github page to set up your SSG. Check out the demo.

<a href="https://www.buymeacoffee.com/hiran" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height= "48" width="173"></a>
### What it does

## Documents and links
- [Demo website](https://jekyll-garden.github.io/)
- [Personal Website](https://hiran.in/)
- [Feature List](https://jekyll-garden.github.io/post/features)
- [How to Setup](https://jekyll-garden.github.io/post/how-to)
Jekyll Garden connects your notes together with simple `[[note title]]` links, just like in Obsidian. You can find any note quickly with the built-in search that works as you type. The design focuses on your content with a clean, minimal look that works great on phones, tablets, and computers. Choose between dark and light themes, and when you want to write traditional blog posts, you can do that too. The theme also supports mathematical expressions if you need to write equations.

## Credits & Thanks
- See [Credits page](https://jekyll-garden.github.io/credits)
## Getting Started

## Contribution
Getting started is straightforward. First, download this theme to your computer. Then edit the settings in the `_config.yml` file with your website information. Add your notes to the `_notes` folder, and finally deploy to GitHub Pages, Netlify, or any web hosting service.

To set up your environment to develop this theme, run `bundle install` after cloning this repository in your local machine.
## Basic Setup

Your theme is set up just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. `_notes` contain all atomic notes. If you want to use this for blog, add posts inside `_posts` folder, following standard Jekyll frontamtter.
Edit `_config.yml` with your information:

### Hosting in a Docker Container
For hosting on your local network, inside a docker container, install `docker` and `docker-compose` and run,
```Terminal
$ docker-compose up -d
```yaml
title: "My Website"
heading: "Your Name"
description: "A brief description of your site"
url: "https://yoursite.com"
```
> **Note**:-
>
> This container is built upon on alpine based ruby image. There's an official Jekyll image available in docker hub which only support `amd64` images. You can opt to use that if you are running the container on an 64bit PC. If you want to run this on an ARM based system like Raspberry Pi, this would be a better option.
>
> The directories which will be frequently modified, are mapped as local volumes so that any changes made to those will be immediately picked up by the server and built. If you fancy changing content in other folders regularly, feel free to add them to the `volumes` section in `docker-compose.yml` before deploying.

### Deployment Options

You can deploy your site to a subdomain (like `notes.yoursite.com`) or a subdirectory (like `yoursite.com/notes`):

**For subdomains:**
```yaml
url: "https://notes.yoursite.com"
baseurl: ""
```

**For subdirectories:**
```yaml
url: "https://yoursite.com"
baseurl: "/notes"
```

See `SUBDOMAIN_SETUP.md` for more details.

## Writing Notes

### Creating a Note

Each note is just a markdown file with a title. You write your content in markdown format, just like you would in Obsidian or any other markdown editor.

```yaml
---
title: "My First Note"
date: 2025-01-15
---
```

## Features

### Linking Notes Together
Connect your notes by using `[[note title]]` to link to other notes. This creates the same kind of connections you're used to in Obsidian, but now they work on your website too.


### Simple Linking
The linking system works just like Obsidian. Write `[[note title]]` and the links are created automatically. When you hover over a link, you'll see a preview of the connected note.

### Search
Finding content is easy with the built-in search. It searches through all your notes instantly as you type, looking at both titles and content to help you find exactly what you need.

### Backlinks
See which notes link to the current one you're reading. This helps you discover related content and explore the connections between your ideas, just like the backlinks feature in Obsidian.

### Math
If you need to write mathematical expressions, the theme supports it. Use `$x = y$` for inline math and `$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$` for complex equations.

## How to Publishing Your Site

### GitHub Pages (Free)
GitHub Pages is the easiest way to get started. Upload your files to GitHub, enable GitHub Pages in the repository settings, and your site goes live automatically.

### Netlify (Free)
Netlify is another great option. Connect your GitHub repository to Netlify, and it will build and host your site. Every time you update your files, your site updates automatically.

### Local Testing
Test your site locally before publishing. Run `bundle install` to install dependencies, then `bundle exec jekyll serve` to start a local server and see your site in action.

### Customization
Change the look of your site by editing the `assets/css/style.css` file. You can modify colors, fonts, and other visual elements to match your preferences. If you want to customize the layout, you can modify files in the `_layouts/` folder. Add your own CSS and JavaScript as needed, but remember to keep it simple.

## Contributing
Found a bug or have an idea for improvement? Contributions are welcome. Fork the repository, make your changes, and submit a pull request.

## License

The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
MIT License - use it freely for any project.
149 changes: 69 additions & 80 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,105 +18,94 @@
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.

# URL is the base hostname with protocol for your site, eg http://example.com
url: "" # the base hostname & protocol for your site, e.g. http://example.com
# Jekyll Garden Configuration
# Optimized for actual template usage

# If you want to install this jekyll in a subpath (eg /digitalgarden) set it here.
# Else keep it Empty (DON'T PUT /; Keep it empty)
baseurl: ""

# Website Header, Description, Footer year and text.
# If you are deleting this, make sure you remove it from HTML files too
heading: Jekyll Garden # Change this
content: Obsidian ready Jekyll Theme
copyright:
year: © 2022
msg: Contents under CC-BY-NC

# Set title and content for private & broken link tooltop
privatelinks:
title: Private or Broken Links
msg: The page you're looking for is either not available or private!

# Theme level preferences
# To enable set "enabled : true" else, use "enabled:false"
# Preferences (controls template behavior)
preferences:
homepage:
enabled: false
search:
enabled: true
wiki_style_link:
backlinks:
enabled: true
pagepreview:
pagepreview:
enabled: true
backlinks:
wiki_style_link:
enabled: true
# To enable a homepage, change the value to true and add content to _includes/Homepage.html
# If enable : false, notes feed will be as homepage.
homepage:
enabled: true ##If you need a homepage, change this to true and edit _includes/Homepage.html

encoding: utf-8
# Site Configuration
title: "Your Site Title"
heading: "Your Name"
description: "A brief description of your site"
url: "https://yoursite.com"
baseurl: ""

# Build settings
theme: null
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-tidy

## Enable Collections
## Suggested collects are "notes" "lists" and "blog"
collections:
notes:
output: true
permalink: /note/:title
# Asset Configuration
apple_touch_icon: "/assets/img/profile.png"
css_file: "/assets/css/style.css"
ie_css: "/assets/css/ie-target.css"

markdown: kramdown
# Menu Items
menu:
- title: "Notes"
url: "/notes"
- title: "Blog"
url: "/blog"
- title: "About"
url: "/about"

kramdown:
input: GFM
hard_wrap: false
math_engine: katex
smart_quotes: ["apos", "apos", "quot", "quot"]
syntax_highlighter: rouge

sass:
style: compressed
# Footer
footer:
copyright: "© 2024 Your Name. Contents under CC-BY-NC"
credits:
enabled: true
url: "/credits"
text: "Credits"

# Collections
collections:
notes:
output: true
permalink: /:collection/:name

# Defaults
defaults:
- scope:
path: ""
type: posts
type: "notes"
values:
layout: Post
permalink: /post/:title
content-type: post
layout: "Post"
content-type: "notes"
feed: "show"
- scope:
path: ""
type: notes
type: "posts"
values:
layout: Post
content-type: notes
layout: "Post"
content-type: "post"
feed: "show"
permalink: /blog/:title/

# Plugins
plugins:
- jekyll-feed
- jekyll-sitemap

# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# Private links (for broken wiki links)
privatelinks:
title: "Private Note"
msg: "This note hasn't been published yet."

# Math rendering
katex: true

# Exclude from processing
exclude:
- _notes/000 Inbox
- _notes/200 Private
- _notes/300 Templates
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
- Gemfile
- Gemfile.lock
- node_modules
- vendor/bundle/
- vendor/cache/
- vendor/gems/
- vendor/ruby/
Loading