Simply Jekyll is a simple yet highly functional jekyll-based theme that combines the best of different worlds. It is a minimal and distraction free theme that strives to provide maximum value all without holding back on any essential features that a user would benefit from or would desire for. This is an evolving project and is garanteed to be maintained at least for quite some time as I myself am a beneficiary of this theme and the project.
14 |
15 |
16 |
17 | ## Feature Overview
18 |
19 | [View the documentation(f)](https://simply-jekyll.netlify.app/posts/explore) for feature information.
20 |
21 | - Based on Jekyll, a static website generator
22 | - Creates backlinks to other notes automatically
23 | - Context menu on feed to instantly see related posts and backlinks
24 | - Search with context integrated within the blog feed
25 | - Supports wiki-style/roam-style double bracket link syntax to other notes
26 | - On hover page previews
27 | - Features a simple and responsive design
28 | - Supports Markdown or HTML notes
29 |
30 |
31 | ## Installation
32 |
33 | [View the documentation(i)](https://simply-jekyll.netlify.app/posts/setup) for setup and installation information.
34 |
35 | Hopefully there will be an easier process soon.
36 |
37 | ## Usage
38 |
39 | [View the documentation(u)](https://simply-jekyll.netlify.app/posts/usage) for usage information.
40 |
41 | ## Contributing
42 |
43 | Bug reports and pull requests are welcome on GitHub at https://github.com/rgvr/simply-jekyll. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
44 |
45 | ### Submitting code changes:
46 |
47 | - Open a [Pull Request](https://github.com/rgvr/simply-jekyll/pulls)
48 | - Ensure all CI tests pass
49 | - Await code review
50 |
51 | ### Design and development principles of this theme:
52 |
53 | 1. As few dependencies as possible
54 | 2. No build script needed
55 | 3. First class mobile experience
56 | 4. Make the content shine
57 |
58 | ## Development
59 |
60 | To set up your environment to develop this theme, run `bundle install`.
61 |
62 | 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. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
63 |
64 | When the theme is released, only the files in `_layouts`, `_includes`, and `assets` tracked with Git will be released.
65 |
66 | ## License
67 |
68 | The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
69 |
70 |
71 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely edit after that. If you find
5 | # yourself editing this file very often, consider using Jekyll's data files
6 | # feature for the data you need to update frequently.
7 | #
8 | # For technical reasons, this file is *NOT* reloaded automatically when you use
9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10 | #
11 | # If you need help with YAML syntax, here are some quick references for you:
12 | # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13 | # https://learnxinyminutes.com/docs/yaml/
14 | #
15 | # Site settings
16 | # These are used to personalize your new site. If you look in the HTML files,
17 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
18 | # You can create any custom variable you would like, and they will be accessible
19 | # in the templates via {{ site.myvariable }}.
20 |
21 |
22 | baseurl: "/" # the subpath of your site, e.g. /blog
23 | url: "https://simply-jekyll.netlify.app/" # the base hostname & protocol for your site, e.g. http://example.com
24 |
25 | #######################################################################
26 | # Settings related to the Header and your About page go here,such as
27 | # your name, site name, profile pic, site tagline, your bio,
28 | # your social media links etc
29 | #######################################################################
30 |
31 | heading: Simply Jekyll
32 | subheading: # subheading won't work without a tagline,
33 | # tagline is mandatory if you want the
34 | # suheading to appear. The reason is
35 | # having a heading and a subheading looks
36 | # ridiculous.
37 | enabled: true
38 | name: Notes and Thoughts
39 | tagline: # subheading won't work without a tagline,
40 | # tagline is mandatory if you want the
41 | # suheading to appear. The reason is
42 | # having a heading and a subheading looks
43 | # ridiculous.
44 | # Although you can have the tagline without
45 | # the subheading to support the main heading
46 | # which in this case is 'Knowledge Continuum'
47 | enabled: true
48 | name: An experiment to spark conversations
49 | copyright:
50 | year: 2020
51 | msg: Raghuveer S # This is a mandatory attribute for copyright to be displayed
52 |
53 | user:
54 | display: true # setting it to false will remove the header image and bio
55 | # Note that user settings come wholesale, it does not have the
56 | # granular enabling or disabling as with the 'preferences'
57 | # or the site-wide settings.
58 | name: Raghuveer S
59 | bio: Programmer ∪ Writer. Interested in constraints and correspondences.
60 | email: raghu-veer@outlook.com
61 | photo: /assets/img/profile.png
62 | alt_link: rgvr.me
63 | social: # just leave the field blank or type in null, if you don't have a
64 | # particular social media account and it won't appear
65 | enabled: false # turn this to true
66 | twitter: rgvrme
67 | github: rgvr
68 | youtube: rgvr
69 | linkedin: rgvr
70 | twitch: null
71 | facebook: null
72 | instagram: null
73 |
74 |
75 |
76 | #####################################################################
77 | # Settings related to your preferences go here, such as the
78 | # search results, wiki-style-links, sidenotes, marginnotes,
79 | # transclusion, pagepreview, backlinks, related posts, highlighting,
80 | # context menu, flashcards, sliding window, wrapping
81 | #####################################################################
82 | preferences:
83 | search:
84 | enabled: true
85 | shortcut_hint:
86 | enabled: true
87 | wiki_style_link: # This property handles wiki style links '[['
88 | enabled: true
89 | sidenotes:
90 | enabled: true
91 | transclusion:
92 | enabled: true
93 | image:
94 | enabled: true
95 | pagepreview:
96 | enabled: true
97 | highlighting:
98 | enabled: true
99 | color: DAEDFF # Takes hexadecimal and basic names like white, red, etc.
100 | # Do not add '#'(the pound symbol) before the hexadecimal number.
101 | # In yml, it is considered as a comment
102 | backlinks:
103 | enabled: true
104 | related:
105 | enabled: true # This enables the posts that are related to each other by tags
106 | wrapping:
107 | enabled: true
108 | contextmenu:
109 | enabled: true
110 | copylink:
111 | enabled: true
112 | newtab:
113 | enabled: true
114 | backlinks:
115 | enabled: true
116 | related:
117 | enabled: true
118 | flashcards:
119 | enabled: true
120 |
121 | encoding: utf-8
122 |
123 | # Build settings
124 | theme: null
125 | plugins:
126 | - jekyll-feed
127 | - jekyll-sitemap
128 | - jekyll-tidy
129 |
130 | # Disqus Comments
131 | disqus:
132 | # Leave shortname blank to disable comments site-wide.
133 | # Disable comments for any post by adding `comments: false` to that post's YAML Front Matter.
134 | shortname: rgvr
135 |
136 | markdown: kramdown
137 |
138 | kramdown:
139 | input: GFM
140 | hard_wrap: false
141 | math_engine: katex
142 | smart_quotes: ["apos", "apos", "quot", "quot"]
143 | syntax_highlighter: rouge
144 |
145 | sass:
146 | style: compressed
147 |
148 | defaults:
149 | - scope:
150 | path: ""
151 | type: posts
152 | values:
153 | layout: Post
154 | permalink: /posts/:title
155 | content-type: post
156 |
157 |
158 | # Exclude from processing.
159 | # The following items will not be processed, by default.
160 | # Any item listed under the `exclude:` key here will be automatically added to
161 | # the internal "default list".
162 | #
163 | # Excluded items can be processed by explicitly listing the directories or
164 | # their entries' file path in the `include:` list.
165 | #
166 | # exclude:
167 | # - .sass-cache/
168 | # - .jekyll-cache/
169 | # - gemfiles/
170 | # - Gemfile
171 | # - Gemfile.lock
172 | # - node_modules/
173 | # - vendor/bundle/
174 | # - vendor/cache/
175 | # - vendor/gems/
176 | # - vendor/ruby/
177 |
--------------------------------------------------------------------------------
/_includes/Backlinks.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Backlinks.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the links that refer back to this file.
28 | * You can find the final thing at the end of every post inside a small greyish box
29 | *
30 | {%- endcomment -%}
31 |
32 |
33 | {%- assign link_count = 0 -%}
34 | {%- assign wiki_link_title = '[' | append: page.title | append: ']' -%}
35 | {%- for note in site.posts -%}
36 | {%- if note.url != page.url -%}
37 | {%- if note.content contains wiki_link_title -%}
38 | {%- assign link_count = link_count | plus:1 -%}
39 | {%- endif -%}
40 | {%- endif -%}
41 | {%- endfor -%}
42 | {%- for note in site.pages -%}
43 | {%- if note.url != page.url -%}
44 | {%- if note.content contains wiki_link_title -%}
45 | {%- assign link_count = link_count | plus:1 -%}
46 | {%- endif -%}
47 | {%- endif -%}
48 | {%- endfor -%}
49 | {%- if link_count > 0 -%}
50 | {%- assign wiki_link_title = '[' | append: page.title | append: ']' -%}
51 | {%- assign display_class = 'hide' -%}
52 | {%- if site.preferences.backlinks.enabled -%}
53 | {%- assign display_class = 'show' -%}
54 | {%- endif -%}
55 |
56 |
Links to this note
57 |
58 | {%- for note in site.posts -%}
59 | {%- if note.url != page.url -%}
60 | {%- if note.content contains wiki_link_title -%}
61 |
81 | {%- endif -%}
82 |
--------------------------------------------------------------------------------
/_includes/Comments.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Comments.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the commenting system, which is basically just
28 | * a snippet provided by disqus itself. You can find it directly on disqus site.
29 | *
30 | {%- endcomment -%}
31 |
32 | {%- if page.comments -%}
33 |
34 |
35 |
51 |
52 | {%- endif -%}
53 |
--------------------------------------------------------------------------------
/_includes/Content.html:
--------------------------------------------------------------------------------
1 |
2 | {%- if page.content-type == "post" -%}
3 |
4 | {%- if page.status != nil and page.status != empty -%}
5 |
139 |
--------------------------------------------------------------------------------
/_includes/ContextMenu.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: ContextMenu.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the context menu thingy you see when you right
28 | * click on the post titles on the home page.
29 | *
30 | {%- endcomment -%}
31 |
32 | {%- if page.permalink == "/" -%}
33 | {%- if site.preferences.contextmenu.enabled -%}
34 |
66 |
68 |
69 | {%- endif -%}
70 | {%- endif -%}
71 |
--------------------------------------------------------------------------------
/_includes/EmbedYT.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: EmbedYT.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for being able to embed yt videos on your blogpost.
28 | *
29 | {%- endcomment -%}
30 |
31 |
32 |
39 |
--------------------------------------------------------------------------------
/_includes/Feed.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Feed.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the list of posts you see on the home page.
28 | * It is named feed.html because the structuring of the titles on the home page
29 | * looks like a social media feed.
30 | *
31 | *
32 | {%- endcomment -%}
33 |
34 | {%- if page.permalink == "/" -%}
35 | {%- for item in site.posts -%}
36 |
49 | {%- endfor -%}
50 | {%- endif -%}
51 |
--------------------------------------------------------------------------------
/_includes/Footer.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Footer.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the copyright notice.
28 | *
29 | {%- endcomment -%}
30 |
31 | {%- if site.copyright.msg != nil and site.copyright.msg != empty and site.copyright.msg != null -%}
32 |
35 | {%- endif -%}
36 |
--------------------------------------------------------------------------------
/_includes/Header.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Header.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the site heading, subheading, user description,
28 | * user avatar, searchbar, site tagline.
29 | *
30 | {%- endcomment -%}
31 |
32 |
33 |
241 | {%- endif -%}
242 |
243 |
244 |
--------------------------------------------------------------------------------
/_includes/Related.html:
--------------------------------------------------------------------------------
1 | {%- comment -%}
2 | *
3 | * MIT License
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * File: Related.html
25 | * Author@Raghuveer S
26 | *
27 | * This file contains the markup for the small greyish box that you see at the end
28 | * of all blogposts. It contains the markup to create a small of all the posts
29 | * that are related by tag. The limit I think is restricted to 10.
30 | *
31 | {%- endcomment -%}
32 |
33 | {%- if page.content-type == "post" -%}
34 | {%- assign sameTagCount = 0 -%}
35 | {%- assign minCommonTags = 1 -%}
36 | {%- for post in site.posts -%}
37 | {%- for tag in post.tags -%}
38 | {%- if post.url != page.url -%}
39 | {%- if page.tags contains tag -%}
40 | {%- unless post.content contains page.title -%}
41 | {%- assign sameTagCount = sameTagCount | plus: 1 -%}
42 | {%- endunless -%}
43 | {%- endif -%}
44 | {%- endif -%}
45 | {%- endfor -%}
46 | {%- endfor -%}
47 |
48 | {%- if sameTagCount >= minCommonTags-%}
49 | {%- assign display_class = 'hide' -%}
50 | {%- if site.preferences.related.enabled -%}
51 | {%- assign display_class = 'show' -%}
52 | {%- endif -%}
53 |
64 | {%- include Header.html -%}
65 | {%- include Feed.html -%}
66 |
67 | {%- if page.content-type == "notes"
68 | or page.content-type == "post" -%}
69 |
70 |
{{page.title}}
71 | {%- include Content.html -%}
72 | {%- include Backlinks.html -%}
73 | {%- include Related.html -%}
74 |
75 | {%- endif -%}
76 | {%- if page.content-type == "eg" -%}
77 |
78 |
{{page.title}}
79 | {%- include Content.html -%}
80 |
81 | {%- endif -%}
82 | {%- include Comments.html -%}
83 | {%- include Footer.html -%}
84 |
85 |
86 |
87 | {%- include ContextMenu.html -%}
88 |
89 |
90 |
--------------------------------------------------------------------------------
/_layouts/Stylesheet.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 | {{ content | scssify }}
5 |
--------------------------------------------------------------------------------
/_posts/2020-01-01-test.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Test page to see how the raw markdown is rendered
3 | tags: Markdown
4 | comments: true
5 | ---
6 |
7 | This is intended as a quick reference and showcase.
8 |
9 | * TOC
10 | {:toc}
11 |
12 |
13 | {:#heading}
14 | ### Headings
15 | ---
16 |
17 | {:.regular-sans}
18 | ```
19 | # H1
20 | ## H2
21 | ### H3
22 | #### H4
23 | ##### H5
24 | ###### H6
25 | ```
26 |
27 | # H1
28 | ## H2
29 | ### H3
30 | #### H4
31 | ##### H5
32 | ###### H6
33 |
34 | {:#emphasis}
35 | ### Emphasis
36 | ---
37 |
38 | {:.regular-sans}
39 | ```
40 | Emphasis, aka italics, with *asterisks* or _underscores_.
41 |
42 | Strong emphasis, aka bold, with **asterisks** or __underscores__.
43 |
44 | Combined emphasis with **asterisks and _underscores_**.
45 |
46 | Strikethrough uses two tildes. ~~Scratch this.~~
47 | ```
48 |
49 | Emphasis, aka italics, with *asterisks* or _underscores_.
50 |
51 | Strong emphasis, aka bold, with **asterisks** or __underscores__.
52 |
53 | Combined emphasis with **asterisks and _underscores_**.
54 |
55 | Strikethrough uses two tildes. ~~Scratch this.~~
56 |
57 | {:#lists}
58 | ### Lists
59 |
60 | {:.regular-sans}
61 | ```
62 | 1. First ordered list item
63 | ...1. Ordered sublist
64 | 2. Another item
65 | ...* Unordered sublist
66 | 3. Actual numbers don't matter, just that it's a number
67 | 4. And another item.
68 |
69 | ⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).
70 |
71 | ⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅
72 | ⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅
73 | ⋅⋅⋅(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)
74 |
75 | * Unordered list can use asterisks
76 | - Or minuses
77 | + Or pluses
78 | ```
79 |
80 | 1. First ordered list item
81 | 1. Ordered sublist
82 | 2. Another item
83 | - Unordered sublist
84 | 3. Actual numbers don't matter, just that it's a number
85 | 4. And another item.
86 |
87 | You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).
88 |
89 | To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅
90 | Note that this line is separate, but within the same paragraph.⋅⋅
91 | (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)
92 |
93 | * Unordered list can use asterisks
94 | - Or minuses
95 | + Or pluses
96 |
97 | {:#links}
98 | ### Links
99 | ---
100 |
101 | {:.regular-sans}
102 | ```
103 | [I'm an inline-style link](https://www.google.com)
104 |
105 | [I'm an inline-style link with title](https://www.google.com "Google's Homepage")
106 |
107 | [I'm a reference-style link][Arbitrary case-insensitive reference text]
108 |
109 | [I'm a relative reference to a repository file](../blob/master/LICENSE)
110 |
111 | [You can use numbers for reference-style link definitions][1]
112 |
113 | Or leave it empty and use the [link text itself].
114 |
115 | URLs and URLs in angle brackets will automatically get turned into links.
116 | http://www.example.com or and sometimes
117 | example.com (but not on Github, for example).
118 |
119 | Some text to show that the reference links can follow later.
120 |
121 | [arbitrary case-insensitive reference text]: https://www.mozilla.org
122 | [1]: http://slashdot.org
123 | [link text itself]: http://www.reddit.com
124 | ```
125 |
126 | [I'm an inline-style link](https://www.google.com)
127 |
128 | [I'm an inline-style link with title](https://www.google.com "Google's Homepage")
129 |
130 | [I'm a reference-style link][Arbitrary case-insensitive reference text]
131 |
132 | [I'm a relative reference to a repository file](../blob/master/LICENSE)
133 |
134 | [You can use numbers for reference-style link definitions][1]
135 |
136 | Or leave it empty and use the [link text itself].
137 |
138 | URLs and URLs in angle brackets will automatically get turned into links.
139 | http://www.example.com or and sometimes
140 | example.com (but not on Github, for example).
141 |
142 | Some text to show that the reference links can follow later.
143 |
144 | [arbitrary case-insensitive reference text]: https://www.mozilla.org
145 | [1]: http://slashdot.org
146 | [link text itself]: http://www.reddit.com
147 |
148 | {:#images}
149 | ### Images
150 | ---
151 |
152 | {:.regular-sans}
153 | ```
154 | Here's our logo (hover to see the title text):
155 |
156 | Inline-style:
157 | 
158 |
159 | Reference-style:
160 | ![alt text][logo]
161 |
162 | [logo]: /assets/img/profile.png "Logo Title Text 2"
163 | ```
164 |
165 | Here's our logo (hover to see the title text):
166 |
167 | Inline-style:
168 | 
169 |
170 | Reference-style:
171 | ![alt text][logo]
172 |
173 | [logo]: /assets/img/profile.png "Logo Title Text 2"
174 |
175 | {:#syntax}
176 | ### Code and Syntax Highlighting
177 | ---
178 |
179 | Code blocks are part of the Markdown spec, but syntax highlighting isn't. However, many renderers -- like Github's and Markdown Here -- support syntax highlighting. Which languages are supported and how those language names should be written will vary from renderer to renderer. Markdown Here supports highlighting for dozens of languages (and not-really-languages, like diffs and HTTP headers);
180 |
181 | {:.regular-sans}
182 | ```
183 | Inline `code` has `back-ticks around` it.
184 | ```
185 |
186 | Inline `code` has `back-ticks around` it.
187 |
188 | Blocks of code are either fenced by lines with three back-ticks ```, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.
189 |
190 |
191 |
192 | ```javascript
193 | var s = "JavaScript syntax highlighting";
194 | alert(s);
195 | ```
196 |
197 | ```python
198 | s = "Python syntax highlighting"
199 | print s
200 | ```
201 |
202 | ```
203 | No language indicated, so no syntax highlighting.
204 | But let's throw in a tag.
205 | ```
206 |
207 |
208 |
209 | ```javascript
210 | var s = "JavaScript syntax highlighting";
211 | alert(s);
212 | ```
213 |
214 | ```python
215 | s = "Python syntax highlighting"
216 | print s
217 | ```
218 |
219 | ```
220 | No language indicated, so no syntax highlighting.
221 | But let's throw in a tag.
222 | ```
223 |
224 | {:#math}
225 | ### Math expressions
226 | ---
227 |
228 | You can write math expressions using the $$\LateX$$ [markup language](https://en.wikipedia.org/wiki/LaTeX) between double dollar signs : \$$...$$. They can be written inline or as a single block.
229 |
230 | For example,
231 |
232 | \$$P(A|B) = \frac{P(B | A)\cdot P(A)}{P(B)}$$ will render as :
233 |
234 | $$P(A|B) = \frac{P(B | A)\cdot P(A)}{P(B)}$$
235 |
236 | Please note that for a math block to be displayed correctly, it needs to be separated by an empty line, above and below. Besides, the pipe character | may conflict with markdown : it is recommended to use \vert instead.
237 |
238 | {:#tables}
239 | ### Tables
240 | ---
241 |
242 | Tables aren't part of the core Markdown spec, but they are part of GFM and Markdown Here supports them. They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application.
243 |
244 | {:.regular-sans}
245 | ```
246 | Colons can be used to align columns.
247 |
248 | | Tables | Are | Cool |
249 | | ------------- |:-------------:| -----:|
250 | | col 3 is | right-aligned | $1600 |
251 | | col 2 is | centered | $12 |
252 | | zebra stripes | are neat | $1 |
253 |
254 | There must be at least 3 dashes separating each header cell.
255 | The outer pipes (|) are optional, and you don't need to make the
256 | raw Markdown line up prettily. You can also use inline Markdown.
257 |
258 | Markdown | Less | Pretty
259 | --- | --- | ---
260 | *Still* | `renders` | **nicely**
261 | 1 | 2 | 3
262 | ```
263 |
264 | Colons can be used to align columns.
265 |
266 | | Tables | Are | Cool |
267 | | ------------- |:-------------:| -----:|
268 | | col 3 is | right-aligned | $1600 |
269 | | col 2 is | centered | $12 |
270 | | zebra stripes | are neat | $1 |
271 |
272 | There must be at least 3 dashes separating each header cell.
273 | The outer pipes (|) are optional, and you don't need to make the
274 | raw Markdown line up prettily. You can also use inline Markdown.
275 |
276 | Markdown | Less | Pretty
277 | --- | --- | ---
278 | *Still* | `renders` | **nicely**
279 | 1 | 2 | 3
280 |
281 | {:#blockquotes}
282 | ### Blockquotes
283 | ---
284 |
285 | {:.regular-sans}
286 | ```
287 | > Blockquotes are very handy in email to emulate reply text.
288 | > This line is part of the same quote.
289 |
290 | Quote break.
291 |
292 | > This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
293 | ```
294 |
295 | > Blockquotes are very handy in email to emulate reply text.
296 | > This line is part of the same quote.
297 |
298 | Quote break.
299 |
300 | > This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
301 |
302 | {:#inline}
303 | Inline HTML
304 | ---
305 |
306 | You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
307 |
308 | {:.regular-sans}
309 | ```
310 |
311 |
Definition list
312 |
Is something people use sometimes.
313 |
314 |
Markdown in HTML
315 |
Does *not* work **very** well. Use HTML tags.
316 |
317 | ```
318 |
319 | You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
320 |
321 |
322 |
Definition list
323 |
Is something people use sometimes.
324 |
325 |
Markdown in HTML
326 |
Does *not* work **very** well. Use HTML tags.
327 |
328 |
329 | {:#hr}
330 | ### Horizontal Rule
331 | ---
332 |
333 |
334 | {:.regular-sans}
335 | ```
336 | Three or more...
337 |
338 | ---
339 |
340 | Hyphens
341 |
342 | ***
343 |
344 | Asterisks
345 |
346 | ___
347 |
348 | Underscores
349 | ```
350 |
351 | Three or more...
352 |
353 | ---
354 |
355 | Hyphens
356 |
357 | ***
358 |
359 | Asterisks
360 |
361 | ___
362 |
363 | Underscores
364 |
365 | {:#br}
366 | ### Line Breaks
367 | ---
368 |
369 | My basic recommendation for learning how line breaks work is to experiment and discover -- hit once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want. "Markdown Toggle" is your friend.
370 |
371 | Here are some things to try out:
372 |
373 | {:.regular-sans}
374 | ```
375 | Here's a line for us to start with.
376 |
377 | This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
378 |
379 | This line is also a separate paragraph, but...
380 | This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
381 | ```
382 |
383 | Here's a line for us to start with.
384 |
385 | This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
386 |
387 | This line is also a separate paragraph, but...
388 | This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
389 |
390 |
391 | License: CC-BY
392 |
--------------------------------------------------------------------------------
/_posts/2020-02-01-usage.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to use Simply Jekyll features on your website
3 | tags: Jekyll Theme
4 | comments: true
5 | ---
6 |
7 | Welcome to this feature usage tour. This is going to be another short post that describes how to use all the fancy features we saw in [[Exploring the features of Simply Jekyll]]. So without further ado, let's get started.
8 |
9 | ## The default features
10 |
11 | All the default jekyll markdown features are made available such that they don't cause any conflict with the custom features that we have implemented. To see how to the raw markdown gets generated, go to the [[Test page to see how the raw markdown is rendered]]
12 |
13 | ## The Custom features
14 |
15 | ### 1. Creating a wiki-style link
16 |
17 | **General Syntax**
18 |
19 | - **Internal links:** **[[**Some Link**]]**
20 |
21 | - **External links:** **[[**Some Text::https://address-to-the-website**]]**
22 |
23 | Anything text inside a double square bracket is considered as an internal link. The text has to be a valid title, if you provide a random text inside double square brackets, it will showup highlighted in yellow telling you that there is no essay/article/file with the mentioned title.
24 |
25 | Similarly, for external links all you have to do is add a double colon after the "Alt text" and enter the link to the website after the double colon as seen below.
26 |
27 | **Examples**
28 |
29 | Example of an internal link that points to a valid post or page, that is, a page with the title (not url) mentioned in the double brackets.
30 |
31 | > **Raw Syntax:** **[[**Lorem ipsum dolor sit amet**]]**
32 | >
33 | > **Rendered Text:** [[Lorem ipsum dolor sit amet]]
34 |
35 |
36 | Example of an internal link that do not point to a valid post or page, that is, a page with the title (not url) mentioned in the double brackets.
37 |
38 | > **Raw Syntax:** **[[**Title of a non-existent page**]]**
39 | >
40 | > **Rendered Text:** [[Title of a non-existent page]]
41 |
42 | ### 2. Creating a sidenote or a marginnote
43 |
44 | **General Syntax**
45 |
46 | - **Sidenote:** **[[**Some Text**::keyword-of-the-type-of-the-sidenote]]**
47 |
48 | - **Marginnote:** **[[**Some Text**::keyword-of-the-type-of-the-marginnote]]**
49 |
50 | > |Type of the sidenote/marginnote|keyword|
51 | |:--|:--|
52 | |Left Sidenote| `lsn` |
53 | |Right Sidenote | `rsn` |
54 | |Left Marginnote| `lmn` |
55 | |Right Marginnote | `rmn` |
56 |
57 |
58 | So, all you have to do is type in the keywords of the corresponding type of sidenote or marginnote after the double colon in the above syntax
59 |
60 | **Examples**
61 |
62 | Example of a sidenote to the right side of the page:
63 |
64 | > **Raw Syntax:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. **[[**Phasellus mollis lectus id efficitur mollis.**::rsn]]** Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
65 | >
66 | > **Rendered Text:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. [[Phasellus mollis lectus id efficitur mollis.::rsn]] Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
67 |
68 | Same goes with `lsn`, `rmn`, `lmn`
69 |
70 | ### 3. Highlighting a piece of text
71 |
72 | **General Syntax**
73 |
74 | - **[[**Some Link**::highlight]]**
75 |
76 | There is only one color right now in which it highlights, a light bluish color, but you can easily extend it to support multiple colors by tinkering with it in `content.html` file in `_includes` directory.
77 |
78 | **Examples**
79 |
80 | > **Raw Syntax:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. **[[**Phasellus mollis lectus id efficitur mollis.**::highlight]]** Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
81 | >
82 | > **Rendered Text:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. [[Phasellus mollis lectus id efficitur mollis.::highlight]] Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
83 |
84 | ### 4. Partial Transclusion
85 |
86 | Transclusion is just a natural extension of sidenote and marginnote feature.
87 |
88 | **General Syntax**
89 |
90 | - **Sidenote-transclusion:** **[[**Some Text**::keyword-of-the-type-of-the-sidenote-transclusion]]**
91 |
92 | - **Marginnote-transclusion:** **[[**Some Text**::keyword-of-the-type-of-the-marginnote-transclusion]]**
93 |
94 | > |Type of the sidenote/marginnote transclusion|keyword|
95 | |:--|:--|
96 | |Left Sidenote Transclusion | `lsn-transclude` |
97 | |Right Sidenote Transclusion | `rsn-transclude` |
98 | |Left Marginnote Transclusion | `lmn-transclude` |
99 | |Right Marginnote Transclusion | `rmn-transclude` |
100 |
101 |
102 | So, all you have to do is type in the keywords of the corresponding type of sidenote or marginnote after the double colon in the above syntax
103 |
104 | **Examples**
105 |
106 | Example of a transclusion to the right side of the page:
107 |
108 | > **Raw Syntax:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. **[[**Lorem ipsum dolor sit amet**::rmn-transclude]]** Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
109 | >
110 | > **Rendered Text:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. [[Lorem ipsum dolor sit amet::rmn-transclude]] Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
111 |
112 | Same goes with `rsn`, `lsn`, `lmn`
113 |
114 | ### 5. Wrapping a text inside a box
115 |
116 | **General Syntax**
117 |
118 | - **[[**Some Text**::wrap]]**
119 |
120 | **Examples**
121 |
122 | > **Raw Syntax:** **[[**Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis**::wrap]]**.
123 | >
124 | > **Rendered Text:** [[Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rutrum tortor in pharetra vehicula. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.::wrap]]
125 |
126 | ### 6. Flashcard
127 |
128 | **General Syntax**
129 |
130 | - **[[**Some Text**::srs]]**
131 |
132 | **Examples**
133 |
134 | > **Raw Syntax:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. **[[**Donec rutrum tortor in pharetra vehicula**::srs]]**. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
135 | >
136 | > **Rendered Text:** Lorem ipsum dolor sit amet, consectetur adipiscing elit. [[Donec rutrum tortor in pharetra vehicula::srs]]. Fusce gravida lacus ac sem luctus congue at id justo. Ut sed tempus ante. Suspendisse sit amet diam nec justo rhoncus tristique. Ut blandit faucibus nisi vitae rutrum. Vivamus fermentum efficitur justo non facilisis.
137 |
138 | ### 7. Specific classes for changing font-type, font-size, and font-weight
139 |
140 | There are classes like very-small, medium-small, small, small-medium, medium, medium-large, large, very-large; that can be used to change the size of your text directly from markdown like this:
141 |
142 | > **Raw Syntax:**
143 | > {:.regular-sans}
144 | > ```
145 | > {:.large}
146 | > Some text here that needs to be enlarged
147 | > ```
148 | >
149 | > **Rendered Text:**
150 | >
151 | > {:.large}
152 | > Some text here that needs to be enlarged
153 |
154 |
155 | Similarly there are classes like regular-sans, serif, bold, italic, oblique, bolder, etc for formatting the text.
156 |
157 | > **Raw Syntax:**
158 | >
159 | > ```
160 | > {:.medium .serif .oblique}
161 | > Some text here that needs to be enlarged
162 | > ```
163 | >
164 | > **Rendered Text:**
165 | >
166 | > {:.medium .serif .oblique}
167 | > Some text here that needs to be enlarged
168 |
169 | Other common classes are .boxit that is used to wrap the text, .disable-user-select to disallow users from being able to select a particular piece of text by selecting it, etc. There are more classes like these which you can see in the file `style.css`. Once you figure out which class to use, all you have to do is just add the class before the text you want inside a curl brace like this {:\}
170 |
171 | ### 8. Other implicit features.
172 |
173 | Features like backlinks, context menu, related posts, page preview are available by default as they are implemented using CSS and JS. So, you don't have to do anything other than write as you would normally to make use of those features.
174 |
175 | #### Note:
176 | When you typeout square brackets, it can be frustrating to type out the entire file title everytime. At least it was for me, so I created a small VSCode plugin, the editor in which I write my essays to autocomplete the titles as soon as I type double squarebrackets. It has been pretty handy for me, if you are interested in using VSCode or already use it, you can find it here: [[Notecomplete::https://github.com/rgvr/scratchpad/tree/master/note-complete]]. It is pretty simple to use, all you have to do is just download the note-complete folder and copy it to .vscode directory in your OS to start using it. :)
177 |
178 |
179 | For setting up the theme on your website checkout [[How to setup Simply Jekyll]]
--------------------------------------------------------------------------------
/_posts/2020-03-01-customizable.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to customize your _config.yml
3 | tags: Jekyll Theme Customizability
4 | comments: true
5 | ---
6 |
7 | One of the most common complaints I recieved after opensourcing the theme was that the customizability of the site at the level of liquid and ruby code was extremely inaccessible to people who just wanted to get it up and running. To be honest, up until then I was under the impression that everyone using the theme were some kind of technically proficient people who just didn't have the time to whip up their own theme, and are resorting to themes such as mine just so that they could have a decent looking site to share their works. The reality only dawned upon me when I got like several emails from people involved in the digital garden subculture---most of them from outside of tech---told me how they liked the features but were unable to use it effectively because it was obscured by something-something-brackety-brackets-and-colons-and-equalsigns. So this is my attempt at trying to ease the customization process.
8 |
9 | If you are someone with even a tiny bit of programming background, I would advice you to look into *'_includes'* folder and go to the corresponding file name and tinker with it.
10 |
11 | For those of you who are not into programming, I have tried to extract as many features as I can to *_config.yml* file, so that you can at least take the advantage of some if not all the features that are customizable.
12 |
13 | This table explains all the customizable variables in *_config.yml*. Most of the main variables have a property called `enabled`, which when set to true will enable the main variable. For eg. turn on subheading by setting the enabled property to true, if it is already true, set it to false and see what happens.
14 |
15 | |Variables|Behavior|
16 | |:--|:--|
17 | |`baseurl`| Base Url is where do you want the site to be served from, the top level directory. You can set it to `/` if you want to be served from the root directory, or else you can set to something like `post` or `blog` or something similar|
18 | |`url`| This variable takes in the url of your site. This is the url that you registered with you domain registrar. Sometimes it can also be something different, such as in the case of github pages it would something like `.github.io` |
19 | |`heading`| This is the name of the site, this can only be renamed. It cannot be turned on or off |
20 | |`subheading`| This is the subheading of the site, you can enable or disable it. You can change the subheading by changing the `name` property in it. Note: This cannot be toggled if the site tagline is turned off|
21 | |`tagline`| This is the tagline of the site, you can toggle it using the `enabled` property in it. You can change the tagline by change the `name` property in it. Note: Toggling this off will also toggle off the subheading. This is a design decision because it looks ugly to have heading and subheading without anything to distinguish between the two.|
22 | |`copyright`| I believe this is sort of self-explanatory. The `year` property takes the year and `msg` property takes the message, which in most cases is just your name or your organization's name. Oh and `msg` is a mandatory property for the copyright to enabled as it doesn't have any `enabled` property|
23 | |`user`| This is one of the most interesting variables there is. Turning it on or off will remove the profile dashboard on the home-screen.It can be turned on or off using the `display` property. **Setting `display` to true will look like this:** and **With it turned off like this:** |
24 | |`name`| Self-Explanatory. Note: Depends on `user` variable being turned on/off. If the `user` variable is turned off, none of its properties like name, bio, email, social will show up on the profile board.|
25 | |`bio`| Self-Explanatory. Note: Depends on `user` variable being turned on/off. If the `user` variable is turned off, none of its properties like name, bio, email, social will show up on the profile board.|
26 | |`email`| Self-Explanatory. Note: Depends on `user` variable being turned on/off. If the `user` variable is turned off, none of its properties like name, bio, email, social will show up on the profile board.|
27 | |`photo`| This is the avatar that you see on the profile board when you turn the `user` variable on. Note: Depends on `user` variable being turned on/off. If the `user` variable is turned off, none of its properties like name, bio, email, social will show up on the profile board.|
28 | |`social`| This is similar to the `user` property in that you can toggle the sub-properties by toggling it on/off. You can enable or disable the `social` variable by setting the `enabled` property to true/false. All the subproperties are fixed. You cannot add a new social media site, design constraint :(
All the social media properties take a username as input, if you don't want a particular social handle to be displayed, please leave the field blank or type in null.|
29 | |`preferences`| This variable is a special type of variable. It is only for usage in the code. Don't worry, if you are not interested in the code, you won't have any use for it anyway.|
30 | |`search`| This variable can toggled on or off by setting the `enabled` property. The `shortcut_hint` property is just a toggle for the markup that show `Shift + S` on the search bar|
31 | |`wiki-style link`| This variable allows you to opt-in or out of the wiki-style double brackets for specifiying internal and external links.|
32 | |`sidenotes`| This variable covers both sidenotes and margin notes. Toggling this on-or-off will allow you use the custom sidenote syntax you saw in the [[How to use Simply Jekyll features on your website]] post.|
33 | |`transclusion`| Similar to sidenotes|
34 | |`pagepreview`| This variable controls the on-hover behavior of internal links, that is, if you hover over an internal link it will show a small preview tooltip thingy if this variable turned on.|
35 | |`wrapping`| This variable allows you to wrap text using a wrapped box. Eg. [[Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.::wrap]]|
36 | |`highlight`| Any text inside the highlight syntax mentioned in the [[How to use Simply Jekyll features on your website]] will be highlighted based on the color you mention in the `color` property of the variable. Eg. This is how it will look when [[highlighted::highlight]]. |
37 | |`backlinks`| This variable controls the references that you see at the bottom of a post. Note that toggling it off will also remove it from the contextmenu. SEE Below: |
38 | |`related`| This variable controls the references related by tags that you see at the bottom of a post. Note that toggling it off will also remove it from the contextmenu. Similar to backlinks. |
39 | |`contextmenu`| This variable allows you to right click on the post list on the home page to do things like copy links, see backlinks and related posts without going in.|
40 |
--------------------------------------------------------------------------------
/_posts/2020-03-01-setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to setup Simply Jekyll
3 | tags: Jekyll Theme
4 | comments: true
5 | ---
6 |
7 | This is going to be a super simple post about how to setup and use this theme for your own website.
8 |
9 | ## Usage
10 |
11 | {:.boxit}
12 | Q. What will it look like when I am done setting it up?
13 |
14 | > This is what it should look (minus the exact essays ofcourse):
15 | >
16 |
17 |
18 | Now without further ado, let's get started!
19 |
20 | ### Setup Prerequisites
21 |
22 | For this tutorial, we’ll need to install a few things on your machine (you may have some of these already). Following the instructions on each website to install them.
23 |
24 | - [[Ruby::https://www.ruby-lang.org/]]
25 | - [[RubyGems::https://rubygems.org/]]
26 | - [[Git::https://git-scm.com/downloads]]
27 |
28 | You’ll also need to create accounts on the following services:
29 |
30 | - [[GitHub::https://www.github.com/join]] (to store the website)
31 | - [[Netlify::https://app.netlify.com/signup]] (to serve the website so others can see)
32 |
33 | Once you are all set with the prerequisites, we can then get to the fun part of getting it to appear on your screen. Let's get started with that.
34 |
35 | ### 1. Create a fork of the template repository
36 |
37 | To simplify things, I provide the template showed in the image above to get started. You can always tweak this template to your taste later.
38 |
39 | Visit the GitHub page for my template repository ([[rgvr/simply-jekyll::https://github.com/rgvr/simply-jekyll]]), and fork it to your account using the Fork button:
40 |
41 | >
42 |
43 | Once the forking process is complete, you should have a fork (essentially a copy) of my template in your own GitHub account. On the GitHub page for your repository, click on the green “Clone or download” button, and copy the URL: we’ll need it for the next step.
44 |
45 | ### 2. Clone your repository locally
46 |
47 | Next, we want to download the files from your GitHub repository onto your local machine. To do this, replace in the command below with the URL you copied in the previous step, then execute this command:
48 |
49 | ```
50 | $ git clone my-personal-website
51 | ```
52 |
53 | As a reference point, this is how it looks like for me (the difference is likely just the GitHub username):
54 |
55 | ```
56 | $ git clone git@github.com:rgvr/simply-jekyll.git my-personal-website
57 | ```
58 |
59 | Then, navigate into the directory that was just created:
60 |
61 | ```
62 | $ cd my-personal-website
63 | ```
64 |
65 | ### 3. Test out the site locally
66 |
67 | Sweet! You now have your repository’s source code on your machine. Within the my-personal-website directory, run the following command to install the necessary dependencies like Jekyll:
68 |
69 | ```
70 | $ bundle
71 | ```
72 |
73 | Once that’s done, ask Jekyll to start serving the site locally:
74 |
75 | ```
76 | $ bundle exec jekyll serve
77 | ```
78 |
79 | Then, open up [[http://localhost:4000::http://localhost:4000]] in your browser.
80 |
81 | If everything’s done correctly, you should now see the home page of your Personal Jekyll Website with Simply Jekyll Theme. 🎉
82 |
83 | Keep in mind that this site is only available locally (notice the `localhost` part of the URL), so if we want it to be available on the Internet for everyone to enjoy, we need to deploy it to the Internet: we’ll use Netlify for that in the next step.
84 |
85 | ### 4. Connect your GitHub repository to Netlify
86 |
87 | Netlify lets you automatically deploy your personal website on to the Internet when you update your GitHub repository. To do this, we need to connect your GitHub repository to Netlify:
88 |
89 | 1. Log in to Netlify
90 | 2. Once logged in, click the “New site from Git” button
91 | 3. On the next page, select GitHub as the continuous deployment provider (you may need to authorize the connection, in which case, approve it)
92 | 4. On the next page, select your website repository from the list.
93 | 5. On the next page, replace the basic build settings with the following.
94 | 1. Type in "jekyll build" (without the quotes) inside the text field titled "Build Command".
95 | 2. Similarly type in "_site/" (without the quotes) inside the text field titled "Publish Directory".
96 | 6. On the next page, keep the default settings, and click on “Deploy site”.
97 |
98 | That was easy! We’re almost done.
99 |
100 | Wait a couple of minutes for the initial deploy to complete.
101 |
102 | Once that’s done, your website should be available on the Internet via a generic Netlify URL, which you can change to a custom domain later if you’d like.
103 |
104 | Now the cool thing is this: whenever you push an update to your GitHub repository, Netlify will automatically deploy your updates to the Internet.
105 |
106 | ### 5. Start producing content with your Simply Jekyll based Website
107 |
108 | At this point, you can start updating the files on your machine (in the my-personal-website folder) to change your simply-jekyll based website to your liking: update the copy, add some notes, tweak the layout, customize the colors, etc. Once you have something you’re happy with, push your changes to your GitHub repository with the following commands:
109 |
110 | ```
111 | $ git add --all
112 | $ git commit -m 'Update content'
113 | $ git push origin master
114 | ```
115 |
116 | If that command succeeds and the rest of the tutorial was done correctly, in a couple of minutes, you should see your changes live on your Netlify website. 🚀
117 |
118 | And we’re done! You now have your own Simply Jekyll based Personal Website .
119 |
120 | ---
121 |
122 | If you’re curious, take a look at [[my personal simply jekyll based website here::https://www.rgvr.me]].
123 |
124 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/_posts/2020-04-01-explore.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Exploring the features of Simply Jekyll
3 | tags: Jekyll Theme
4 | status: ongoing
5 | ---
6 |
7 | Essentiality is the heart of any good software, and this theme is designed to ensure that I don't add things that I won't use on a daily basis or not have things that would be important for my personal usecase. It has been designed carefully to get rid of all the feature creeps, bloatwares, etc. i.e., no bootstrap, no semantic, no jquery, no nothing...
8 |
9 | That said, this is a ready made theme and I am making it public so that more number of people will use it and enjoy the experience of using it. So, pardon my bigotry there😅.
10 |
11 | As for the list of features, this website steals features from every website that I can think of, or more appropriately the design inspiration for this website is derived from multiple sources; Here is the tiny list for the curious:
12 |
13 | - Backlinks: Roam Research
14 | - Transclusion: Tiddlywiki
15 | - Sidenote: Edward Tufte, Gwern Branwen
16 | - Stale Link Highlighting: Tiddlywiki
17 | - Wiki-style links: Every wiki ever
18 | - Text highlighting: Roam Research
19 | - Page preview: Wikipedia
20 | - Context menu: Google Docs
21 | - Notes: Andy Matuschak's Evergreen Notes
22 | - Color scheme: Github
23 | - Feed like structure for home page: Twitter
24 | - Omnisearch box at the top: Google
25 | - Profile board: Twitter/Instagram
26 |
27 | Now that you know all my secrets let us not waste any more time into further exposing my true nature in its entirety and get started with tour:P
28 |
29 | {:.boxit}
30 | **Note:** This page only showcases the features. How to use these feature is mentioned in a separate article.
31 |
32 | ### Backlinks
33 |
34 | Backlinks or as Roam Research calls it "Birdirectional Links" is a nifty little feature that allows not only users reading your essays/articles to encounter interesting related articles, this is something you as a author yourself will see how powerful it is once you start browsing around your website. Backlinks are basically a link on PostA indicating all the mentions of PostA on different Posts.
35 |
36 | The neat stuff is it won't show up with an empty box if a given post doesn't have any backlinks and if it is already included in backlinks, it won't show up in your related posts[[**Related Posts:** Posts that share same tag(s). **Linked References(Backlinks):** Posts that link other posts inside your blog.::rmn]]. :)
37 |
38 |
39 | Here is a screenshot of what mentions/backlinks will look like in a page:
40 |
41 |
42 |
43 | In the above example, it can be seen that there are three links, it means that all the three pages have a link to the page in which they are being displayed as a backlink.
44 |
45 | For eg. If you scroll all the way to the bottom, you will something similar i.e., you will see a link to the pages that has a link to this page.
46 |
47 | ### Sidenotes and Marginnotes
48 |
49 | Of what use are such wide margins when you can't make efficient use of them. Fear not, we have a way to handle that too --- Marginnotes[[There are two types of people, those who have taste and those who don't. And anyone who has even a tiny bit of taste will never, never-ever use footnotes over sidenotes. ---Some random blogger who shall remain unamed::rmn]]. For what it's worth, when you stroll down a garden, you don't ever see a flower bloom 10 miles away from the plant do you? This is where sidenotes come in and replace their paper-era sibling ie., footnotes. If it is relevant you see it right there. (No scrolling = No cognitive strain). The entire idea is to allow users to have a pleasant time on your blog i.e., Not too distracting(offputting), not too mesmerizing, just the right amount of ornamentation to allow seamless reading experience[[I see it as an issue of managing & exposing the length. Some readers want to go as deep as you can take them, but others are frustrated if you block them from moving on. I deal with it by use of collapsible sections+abstracts, margin notes, and explicit topics in list items. ---Tweet by Gwern Branwen::lsn]]. The added advantage we have with this website is it has wide margins allowing us to use both sides for sidenotes. So we can use them for quotations, small snippets, and also for interactive/expository animations.
50 |
51 | The first one on the right is a marginnote and the second one on the left is a sidenote. You may ask what is the difference, it looks all the same to me. You are right to some extent, but if you look closely you will see that the one on left has a number attached to it while the one on the right doesn't. Yes, that is all the difference there is, at least [[Edward Tufte::https://edwardtufte.github.io/tufte-css/]] says.
52 |
53 |
54 | ### On-feed context menu
55 |
56 | Context menus are a great way to improve user experience if they are done correctly. Given that our theme has a feed-link structure for the landing page, it leverages the opportunity and saves second time visitors who have already read the article and are only here to see other related articles or the backlinks by just simply right clicking on the feed. Thereby saving users the unnecessay time involved with clicking on a link and scrolling all the way down to see the backlinks or related articles.
57 |
58 | Here is a screenshot for people who are too lazy, while the rest of you can go back to the home page and try it out by right clicking on a particular feed entry:
59 |
60 |
61 |
62 |
63 | ### On-hover page preview
64 |
65 | Ever been to a blog or a tutorial site and seen links to other pages without any clue as to what that page is about apart from vague statements like "See Related" or "Click here for Part II". We all have had that experience, haven't we? Wouldn't it be nice to be able to take a cursory glance at the page just so that you could get a feel of it and decide quickly as to whether or not do you really want to read that post without having to click on the link and wait for the ginormous scroll of text to load? That is precisely what page previews are for. For eg, try to hover over this link: [[Lorem ipsum dolor sit amet]].
66 |
67 | And yes, all of what you see is available right out of the box. No configuration, no sh*t, no shinola.
68 |
69 | ### Transclusion
70 |
71 | Once I had sidenotes and page preview for my blog, transclusion[[Lorem ipsum dolor sit amet::rmn-transclude]] just felt like the natural next step to it. I mean there are less important pages that you can leave at the discretion of the readers to hover-over and take a peak, and then there are pages that you want to explicity show a glimpse of, but how do you do it? Obviously, putting a chunk of random text in the most of your post is just unacceptable UX, but then how else do you do it? You could just combine the nifty little preview thingy with your nice little sidenote thingy and let users get a glimpse of the important stuff without getting distracted. Amazing, isn't it?
72 |
73 | ### Link Management
74 |
75 | Now the biggest of them all: the permalink curse. Most of us are never happy with the first title that we come up with, and when you excitingly write a new post embedding an old post---the title of which you always wanted to change but never got time to do so because you were busy creating content---it sometimes happens that you forget to update the relevant link all the associated places that you linked it in. And I think this is worst of them all in terms of an UX nightmare.
76 |
77 | Although we don't have a complete solution given that we are using a static site generator, I think we have a decent mechanism to atleast find the culprit links without clicking at them (a.k.a highlighting links that don't point anywhere, but ideally must be pointing to some location due to which they cannot be deleted).
78 |
79 | Here is an example of:
80 | - A perfectly valid link: [[Lorem ipsum dolor sit amet]]
81 | - A bad link that does not point anywhere: [[Some non-existing title]]
82 |
83 | See how it highlights in yellow? I feel this is a game-changer that anyone who has a personal website should at least think of incorporating in their website given the number of deadlink issues we face.
84 |
85 | **Note**: This only works with local/internal links.
86 |
87 |
88 | ### Miscellaneous Features: Highlighting text, Primitive Flash Cards, and Some gimmicks
89 |
90 | #### Text Highlighting
91 |
92 | So you are writing an essay and you want to emphasize a particular portion of your essay to your audience that you think is just mindblowing. Tools like Medium provide such an easy way to do this while we still keep scratching our head with mark tags and p tag with a background color and what not.. Worry not, this theme allows you to easily highlight a portion of a text without any hassle.
93 |
94 | Here is an example of it:
95 |
96 | {:.boxit}
97 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, [[quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident::highlight]], sunt in culpa qui officia deserunt mollit anim id est laborum."
98 |
99 | #### Primitive Flashcards
100 |
101 | Anki has been my friend, my well-wisher, my guardian, pretty much everything for the last one year of my intellectual life. I have a half-hour morning routine that I follow dilligently in going through the scheduled anki decks to strengthen my neuronal connection on a particular topic/subject. And I have been doing it consistently for almost a year now. This is an attempt at recreating the aspect of spaced-repetition to allow my brain to form interesting connections based on things I have already written. The plan is to extend it using local storage and somekind of firebase like service to provide a constant reminder to users using the supermemo algorithm, but as of now, this is where I stand --- a simple on-click card to keep the thing going until I build something better.
102 |
103 | Here is an example(click on the card):
104 |
105 | "Lorem ipsum dolor sit amet, [[consectetur adipiscing elit, sed do eiusmod tempor::srs]] incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
106 |
107 | For all you know, this could be used for some interesting things if you have a tutorials website where you write posts on technical concepts. So that's that.
108 |
109 | #### The Gimmicks
110 |
111 | ##### Profile Board for Main Site
112 |
113 | If you have ever used a social media with feeds you probably have stalked the profiles of people you find interesting, but the problem is as much as the mystery gets someone into look at your profile, it also makes them form opinions. If the profile reads author, you see their feed one way; and if it says scientist from Caltech, you see it the other. I mean as much as authority is a thing to form opinions about, it also alienates people from what could potentially have been a great relation if not for the credentiality and appearance. So, the idea with the profile board was to get done with this stuff right away so that people can enjoy the content instead of going profile hunting on your credibility and accomplishments and appearances to judge and validate their opinions by validating you.
114 |
115 | Here is the screenshot:
116 |
117 |
118 |
119 | ##### Omnisearch bar
120 |
121 | This is inspired by the browsers like Chrome and Firefox where the searchbar is always placed at the top so that readers can easily search for the next thing without having to go back to the main page and scroll through dozens of articles.
122 |
123 | And I personally like this one because, it allows me as an author/writer to quickly jump between different posts while I am reading my articles to reference in my other articles.
124 |
125 | Here is a screenshot:
126 |
127 |
128 |
129 | **Note**: The searchbar is not implemented as a scrollspying widget that pins itself automatically is because I have a preference for distraction free content when reading, that is why the website provides a chevron to scroll to the top easily instead of pinning the search to the header.
130 |
131 | ##### Feed-like structure
132 |
133 | I am a big fan of Aza Raskin's infinite scroll design and the fact that it provides such an easy way to engage users is just mind-blowing. That said, I must also confess that I am not a big fan of infinite scrolls on social media websites given their addictive nature. Blogs are fundamentally finite in nature. I mean even if you are a highly productive individual who writes a thousand page essay a day, you would have only written 365 essays and not all of them interesting to me. So having a feed-like structure on blogs I feel is fundamental to allowing users to engage in a more neutral way.
134 |
135 | And if you are still not sure of its utility, go join twitter or facebook or instagram, and comeback to read this again after a month or so.
136 |
137 | Untill then here is the screenshot:
138 |
139 |
140 |
141 | ##### Auto-tagging WIP posts on the feed
142 |
143 | Sometimes you are writing something interesting but have not completed the entire thing, lets say like a series of posts on single, it can be helpful to show users right away on the feed/homepage the status so that when they click the post, their expectations are already managed.
144 |
145 | Here is a screenshot.
146 |
147 |
148 |
149 | ##### Clickable tags
150 |
151 | If you go the posts on the homepage, and go inside any of them and try to click on the tags such as date or category, you will see that it takes you to a page with all the posts belonging to that tag or date. Just a nifty little feature.
152 |
153 |
154 | And that is all! Thanks for scrolling all the way through to see all the features. Now if you'd like to know how to use this theme, head over to the post titled [[How to setup Simply Jekyll]]. And if you would like to see how to use these features, head over to [[How to use Simply Jekyll features on your website]]
155 |
156 |
157 | P.S If you use VSCode like me for content creation and authoring, and are interested in autocompletion of titles when you write your notes. You can use a small VSCode plugin that I wrote for myself to ease up my writing process: [[Notecomplete::https://github.com/rgvr/scratchpad/tree/master/note-complete]]
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
--------------------------------------------------------------------------------
/_posts/2020-04-01-lorem.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Lorem ipsum dolor sit amet
3 | tags: General Philosophy Review
4 | ---
5 |
6 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam lorem elit, rutrum et nibh ac, vulputate mollis lorem. Fusce at lectus id risus scelerisque suscipit. Vestibulum nec lobortis ex. Proin augue odio, euismod a vehicula ut, auctor ac turpis. Morbi eget facilisis turpis, quis tincidunt neque. Nulla facilisi. Pellentesque porta vel purus eget vulputate. Etiam sodales tincidunt nibh, eget pharetra augue aliquam id. Praesent varius egestas leo, ut luctus risus molestie ut. Integer sapien neque, efficitur vel leo in, aliquet lacinia elit. Nulla a magna ut dui blandit tempus id nec sem.
7 |
8 | Donec imperdiet lacus posuere quam imperdiet, sed pharetra nulla fringilla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce ante neque, ullamcorper at porttitor nec, scelerisque vel neque. Sed ac aliquam leo. Sed nec elementum est. Quisque sed massa vulputate, ultrices risus eu, blandit tellus. Maecenas sed cursus lacus, vitae molestie nunc. Morbi vel ex leo. Maecenas eu orci non nisl aliquam ullamcorper. Phasellus dapibus eget arcu ut laoreet. Vestibulum semper nec justo et venenatis.
9 |
10 | ## Cras Venenatis
11 |
12 | Cras venenatis ut tortor eu vestibulum. Mauris viverra dui vel eros consectetur pretium. Praesent a vestibulum quam, at vestibulum risus. Aenean sed lobortis felis. Phasellus a fermentum nibh. Integer in purus ex. Cras fermentum hendrerit nisi. Sed aliquet ut nunc eget tristique. Vestibulum in volutpat lorem. Pellentesque turpis metus, facilisis vitae tincidunt vulputate, elementum quis nulla. Nulla ac nibh nec urna blandit venenatis. Etiam lectus diam, maximus vel felis eu, facilisis egestas tellus. Curabitur tellus ex, blandit et ex vitae, dignissim auctor orci.
13 |
14 | Sed molestie quam ut venenatis congue. Praesent posuere, massa nec ullamcorper porta, libero neque tincidunt sem, et posuere leo sapien ut tellus. Phasellus in purus gravida, lobortis felis quis, consequat tortor. Vivamus lobortis sem massa, dignissim porta magna tincidunt ut. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Ut viverra orci risus, in efficitur mi venenatis nec. Maecenas ac risus eu magna euismod faucibus. Quisque at ante ut ante vehicula commodo. Praesent lacinia turpis ex, vitae vehicula purus luctus a. Donec mattis accumsan tincidunt. Fusce ac lectus augue.
15 |
16 | Cras aliquam massa aliquet orci ultricies, sit amet ultrices ipsum dignissim. Quisque non faucibus dui. Donec euismod nulla nec arcu malesuada, ac fermentum ligula consequat. Maecenas pellentesque massa quis pretium sollicitudin. Mauris vel felis hendrerit, tristique purus eget, venenatis metus. Praesent urna est, aliquet non blandit quis, tristique sit amet nulla. Donec ut malesuada libero. In hac habitasse platea dictumst. Donec nisi quam, lacinia gravida dui sed, vulputate egestas neque.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam lorem elit, rutrum et nibh ac, vulputate mollis lorem. Fusce at lectus id risus scelerisque suscipit. Vestibulum nec lobortis ex. Proin augue odio, euismod a vehicula ut, auctor ac turpis. Morbi eget facilisis turpis, quis tincidunt neque. Nulla facilisi. Pellentesque porta vel purus eget vulputate. Etiam sodales tincidunt nibh, eget pharetra augue aliquam id. Praesent varius egestas leo, ut luctus risus molestie ut. Integer sapien neque, efficitur vel leo in, aliquet lacinia elit. Nulla a magna ut dui blandit tempus id nec sem.
17 |
18 | Donec imperdiet lacus posuere quam imperdiet, sed pharetra nulla fringilla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce ante neque, ullamcorper at porttitor nec, scelerisque vel neque. Sed ac aliquam leo. Sed nec elementum est. Quisque sed massa vulputate, ultrices risus eu, blandit tellus. Maecenas sed cursus lacus, vitae molestie nunc. Morbi vel ex leo. Maecenas eu orci non nisl aliquam ullamcorper. Phasellus dapibus eget arcu ut laoreet. Vestibulum semper nec justo et venenatis.
19 |
20 | Cras venenatis ut tortor eu vestibulum. Mauris viverra dui vel eros consectetur pretium. Praesent a vestibulum quam, at vestibulum risus. Aenean sed lobortis felis. Phasellus a fermentum nibh. Integer in purus ex. Cras fermentum hendrerit nisi. Sed aliquet ut nunc eget tristique. Vestibulum in volutpat lorem. Pellentesque turpis metus, facilisis vitae tincidunt vulputate, elementum quis nulla. Nulla ac nibh nec urna blandit venenatis. Etiam lectus diam, maximus vel felis eu, facilisis egestas tellus. Curabitur tellus ex, blandit et ex vitae, dignissim auctor orci.
21 |
22 | ## Sed molestie
23 |
24 | Sed molestie quam ut venenatis congue. Praesent posuere, massa nec ullamcorper porta, libero neque tincidunt sem, et posuere leo sapien ut tellus. Phasellus in purus gravida, lobortis felis quis, consequat tortor. Vivamus lobortis sem massa, dignissim porta magna tincidunt ut. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Ut viverra orci risus, in efficitur mi venenatis nec. Maecenas ac risus eu magna euismod faucibus. Quisque at ante ut ante vehicula commodo. Praesent lacinia turpis ex, vitae vehicula purus luctus a. Donec mattis accumsan tincidunt. Fusce ac lectus augue.
25 |
26 | ### Cras aliquam
27 |
28 | Cras aliquam massa aliquet orci ultricies, sit amet ultrices ipsum dignissim. Quisque non faucibus dui. Donec euismod nulla nec arcu malesuada, ac fermentum ligula consequat. Maecenas pellentesque massa quis pretium sollicitudin. Mauris vel felis hendrerit, tristique purus eget, venenatis metus. Praesent urna est, aliquet non blandit quis, tristique sit amet nulla. Donec ut malesuada libero. In hac habitasse platea dictumst. Donec nisi quam, lacinia gravida dui sed, vulputate egestas neque
29 |
30 | ## References
31 | 1. SomeLatinGuy. *(1920)*. [[Ipsum Dolor Sit Amet::https://www.lipsum.com/feed/html]]
--------------------------------------------------------------------------------
/_posts/2020-05-01-intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Introduction to Simply Jekyll
3 | tags: Jekyll Theme
4 | ---
5 |
6 | Simply Jekyll is a highly functional jekyll-based theme that combines the best of different worlds. It is a minimal and distraction free theme that strives to provide maximum value all without holding back on any essential features that a user would benefit from or would desire for. This is an evolving project and is garanteed to be maintained at least for quite some time as I myself am a beneficiary of this theme and the project.
7 |
8 | The theme provides a rich set of features that include:
9 | - Wiki-style markdown syntax for both internal as well as external links.
10 | - Support for backlinks and related posts to exhort serendipitous encounters.
11 | - Feed-specific context menu for instantly accessing the related posts and references.
12 | - Lunrjs based search with previews and shortcut to trigger search.
13 | - Auto stale-link management for internal links.
14 | - Custom syntax for sidenotes and marginnotes on either side of the feed/post.
15 | - Support for partial transclusion of posts.
16 | - On hover page preview.
17 | - Custom classes to style phrasing elements like quotes, callouts, etc by mentioning size, font-types, weight, box etc.
18 | - Preliminary support for flashcards.
19 | - Custom syntax to highlight your favorite part of the post (No, I am not talking about code syntax highlighting, which is already provided by Jekyll through Rouge).
20 | - Support for external link identifier through icons.
21 | - Finally, the most important of them all --- No bloatware or frameworks!
22 |
23 | Plus everything else that you can already do with jekyll like write something on a bunch of markdown files and convert it into a HTML file or sprinkle in some inline html can still be done alongside these features.
24 |
25 | Neat stuff, isn't it? To see the above mentioned features in action go check out the next post. :P
26 |
27 | Also see the sample post---[[Lorem ipsum dolor sit amet]]---to get a feel for how an actual essay would look like. :)
28 |
29 |
30 |
--------------------------------------------------------------------------------
/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: Post
3 | title: About
4 | permalink: /about/
5 | content-type: eg
6 | ---
7 |
8 |
9 | - I am a software engineer and a writer interested in the interplay between thoughts and constraints, the duality of interpretations and representations, and the nature of abstractions and correspondence between them.
10 |
11 | - I am a long time practioner of Vipassana, but I am also a fallibilist with a slight objectivist bent. So I probably have a very different view of meditation than most people. We can talk about it if you want to.
12 |
13 | - On this website I write articles about [[Computer Science::/tags/#Software]], [[Philosophy::/tags/#Philosophy]], Mathematics, and [[Generic Life Stuff::/tags/#General]]. Sometimes I also [[review::/tags/#Review]] books that I've read. You can find my programming side-projects on [[github::https://www.github.com/rgvr]]
14 |
15 | - I have a [[youtube channel::https://www.youtube.com/channel/UCESc8TaWpQxpHEnfhQLgzPQ]] on which I stream my work log(live writing sessions, coding sessions, reading/researching sessions, etc).
16 |
17 | - If you find anything interesting about who I am or what I do, please do reach out to me. 👇
18 |
19 |
20 | ## Reach out to me
21 |
22 | - Shoot me a dm or just tweet ***[[@rgvrme::https://twitter.com/r]]***. I will try to reply as soon as I can.
23 |
24 | - I live in Bangalore, so If you happen to be in Bangalore by chance and want to chat, drop an ***[[email::mailto:raghu@rgvr.me]]*** and include [Coffee] in the subject line, and we can work something out.
25 |
26 | - If you are not comfortable reaching out to me directly, you can also anonymously give me [[feedback::https://www.admonymous.co/rgvr]]
27 |
28 |
29 | ## About the website
30 |
31 | ### Features:
32 |
33 | [[***Changelog***
34 | \- 14-05-20 Context Menu
35 | \- 08-05-20 Trivial Spaced Repetition
36 | \- 04-05-20 Removed Theming.
37 | \- 04-05-20 Removed Curated Notes.
38 | \- 01-04-20 Curated Notes.
39 | \- 30-04-20 Transclusion.
40 | \- 26-04-20 Sidenote.
41 | \- 20-04-20 Wiki link.
42 | \- 16-04-20 Theme.
43 | \- 16-04-20 Avatar.
44 | \- 11-02-20 Related Posts.
45 | \- 12-10-19 Searchbar.
46 | ::rmn]]The original design[[**Original Design** ::lsn]] of this website was a lot more ostentatious than what you see here. As I progressed through the development process of this website, the current design started emerging on its own. For reasons I don't even understand, the current design just started feeling more natural than the one I had in my mind initially. The bare and simple look-n-feel of this site, at least to me, encompasses the essence of all the things I love about the sites I frequently visit --- feed-like structure, previews, search with context, contextual backlinks, sidenotes, etc. I am hopeful that you'll love it too. :)
47 |
48 | - **Page preview** (Move your mouse over the link): [[Lorem ipsum dolor sit amet]]
49 | - **Transclusion**: Allows you to see a partial view of the contents of the website to the right or the left of the margin.
50 | - **Sidenotes** (Changelog you see on the left is an example of this).
51 | - **Wiki-style link:** Usually wikis allow you to specify links using double bracket, I added it here using liquid. Also added bad-link highlighting
52 | - Good link: [[Lorem ipsum dolor sit amet]]
53 | - Bad link: [[Title of a page that doesn't exist]]
54 |
55 |
56 | Some Less know features:
57 |
58 | - Go back to the blog home or to the notes page, and try to right click on any of the entry. [Hint: Zettelkasten]
59 |
60 | - Press 'Shift + s' to trigger search
61 |
62 | - Click this card[[Memorize me so that you do well in your exams::srs]] looking thing to know how I use my notes. [Hint: SRS]
63 |
64 |
65 | Other Details:
66 |
67 | - The site lives on [[Github::https://github.com/rgvr/simply-jekyll]] and is served using Netlify
68 | - This website is statically generated using Jekyll from a set of Markdown files.
69 | - The Jekyll theme can be found on my Github Page, It is called "Simply-Jekyll"
70 | - Except lunrjs and katex, there are no third party libraries. Discord is an opt-in, I don't use on my [[site::https://rgvr.me]]. I strongly believe in user privacy.
71 |
72 |
73 |
--------------------------------------------------------------------------------
/assets/css/Util.css:
--------------------------------------------------------------------------------
1 | ---
2 | layout: Stylesheet
3 | ---
4 |
5 | /* Utilities: Disable Selection, Kramdown TOC */
6 |
7 | .disable-select {
8 | user-select: none; /* supported by Chrome and Opera */
9 | -webkit-user-select: none; /* Safari */
10 | -khtml-user-select: none; /* Konqueror HTML */
11 | -moz-user-select: none; /* Firefox */
12 | -ms-user-select: none; /* Internet Explorer/Edge */
13 | }
14 |
15 | .very-small {
16 | font-size: 12px !important;
17 | }
18 |
19 | .medium-small {
20 | font-size: 13.5px !important;
21 | }
22 |
23 | .small {
24 | font-size: 16px !important;
25 | }
26 |
27 | .small-medium {
28 | font-size: 18px !important;
29 | }
30 |
31 | .medium {
32 | font-size: 22px !important;
33 | }
34 |
35 | .medium-large {
36 | font-size: 25px !important;
37 | }
38 |
39 | .large {
40 | font-size: 28px !important;
41 | }
42 |
43 | .serif {
44 | font-family: Georgia, serif !important;
45 | }
46 |
47 | .title-sans {
48 | font-family: var(--primary-font-family) !important;
49 | }
50 |
51 | .regular-sans {
52 | font-family: var(--secondary-font-family) !important;
53 | }
54 |
55 | .bold {
56 | font-weight: 600 !important;
57 | }
58 |
59 | .very-bold {
60 | font-weight: 800 !important;
61 | }
62 |
63 | .bolder {
64 | font-weight: 500 !important;
65 | }
66 |
67 | .normal {
68 | font-weight: 400 !important;
69 | }
70 |
71 | .regular {
72 | font-style: normal !important;
73 | }
74 |
75 | .oblique {
76 | font-style: oblique !important;
77 | }
78 |
79 | .italic {
80 | font-style: italic !important;
81 | }
82 |
83 | .left-align-text {
84 | text-align: left !important;
85 | }
86 |
87 | .center-align-text {
88 | text-align: center;
89 | }
90 |
91 | .right-align-text {
92 | text-align: right;
93 | }
94 |
95 | .dont-decorate a {
96 | text-decoration: none !important;
97 | color: var(--primary-text-color) !important;
98 | }
99 |
100 | .dont-decorate {
101 | background: rgb(242,242,242);
102 | background: linear-gradient(180deg, rgba(242,242,242,1) 15%, rgba(245,245,245,1) 54%, rgba(253,253,253,1) 100%);
103 | }
104 |
105 | .boxit {
106 | padding: 20px;
107 | background-color: var(--secondary-bg-color);
108 | border-radius: 5px;
109 | }
110 |
111 | #boxit {
112 | padding-left: 20px;
113 | border-radius: 5px;
114 | }
115 |
116 | .default-color {
117 | color: var(--primary-text-color) !important;
118 | }
119 |
120 | .default-background {
121 | background-color: var(--secondary-bg-color) !important;
122 | }
123 |
124 | .show {
125 | display: block !important;
126 | }
127 |
128 | .hide {
129 | display: none !important;
130 | }
131 |
132 | .dim-90 {
133 | opacity: 0.9 !important;
134 | }
135 |
136 | .dim-80 {
137 | opacity: 0.8 !important;
138 | }
139 |
140 | .dim-70 {
141 | opacity: 0.7 !important;
142 | }
143 |
144 | .dim-60 {
145 | opacity: 0.6 !important;
146 | }
147 |
148 | .dim-50 {
149 | opacity: 0.5 !important;
150 | }
151 |
152 | .dim-40 {
153 | opacity: 0.4 !important;
154 | }
155 |
156 | .dim-30 {
157 | opacity: 0.3 !important;
158 | }
159 |
160 | .dim-20 {
161 | opacity: 0.2 !important;
162 | }
163 |
164 | .dim-10 {
165 | opacity: 0.1 !important;
166 | }
167 |
168 | /* Margin Top Positive */
169 |
170 | .margin-top-5 {
171 | margin-top: 5px !important;
172 | }
173 |
174 | .margin-top-10 {
175 | margin-top: 10px !important;
176 | }
177 |
178 | .margin-top-15 {
179 | margin-top: 15px !important;
180 | }
181 |
182 | .margin-top-20 {
183 | margin-top: 20px !important;
184 | }
185 |
186 | .margin-top-25 {
187 | margin-top: 25px !important;
188 | }
189 |
190 | .margin-top-30 {
191 | margin-top: 30px !important;
192 | }
193 |
194 | /* Margin Top Negative */
195 |
196 | .margin-top-5-neg {
197 | margin-top: -5px !important;
198 | }
199 |
200 | .margin-top-10-neg {
201 | margin-top: -10px !important;
202 | }
203 |
204 | .margin-top-15-neg {
205 | margin-top: -15px !important;
206 | }
207 |
208 | .margin-top-20-neg {
209 | margin-top: -20px !important;
210 | }
211 |
212 | .margin-top-25-neg {
213 | margin-top: -25px !important;
214 | }
215 |
216 | .margin-top-30-neg {
217 | margin-top: -30px !important;
218 | }
219 |
220 | /* Margin Bottom Positive */
221 |
222 | .margin-bottom-5 {
223 | margin-top: 5px !important;
224 | }
225 |
226 | .margin-bottom-10 {
227 | margin-bottom: 10px !important;
228 | }
229 |
230 | .margin-bottom-15 {
231 | margin-bottom: 15px !important;
232 | }
233 |
234 | .margin-bottom-20 {
235 | margin-bottom: 20px !important;
236 | }
237 |
238 | .margin-bottom-25 {
239 | margin-bottom: 25px !important;
240 | }
241 |
242 | .margin-bottom-30 {
243 | margin-bottom: 30px !important;
244 | }
245 |
246 | /* Margin Bottom Negative */
247 |
248 | .margin-bottom-5-neg {
249 | margin-top: -5px !important;
250 | }
251 |
252 | .margin-bottom-10-neg {
253 | margin-bottom: -10px !important;
254 | }
255 |
256 | .margin-bottom-15-neg {
257 | margin-bottom: -15px !important;
258 | }
259 |
260 | .margin-bottom-20-neg {
261 | margin-bottom: -20px !important;
262 | }
263 |
264 | .margin-bottom-25-neg {
265 | margin-bottom: -25px !important;
266 | }
267 |
268 | .margin-bottom-30-neg {
269 | margin-bottom: -30px !important;
270 | }
271 |
--------------------------------------------------------------------------------
/assets/css/highlight.css:
--------------------------------------------------------------------------------
1 | .highlight .hll { background-color: #ffffcc }
2 | .highlight .c { color: #aaaaaa; font-style: italic } /* Comment */
3 | .highlight .err { color: #F00000; background-color: #F0A0A0 } /* Error */
4 | .highlight .k { color: #0000aa } /* Keyword */
5 | .highlight .cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */
6 | .highlight .cp { color: #4c8317 } /* Comment.Preproc */
7 | .highlight .c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */
8 | .highlight .cs { color: #0000aa; font-style: italic } /* Comment.Special */
9 | .highlight .gd { color: #aa0000 } /* Generic.Deleted */
10 | .highlight .ge { font-style: italic } /* Generic.Emph */
11 | .highlight .gr { color: #aa0000 } /* Generic.Error */
12 | .highlight .gh { color: #000080; font-weight: 600 } /* Generic.Heading */
13 | .highlight .gi { color: #00aa00 } /* Generic.Inserted */
14 | .highlight .go { color: #888888 } /* Generic.Output */
15 | .highlight .gp { color: #555555 } /* Generic.Prompt */
16 | .highlight .gs { font-weight: 600 } /* Generic.Strong */
17 | .highlight .gu { color: #800080; font-weight: 600 } /* Generic.Subheading */
18 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */
19 | .highlight .kc { color: #0000aa } /* Keyword.Constant */
20 | .highlight .kd { color: #0000aa } /* Keyword.Declaration */
21 | .highlight .kn { color: #0000aa } /* Keyword.Namespace */
22 | .highlight .kp { color: #0000aa } /* Keyword.Pseudo */
23 | .highlight .kr { color: #0000aa } /* Keyword.Reserved */
24 | .highlight .kt { color: #00aaaa } /* Keyword.Type */
25 | .highlight .m { color: #009999 } /* Literal.Number */
26 | .highlight .s { color: #aa5500 } /* Literal.String */
27 | .highlight .na { color: #1e90ff } /* Name.Attribute */
28 | .highlight .nb { color: #00aaaa } /* Name.Builtin */
29 | .highlight .nc { color: #00aa00; text-decoration: underline } /* Name.Class */
30 | .highlight .no { color: #aa0000 } /* Name.Constant */
31 | .highlight .nd { color: #888888 } /* Name.Decorator */
32 | .highlight .ni { color: #800000; font-weight: 600 } /* Name.Entity */
33 | .highlight .nf { color: #00aa00 } /* Name.Function */
34 | .highlight .nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */
35 | .highlight .nt { color: #1e90ff; font-weight: 600 } /* Name.Tag */
36 | .highlight .nv { color: #aa0000 } /* Name.Variable */
37 | .highlight .ow { color: #0000aa } /* Operator.Word */
38 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
39 | .highlight .mf { color: #009999 } /* Literal.Number.Float */
40 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */
41 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */
42 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */
43 | .highlight .sb { color: #aa5500 } /* Literal.String.Backtick */
44 | .highlight .sc { color: #aa5500 } /* Literal.String.Char */
45 | .highlight .sd { color: #aa5500 } /* Literal.String.Doc */
46 | .highlight .s2 { color: #aa5500 } /* Literal.String.Double */
47 | .highlight .se { color: #aa5500 } /* Literal.String.Escape */
48 | .highlight .sh { color: #aa5500 } /* Literal.String.Heredoc */
49 | .highlight .si { color: #aa5500 } /* Literal.String.Interpol */
50 | .highlight .sx { color: #aa5500 } /* Literal.String.Other */
51 | .highlight .sr { color: #009999 } /* Literal.String.Regex */
52 | .highlight .s1 { color: #aa5500 } /* Literal.String.Single */
53 | .highlight .ss { color: #0000aa } /* Literal.String.Symbol */
54 | .highlight .bp { color: #00aaaa } /* Name.Builtin.Pseudo */
55 | .highlight .vc { color: #aa0000 } /* Name.Variable.Class */
56 | .highlight .vg { color: #aa0000 } /* Name.Variable.Global */
57 | .highlight .vi { color: #aa0000 } /* Name.Variable.Instance */
58 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
59 |
--------------------------------------------------------------------------------
/assets/css/vendor/Katex.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.11.1"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathdefault{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left}
2 |
3 |
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_AMS-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_AMS-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_AMS-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_AMS-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_AMS-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_AMS-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Bold.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Caligraphic-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Bold.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Fraktur-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Bold.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Bold.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Bold.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-BoldItalic.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Italic.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Italic.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Italic.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Main-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Main-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-BoldItalic.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-Italic.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-Italic.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Math-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Math-Italic.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Bold.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Italic.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_SansSerif-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Script-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Script-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Script-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Script-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Script-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Script-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size1-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size1-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size1-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size1-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size1-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size1-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size2-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size2-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size2-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size2-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size2-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size2-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size3-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size3-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size3-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size3-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size3-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size3-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size4-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size4-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size4-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size4-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Size4-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Size4-Regular.woff2
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.ttf
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.woff
--------------------------------------------------------------------------------
/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/css/vendor/fonts/KaTeX_Typewriter-Regular.woff2
--------------------------------------------------------------------------------
/assets/img/backlinks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/backlinks.png
--------------------------------------------------------------------------------
/assets/img/context_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/context_menu.png
--------------------------------------------------------------------------------
/assets/img/context_menu_backlinks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/context_menu_backlinks.png
--------------------------------------------------------------------------------
/assets/img/end_result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/end_result.png
--------------------------------------------------------------------------------
/assets/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/favicon.png
--------------------------------------------------------------------------------
/assets/img/feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/feed.png
--------------------------------------------------------------------------------
/assets/img/firstdesign.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/firstdesign.jpg
--------------------------------------------------------------------------------
/assets/img/fork_button.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/fork_button.jpg
--------------------------------------------------------------------------------
/assets/img/highlighting.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/highlighting.JPG
--------------------------------------------------------------------------------
/assets/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/logo.png
--------------------------------------------------------------------------------
/assets/img/ongoing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/ongoing.png
--------------------------------------------------------------------------------
/assets/img/pagepreview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/pagepreview.png
--------------------------------------------------------------------------------
/assets/img/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/profile.png
--------------------------------------------------------------------------------
/assets/img/profile_board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/profile_board.png
--------------------------------------------------------------------------------
/assets/img/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/search.png
--------------------------------------------------------------------------------
/assets/img/search_with_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/search_with_preview.png
--------------------------------------------------------------------------------
/assets/img/site_without_profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/site_without_profile.png
--------------------------------------------------------------------------------
/assets/img/transclusion.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raghudotcc/simply-jekyll/4ed6232bff82dd9f22360efaf90e1fc51dae180c/assets/img/transclusion.JPG
--------------------------------------------------------------------------------
/assets/js/ContextMenu.js:
--------------------------------------------------------------------------------
1 | /********************************************************************************************
2 | * MIT License
3 | *
4 | * Copyright (c) 2020 Raghuveer S
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | *
25 | * File: ContextMenu.js
26 | * Author@Raghuveer S
27 | *
28 | * This allows us to override the default contextmenu provided by the browser and replace
29 | * it with a custom context menu containing options to view related files and files
30 | * that link back to it(a.k.a backlinks).
31 | *********************************************************************************************/
32 |
33 | (function (sj) {
34 | "use strict";
35 |
36 | sj.addEvent = function (el, type, handler) {
37 | if (el.attachEvent) el.attachEvent("on" + type, handler);
38 | else el.addEventListener(type, handler);
39 | };
40 | sj.removeEvent = function (el, type, handler) {
41 | if (el.detachEvent) el.detachEvent("on" + type, handler);
42 | else el.removeEventListener(type, handler);
43 | };
44 | sj.onReady = function (ready) {
45 | // in case the document is already rendered
46 | if (document.readyState != "loading") ready();
47 | // modern browsers
48 | else if (document.addEventListener)
49 | document.addEventListener("DOMContentLoaded", ready);
50 | // IE <= 8
51 | else
52 | document.attachEvent("onreadystatechange", function () {
53 | if (document.readyState == "complete") ready();
54 | });
55 | };
56 |
57 | /* Helper function to check if the click event happened
58 | inside the specfied css element or outside */
59 | function clickInsideElement(e, className) {
60 | var el = e.srsElement || e.target;
61 | if (el.classList.contains(className)) {
62 | return el;
63 | } else {
64 | while ((el = el.parentNode)) {
65 | if (el.classList && el.classList.contains(className)) {
66 | return el;
67 | }
68 | }
69 | }
70 |
71 | return false;
72 | }
73 |
74 | /* Helper function to get the position of the event */
75 | function getPosition(e) {
76 | var posX = 0;
77 | var posY = 0;
78 |
79 | if (!e) var e = window.event;
80 |
81 | if (e.pageX || e.pageY) {
82 | posX = e.pageX;
83 | posY = e.pageY;
84 | } else if (e.clientX || e.clientY) {
85 | posX =
86 | e.clientX +
87 | document.body.scrollLeft +
88 | document.documentElement.scrollLeft;
89 | posY =
90 | e.clientY + document.body.srollTop + document.documentElement.scrollTop;
91 | }
92 |
93 | return {
94 | x: posX,
95 | y: posY,
96 | };
97 | }
98 |
99 | /* Variables related to main context menu */
100 | var contextMenuClassName = "context-menu";
101 | var contextMenuItemClassName = "context-menu__item";
102 | var contextMenuLinkClassName = "context-menu__link";
103 | var contextMenuActive = "context-menu--active";
104 |
105 | /* Variables related to context menu results */
106 | var contextMenuResActive = "context-menu-res--active";
107 | var contextMenuResClassName = "context-menu-res";
108 | var contextMenuResLinkClassName = "context-menu-res__link";
109 |
110 | var feedItemClassName = "feed-title-excerpt-block";
111 | var feedItemInContext;
112 |
113 | var clickCoords;
114 | var clickCoordsX;
115 | var clickCoordsY;
116 |
117 | var menu = document.querySelector("#context-menu");
118 | var menuItems = menu.querySelectorAll(".context-menu__item");
119 | var menuState = 0;
120 | var menuWidth;
121 | var menuHeight;
122 | var menuPosition;
123 | var menuPositionX;
124 | var menuPositionY;
125 |
126 | var resMenu = document.querySelector("#context-menu-res");
127 | var resMenuState = 0;
128 | var resMenuWidth;
129 | var resMenuHeight;
130 |
131 | var windowWidth;
132 | var windowHeight;
133 |
134 | function positionMenu(e) {
135 | clickCoords = getPosition(e);
136 | clickCoordsX = clickCoords.x;
137 | clickCoordsY = clickCoords.y;
138 |
139 | menuWidth = menu.offsetWidth + 4;
140 | menuHeight = menu.offsetHeight + 4;
141 |
142 | windowWidth = window.innerWidth;
143 | windowHeight = window.innerHeight;
144 |
145 | if (windowWidth - clickCoordsX < menuWidth) {
146 | menu.style.left = windowWidth - menuWidth + "px";
147 | } else {
148 | menu.style.left = clickCoordsX + "px";
149 | }
150 |
151 | menu.style.top = clickCoordsY + "px";
152 | }
153 |
154 | function positionContextMenuRes() {
155 | resMenuWidth = resMenu.offsetWidth + 10;
156 | resMenuHeight = resMenu.offsetHeight + 10;
157 |
158 | windowWidth = window.innerWidth;
159 | windowHeight = window.innerHeight;
160 |
161 | if (windowWidth - clickCoordsX < resMenuWidth) {
162 | resMenu.style.left = windowWidth - resMenuWidth + "px";
163 | } else {
164 | resMenu.style.left = clickCoordsX + "px";
165 | }
166 |
167 | resMenu.style.top = clickCoordsY + "px";
168 | }
169 |
170 | async function getRelatedHTML(dataUrl) {
171 | let response = await fetch(dataUrl);
172 | let responseText = response.text();
173 | return responseText;
174 | }
175 |
176 | function showRelated(dataAction, dataUrl) {
177 | getRelatedHTML(dataUrl)
178 | .then(function (responseText) {
179 | let parser = new DOMParser();
180 | let doc = parser.parseFromString(responseText, "text/html");
181 | var relatedItems;
182 | var contextMenuResTitle;
183 | if (dataAction == "backlinks") {
184 | relatedItems = doc.getElementById("jekyll-seamless-backlinks");
185 | contextMenuResTitle = document.createTextNode("Linked References");
186 | } else {
187 | relatedItems = doc.getElementById("jekyll-seamless-relatedposts");
188 | contextMenuResTitle = document.createTextNode("Related by Tag");
189 | }
190 | var relatedItemHTMLTitle = document.createElement("p");
191 | relatedItemHTMLTitle.setAttribute("class", "feed-relatedItems");
192 | relatedItemHTMLTitle.style.fontSize = "14px";
193 | relatedItemHTMLTitle.style.color = "#777";
194 | relatedItemHTMLTitle.style.fontWeight = "600";
195 | relatedItemHTMLTitle.style.fontFamily =
196 | "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif";
197 | var relatedItemHTML = document.createElement("ul");
198 |
199 | if (relatedItems == null) {
200 | contextMenuResTitle = document.createTextNode("Nothing Found ");
201 | relatedItemHTMLTitle.appendChild(contextMenuResTitle);
202 | } else {
203 | var urls = relatedItems.getElementsByTagName("a");
204 | var titles = relatedItems.querySelectorAll(".related-title");
205 | relatedItemHTMLTitle.appendChild(contextMenuResTitle);
206 | for (var i = 0; i < urls.length; i++) {
207 | var newLink = document.createElement("li");
208 | newLink.style.listStyle = "none";
209 |
210 | var newAnchor = document.createElement("a");
211 | newAnchor.setAttribute("href", urls[i].getAttribute("href"));
212 | newAnchor.setAttribute("class", contextMenuResLinkClassName);
213 | newAnchor.appendChild(document.createTextNode(titles[i].innerHTML));
214 | newAnchor.style.textDecoration = "none";
215 | newAnchor.style.fontSize = "12px";
216 | newAnchor.style.color = "#4183c4";
217 | newAnchor.style.fontFamily =
218 | "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif";
219 |
220 | newLink.appendChild(newAnchor);
221 |
222 | relatedItemHTML.appendChild(newLink);
223 | }
224 | }
225 | relatedItemHTML.prepend(relatedItemHTMLTitle);
226 | relatedItemHTML.style.marginLeft = "-20px";
227 | relatedItemHTML.style.paddingRight = "10px";
228 | toggleContextResMenuOn();
229 | resMenu.appendChild(relatedItemHTML);
230 | positionContextMenuRes();
231 | })
232 | .catch(function (err) {
233 | console.warn("Error processing the post for contextmenu.", err);
234 | });
235 | }
236 |
237 | function toggleMenuOn() {
238 | if (menuState !== 1) {
239 | menuState = 1;
240 | menu.classList.add(contextMenuActive);
241 | }
242 | }
243 |
244 | function toggleMenuOff() {
245 | if (menuState !== 0) {
246 | menuState = 0;
247 | menu.classList.remove(contextMenuActive);
248 | }
249 | }
250 |
251 | function toggleContextResMenuOn() {
252 | if (resMenuState !== 1) {
253 | while (resMenu.firstChild) {
254 | resMenu.removeChild(resMenu.lastChild);
255 | }
256 | resMenuState = 1;
257 | resMenu.classList.add(contextMenuResActive);
258 | }
259 | }
260 |
261 | function toggleContextResMenuOff() {
262 | if (resMenuState !== 0) {
263 | resMenuState = 0;
264 | resMenu.classList.remove(contextMenuResActive);
265 | while (resMenu.firstChild) {
266 | resMenu.removeChild(resMenu.lastChild);
267 | }
268 | }
269 | }
270 |
271 | function menuItemListener(link, e) {
272 | var dataUrl = feedItemInContext.getAttribute("data-url");
273 | var dataAction = link.getAttribute("data-action");
274 | switch (dataAction) {
275 | case "backlinks":
276 | showRelated(dataAction, dataUrl);
277 | break;
278 | case "related-posts":
279 | showRelated(dataAction, dataUrl);
280 | break;
281 | case "new-tab":
282 | window.open(dataUrl, "_blank");
283 | break;
284 | case "copy-link":
285 | var textArea = document.createElement("textarea");
286 | textArea.value = dataUrl;
287 | document.body.appendChild(textArea);
288 | textArea.select();
289 | try {
290 | var successful = document.execCommand("copy");
291 | var msg = successful ? "successful" : "unsuccessful";
292 | } catch (err) {
293 | console.log("Copying Failed!" + err);
294 | }
295 |
296 | document.body.removeChild(textArea);
297 | break;
298 | default:
299 | break;
300 | }
301 |
302 | toggleMenuOff();
303 | }
304 |
305 | sj.addEvent(window, "contextmenu", function (e) {
306 | feedItemInContext = clickInsideElement(e, feedItemClassName);
307 | if (feedItemInContext) {
308 | e.preventDefault();
309 | toggleContextResMenuOff();
310 | toggleMenuOn();
311 | positionMenu(e);
312 | } else {
313 | feedItemInContext = null;
314 | toggleContextResMenuOff();
315 | toggleMenuOff();
316 | }
317 | });
318 |
319 | sj.addEvent(window, "click", function (e) {
320 | var clickeElIsLink = clickInsideElement(e, contextMenuResLinkClassName);
321 |
322 | if (!clickeElIsLink) {
323 | var button = e.which || e.button;
324 | if (button === 1) {
325 | toggleContextResMenuOff();
326 | }
327 | }
328 | });
329 |
330 | sj.addEvent(window, "click", function (e) {
331 | var clickeElIsLink = clickInsideElement(e, contextMenuLinkClassName);
332 |
333 | if (clickeElIsLink) {
334 | e.preventDefault();
335 | menuItemListener(clickeElIsLink, e);
336 | } else {
337 | var button = e.which || e.button;
338 | if (button === 1) {
339 | toggleMenuOff();
340 | }
341 | }
342 | });
343 |
344 | sj.addEvent(window, "keyup", function (e) {
345 | switch (e.keyCode) {
346 | case 27:
347 | toggleMenuOff();
348 | break;
349 | }
350 | });
351 |
352 | sj.addEvent(window, "resize", function (e) {
353 | toggleMenuOff();
354 | toggleContextResMenuOff();
355 | });
356 | })((window.sj = window.sj || {}));
357 |
--------------------------------------------------------------------------------
/assets/js/SearchData.json:
--------------------------------------------------------------------------------
1 | ---
2 | permalink: /assets/js/SearchData.json
3 | ---
4 |
5 | {
6 | {%- assign i = 0 -%}
7 | {%- for post in site.posts -%}
8 |
9 | "{{ i }}": {
10 | "doc": {{ post.title | strip_html | escape | jsonify }},
11 | "title": {{ post.title | strip_html | escape | jsonify }},
12 | "content": {{ post.content | replace: '
9 | .date-content a {
10 | text-decoration: none;
11 | color: #4183c4;
12 | }
13 |
14 | .date-content a:hover {
15 | text-decoration: underline;
16 | color: #4183c4;
17 | }
18 |
19 |
20 |
21 | {% assign postsByDay =
22 | site.posts | group_by_exp:"post", "post.date | date: '%d-%B-%Y'" %}
23 |
24 | {% for day in postsByDay %}
25 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/utilities/Autocomplete.ts:
--------------------------------------------------------------------------------
1 | /************************************************************************************************
2 | *
3 | * MIT License
4 | *
5 | * Copyright (c) 2020 Raghuveer S
6 | *
7 | * Permission is hereby granted, free of charge, to any person obtaining a copy
8 | * of this software and associated documentation files (the "Software"), to deal
9 | * in the Software without restriction, including without limitation the rights
10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | * copies of the Software, and to permit persons to whom the Software is
12 | * furnished to do so, subject to the following conditions:
13 | *
14 | * The above copyright notice and this permission notice shall be included in all
15 | * copies or substantial portions of the Software.
16 | *
17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | * SOFTWARE.
24 | *
25 | *
26 | * Author@Raghuveer S, 2019
27 | * This is a plugin that I use with VS Code to enable autocompletion of
28 | * filenames when using wiki-style link syntax "[["
29 | *
30 | * How to use this file:
31 | * ---------------------
32 | * Disclaimer: This is not a published plugin i.e., it is not present in the VS Code Marketplace.
33 | * 1. Create a VSCode Plugin template using Yeoman. (This can be googled, it's a very simple step)
34 | * 2. Now open the template folder that you created.
35 | * 3. Copy this file to the 'src' folder inside the template folder and rename it to 'extension.ts'.
36 | * If there is already a file by that name in the 'src', just replace it with this.
37 | * 4. Now copy the entire template folder to C:/Users//.vscode/
38 | * 5. Restart vscode and you should now find that when you are working with 'simply jekyll' posts,
39 | * you have autocompletion ready to fire.
40 | **************************************************************************************************/
41 |
42 | import * as vscode from 'vscode';
43 | import * as fs from 'fs';
44 | import * as path from 'path';
45 |
46 | export function activate(context: vscode.ExtensionContext) {
47 | const provider = new IncludeCompletionProvider();
48 | context.subscriptions.push(vscode.languages.registerCompletionItemProvider('markdown', provider, '['));
49 | }
50 |
51 |
52 |
53 | class IncludeCompletionProvider implements vscode.CompletionItemProvider, vscode.Disposable {
54 | private titles: string[] = [];
55 | private watcher: vscode.FileSystemWatcher;
56 |
57 | constructor() {
58 | this.updateTitles();
59 |
60 | this.watcher = vscode.workspace.createFileSystemWatcher("**/_site/Autocomplete.txt");
61 | this.watcher.onDidCreate(()=> this.updateTitles());
62 | this.watcher.onDidChange(()=> this.updateTitles());
63 | this.watcher.onDidDelete(()=> this.updateTitles());
64 | }
65 |
66 | public dispose() {
67 | this.watcher.dispose();
68 | }
69 |
70 | public provideCompletionItems (document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken) {
71 | let linePrefix = document.lineAt(position).text.substr(0, position.character);
72 | if (!linePrefix.endsWith('[[')) {
73 | return undefined;
74 | }
75 |
76 | let completionItemArray: vscode.CompletionItem[] = [];
77 |
78 | for (let entry of this.titles) {
79 | completionItemArray.push(new vscode.CompletionItem(entry, vscode.CompletionItemKind.Text));
80 | }
81 |
82 | return completionItemArray;
83 | }
84 |
85 | private async updateTitles() {
86 | if (!vscode.workspace.workspaceFolders) {
87 | return undefined;
88 | }
89 |
90 | const folderUri = vscode.workspace.workspaceFolders[0].uri;
91 | const fileUri = folderUri.with({ path: path.posix.join(folderUri.path, '_site/autocomplete.txt') });
92 |
93 | let titles = undefined;
94 |
95 | const readData = await vscode.workspace.fs.readFile(fileUri);
96 | titles = Buffer.from(readData).toString('utf8').split(";");
97 |
98 | this.titles = titles;
99 | }
100 |
101 |
102 | }
103 |
--------------------------------------------------------------------------------
/utilities/NotionToJekyll.py:
--------------------------------------------------------------------------------
1 | #####################################################################################################
2 | #
3 | # MIT License
4 | #
5 | # Copyright (c) 2020 Raghuveer S
6 | #
7 | # Permission is hereby granted, free of charge, to any person obtaining a copy
8 | # of this software and associated documentation files (the "Software"), to deal
9 | # in the Software without restriction, including without limitation the rights
10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | # copies of the Software, and to permit persons to whom the Software is
12 | # furnished to do so, subject to the following conditions:
13 | #
14 | # The above copyright notice and this permission notice shall be included in all
15 | # copies or substantial portions of the Software.
16 | #
17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | # SOFTWARE.
24 | #
25 | #
26 | # Author@Raghuveer S
27 | # This is a file I use with Notion to automatically convert my Notion documents to Blogposts
28 | #
29 | # How to use this file:
30 | # ---------------------
31 | # Disclaimer: 'TOKEN_V2' and 'BLOG_PAGE_ID' are different for each individual.
32 | # 1. Get the 'token_v2' by inspecting notion on your browser. You should find it in the
33 | # application tab in the browser inspector.
34 | # 2. Create a page called 'Blog' on Notion.
35 | # 3. Now note down the long string in the url that comes after '?v='.
36 | # 4. Replace the TOKEN_V2 and BLOG_PAGE_ID below with the noted strings.
37 | # 5. Create a inline table with the following views: 1) Finished 2) Drafts 3) Archived
38 | # 6. Write your post and tag them appropriately as finished/drafts/archived
39 | # 7. Now run the python file using 'python3 NotionToJekyll.py'
40 | # 8. You can now commit the file to github.
41 | # Note: Remember that the steps from 1st to 5th are just one time steps.
42 | #####################################################################################################
43 |
44 | from notion.client import NotionClient
45 | import os
46 | import datetime
47 |
48 | class NotionJekyll:
49 | def __init__(self,
50 | token_v2="TOKEN_V2",
51 | blog_page_id="BLOG_PAGE_ID"):
52 | self.client = NotionClient(token_v2=token_v2)
53 | self.text = ''
54 | self.notion_to_md(blog_page_id)
55 |
56 | def indent(self, depth):
57 | spaces = ''
58 | for level in range(depth):
59 | spaces = spaces + " "
60 |
61 | return spaces
62 |
63 | def md_gen_util(self, post, depth):
64 | for content in post.children:
65 | if content.type == 'header':
66 | self.text = self.text + '\n# ' + content.title + '\n\n'
67 | elif content.type == 'sub_header':
68 | self.text = self.text + '\n## ' + content.title + '\n\n'
69 | elif content.type == 'sub_sub_header':
70 | self.text = self.text + '\n### ' + content.title + '\n\n'
71 | elif content.type == 'table_of_contents':
72 | self.text = self.text + '\n* TOC\n{:toc}\n\n'
73 | elif content.type == 'code':
74 | self.text = self.text + '\n```' + content.language + '\n' + content.title + '\n```\n\n'
75 | elif content.type == 'quote':
76 | self.text = self.text + '\n> ' + content.title + '\n'
77 | elif content.type == 'image':
78 | self.text = self.text + '\n\n\n'
79 | elif content.type == 'bulleted_list':
80 | self.text = self.text + self.indent(depth) + '- ' + content.title + '\n'
81 | elif content.type == 'numbered_list':
82 | self.text = self.text + self.indent(depth) + '1. ' + content.title + '\n'
83 | elif content.type == 'divider':
84 | self.text = self.text + '\n---' + '\n\n'
85 | elif content.type == 'callout':
86 | self.text = self.text + '\n{:.boxit}\n' + content.title + '\n\n'
87 | elif content.type == 'todo':
88 | self.text = self.text + '\n[ ] ' + content.title + '\n'
89 | elif content.type == 'toggle':
90 | self.text = self.text + self.indent(depth) + content.title + '\n'
91 | elif content.type == 'text':
92 | self.text = self.text + "\n" +self.indent(depth) + content.title + '\n\n'
93 | else:
94 | print(content.type)
95 |
96 | # Recursion for child blocks
97 | if content.children != None:
98 | self.md_gen(content, depth + 1)
99 |
100 |
101 | def md_gen(self, post, depth):
102 | if post.type == 'toggle':
103 | self.text = self.text + '\n' + post.title + '\n'
104 | self.md_gen_util(post, depth)
105 | self.text = self.text + '\n'
106 | else:
107 | self.md_gen_util(post, depth)
108 |
109 |
110 | def notion_to_md(self, blog_page_id):
111 | cv = self.client.get_collection_view(blog_page_id)
112 | posts = list(filter(lambda row: row.status == ['finished'], cv.collection.get_rows()))
113 |
114 | for post in posts:
115 | tags = post.get_property('Tags')
116 | tags_str = ' '.join(tags)
117 |
118 | self.text = """---\ntitle: %s\ntags: %s \n---\n""" % (post.title, tags_str)
119 |
120 | self.md_gen(post, depth = 0)
121 |
122 | title = post.title.replace(' ', '-')
123 | title = title.replace('—', '')
124 | title = title.replace('--', '-')
125 | title = title.replace(',', '')
126 | title = title.replace(';', '')
127 | title = title.replace('?', '')
128 | title = title.replace('%', '')
129 | title = title.replace('\'', '')
130 | title = title.replace('"', '')
131 | title = title.lower()
132 |
133 | folderpath = os.path.join(os.getcwd(), "_posts/")
134 | if not os.path.exists(folderpath):
135 | os.makedirs(folderpath)
136 | print('Created: %s', folderpath)
137 |
138 |
139 | with open(folderpath + post.get_property('Created').strftime("%Y-%m-%d") + "-" +
140 | title + ".md", 'w', encoding='utf-8') as file:
141 | file.write(self.text)
142 |
143 |
144 | NotionJekyll()
145 |
--------------------------------------------------------------------------------