Commit Graph

278 Commits

Author SHA1 Message Date
curben 1f9a2bc56e
fix(open_graph): remove duplicate tags
https://github.com/hexojs/hexo/pull/3668
https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started.html
2019-08-11 11:28:11 +09:30
curben 63150f5153
feat: use meta_generator helper instead of filter
https://github.com/hexojs/hexo/pull/3669
2019-08-11 11:11:01 +09:30
curben bd7342314d
refactor: use 'sites' search parameter
https://stackoverflow.com/a/7305734
2019-08-11 00:09:23 +09:30
curben 919af586ce
fix: remove index.html from url 2019-08-09 22:44:39 +09:30
curben e20e621c73
style: standard 2019-08-09 22:32:51 +09:30
curben 5e40a69534
feat: add a link button next to a heading
inspired by MDN Web Docs
https://developer.mozilla.org/en-US/
2019-08-09 22:12:07 +09:30
curben a5dbc691ee
fix: post.excerpt can be specified in post
https://github.com/hexojs/hexo/pull/3612
2019-08-09 13:55:10 +09:30
curben 1380f98108
fix: </html> appear after </head> 2019-08-06 20:16:44 +09:30
curben 007ece5fae refactor: replace nanomatch with micromatch
https://github.com/hexojs/hexo/pull/3538
2019-07-30 15:56:29 +09:30
curben f2e4f12358 fix(opengraph): don't lazy load cheerio 2019-07-13 14:26:32 +09:30
curben b7167f289a refactor: use OR operator 2019-07-10 21:17:17 +09:30
curben c6a002b409 feat(layout): add yearly and monthly archive links 2019-07-07 11:13:34 +09:30
curben ff2d2f0ea4 fix: load clipboardjs only in post 2019-06-30 16:55:49 +09:30
curben 4055d5a2c2 style: single quote 2019-06-29 19:00:53 +09:30
curben 2e017ecf98 feat(cloudinary): add original resolution image link
* increase width and limit height for embedded image
2019-06-29 18:55:32 +09:30
curben b9db47fe8c fix(microformat): prepend class name only to <a> tag 2019-06-28 17:49:12 +09:30
curben 2d097644fd fix(microformat): update syntax to h-entry of microformats2
* http://microformats.org/wiki/h-entry
* replaces hAtom
2019-06-28 00:41:35 +09:30
curben 8ce99181a4 fix(schema): use valid "dateModified"
* https://schema.org/dateModified
2019-06-27 23:45:35 +09:30
curben 2a242f59a6 fix(schema): use "articleBody" for post content
* Revert 5d216d3
* https://schema.org/BlogPosting
* "text" is more suitable for itemtype="https://schema.org/Blog"
* https://schema.org/Blog is more suitable for homepage (list of posts)
* ref https://github.com/philwareham/schema-microdata-examples/blob/master/blog.html
2019-06-27 23:44:46 +09:30
curben 5f83dddf71 fix(schema): add "headline" to post title
* https://webmasters.stackexchange.com/a/98469
2019-06-27 22:39:54 +09:30
curben 5d216d3edf fix(schema): use "text" for post content
* articleBody is only applicable for (news) Article
* https://schema.org/Blog
* https://schema.org/Article
2019-06-27 22:22:29 +09:30
curben 843a8fe74f fix(schema): add license
* https://blogs.pjjk.net/phil/licence-information-in-schema-org-and-lrmi/
2019-06-27 22:09:36 +09:30
curben 8316503b5f fix(schema): add "keywords" attribute to tags
* https://stackoverflow.com/a/33056727
2019-06-27 22:01:04 +09:30
curben 132e96f69a fix(microformats): add 'published' class only to posts 2019-06-26 20:24:29 +09:30
curben b8f987934b feat(microformats): add rel-license
* http://microformats.org/wiki/rel-license
2019-06-26 20:12:07 +09:30
curben 17c823bfbd feat(microformats): add hAtom class names
* http://microformats.org/wiki/hatom
2019-06-26 17:19:14 +09:30
curben bdafe4a208 feat(microformats): add tag
* http://microformats.org/wiki/rel-tag
2019-06-26 16:56:24 +09:30
curben ec434af4ea style: reduce tab spacing 2019-06-26 16:26:23 +09:30
curben 6b9395cebc fix(sitemap): add sitemap location to <head> and robots.txt
* https://github.com/h5bp/html5-boilerplate/pull/1918
2019-06-26 16:24:19 +09:30
curben e9c907e480 style(search): 'Powered by' instead of 'Search using' 2019-06-23 17:10:15 +09:30
curben 2b63f11742 fix(tags): tag url in lowercase, display in titlecase
* netlify uses lowercase url
2019-06-21 11:28:05 +09:30
curben aa3d94aa4b feat: add link() helper
* Based on link_to() helper, without unneeded attribute and option
* https://hexo.io/docs/helpers#link-to
2019-06-15 20:42:07 +09:30
curben 36201c2ada fix(footer): add gitlab source link 2019-06-15 20:29:07 +09:30
curben e130371288 feat(layout): Add page number to blog <title> 2019-06-13 13:38:30 +09:30
curben e4b065288c fix(layout): set website's and blog's <title> 2019-06-13 13:35:49 +09:30
curben 1eaf01b8ed style: replace 'using' with 'with' 2019-06-13 10:18:25 +09:30
curben 1ccf7038b8 fix: Temporarily set the homepage to /blog 2019-06-12 17:54:08 +09:30
curben 6b5feb809e docs(page): add Disclaimer page
credit https://www.termsfeed.com/blog/disclaimer-examples/
2019-06-12 11:27:57 +09:30
curben 2ae8f9b08e fix(css): use sans-serif for content, serif for title
* Based on Wikipedia style
* https://css-tricks.com/sans-serif/
2019-06-11 19:09:55 +09:30
curben b99bcb4c26 style: Add credit to loading.svg 2019-06-10 18:23:17 +09:30
curben fb36bca7f1 refactor: use page.subtitle instead of page.excerpt
* Source file (.md) looks a bit clearer this way.
* Remove unused options in openGraph.js
2019-06-08 17:31:39 +09:30
curben a5d1791b14 feat(search): replace gitlab search with duckduckgo
todo: algolia
2019-06-07 18:39:51 +09:30
curben 105de8515c refactor(es6): arrow function 2019-06-07 09:42:16 +09:30
curben 60fa21c1ee fix(post): Display post content without excerpt
https://hexo.io/docs/variables.html
2019-06-06 20:57:28 +09:30
curben 7a3f86f5b7 refactor(css): remove unused attribute 2019-06-06 19:48:13 +09:30
curben 48db9251c6 feat(archive-page): Add post excerpt 2019-06-06 19:45:50 +09:30
curben 513bd9f7e1 fix(archive-page): bold title and decrease font-size of date
* Replace px with em
* Remove unused class
2019-06-06 19:24:20 +09:30
curben cfd1b62843 fix(css): smaller title and title's margin-bottom 2019-06-05 13:37:47 +09:30
curben dec7ae72f7 feat: Add homepage link to mobile page title 2019-06-05 13:15:51 +09:30
curben ad7616ebab fix(css): use ch to set max-width and padding
https://jrl.ninja/etc/1/
https://secretgeek.github.io/html_wysiwyg/html.html
https://news.ycombinator.com/item?id=20100232
https://www.reddit.com/r/css/comments/bb73cw/58_bytes_of_css_to_look_great_nearly_everywhere/ekj8yhm/
2019-06-05 13:03:40 +09:30
curben bb87e3b914 fix: display date using <span> instead of <a>
* unify date_format options
2019-06-04 13:55:43 +09:30
curben ab5161bbc8 style: parse date only, ignore time 2019-06-04 13:35:48 +09:30
curben 8717b52283 fix(sitemap): use post.lastUpdated
* post.updated = execution time of 'hexo generate'
* use moment.format() instead of Date.toISOString() to avoid timezone conversion
  - Use '[T00:00:00.000Z]' to ignore time, instead of '[T]HH:mm:ss.sss[Z]'
  - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
2019-06-04 13:08:09 +09:30
curben fba0d3deab feat(openGraph): add post's published time to meta tag
* Rename function name to camel case (standardjs)
* Skip timezone conversion, but not using the date() helper
* Open Graph tag is based on Wordpress Yoast, noticed through
https://dvt.name/2019/06/03/hacking-the-casio-f-91w-to-handle-1000-psi/
2019-06-03 22:56:46 +09:30
curben 60d62f94f3 feat: add search function to mobile page
* add a gap after search form to prevent misclick
* use addEventListener() instead of onclick()
  - https://stackoverflow.com/a/34216918
2019-06-01 18:51:51 +09:30
curben 824c11059d refactor: remove fill attribute from svg
it's already set in typing.css
2019-06-01 18:01:43 +09:30
curben c601a31b13 refactor: array in one line 2019-05-30 19:20:20 +09:30
curben 0fe5658173 fix(sitemap): remove index.html from url
a92dbbb83c
3fccc82d3a
2019-05-30 19:18:11 +09:30
curben 4a785a6cf1 fix: exclude webmaster verification file from rendering
fix(sitemap): skipRenderList shouldn't be a constant due to line 13-17
2019-05-30 18:15:15 +09:30
curben 69d7aabe63 feat: add Google Webmaster
exclude the verification file from sitemap.xml
2019-05-30 18:04:31 +09:30
curben eb2a009ac0 feat: add sitemap.xml
https://github.com/hexojs/hexo-generator-sitemap
2019-05-27 11:58:48 +09:30
curben 00fbcce468 refactor: unify HTTP header settings into _headers 2019-05-26 15:09:27 +09:30
curben 415952ff69 docs(open_graph): add comment 2019-05-26 00:10:44 +09:30
curben cab3baeaf8 style: standardjs lint 2019-05-25 23:58:52 +09:30
curben 7ebcc03977 fix(open_graph): use data-src attribute in img tag
* compatibility with cloudinary (see scripts/cloudinary.js)
  * helper has to be registered via a function
    - https://github.com/hexojs/hexo/issues/1462#issuecomment-277474592
    - https://github.com/hexojs/hexo/issues/743#issuecomment-168262852
    - https://hexo.io/api/helper
    - https://github.com/hexojs/hexo/blob/master/lib/plugins/helper/open_graph.js
2019-05-25 22:21:44 +09:30
curben 9daf4d98b9 docs(copy-button): clarify the source of cheerio package 2019-05-25 22:20:54 +09:30
curben cf16dd3e43 refactor: move creation of 'Copy' button from client to server
* https://github.com/cheeriojs/cheerio#append-content-content--
  * cheerio doesn't have .createElement() function
    - https://code.tutsplus.com/tutorials/jquery-14-released-the-15-new-features-you-must-know--net-8590
2019-05-25 20:14:02 +09:30
curben 3dfc57dbbe refactor: replace for loop with forEach()
https://stackoverflow.com/a/34832466/9645167
2019-05-25 17:49:36 +09:30
curben e312ed2b69 feat: add alt attribute to <img>
* https://support.google.com/webmasters/answer/114016?hl=en
  * remove version tag from cloudinary link
    * cache of previous version should be purged by now
  * img tag doesn't need to be self-closing
2019-05-23 16:46:02 +09:30
curben 15048c2d1f fix: search.svg does not load in Firefox due to CSP
* Use default-src 'self' as a workaround
https://pokeinthe.io/2016/04/09/black-icons-with-svg-and-csp/
https://bugzilla.mozilla.org/show_bug.cgi?id=1303364
https://github.com/w3c/webappsec-csp/issues/199
https://github.com/w3c/webappsec-csp/issues/198

* use 'self' instead of localhost and netlify.com
* set other directives to 'none'
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
* font-src neeeds to be whitelisted before using fork-awesome
2019-05-22 12:39:53 +09:30
curben 4791c98a00 refactor: remove jquery and fancybox
todo https://github.com/dimsemenov/photoswipe
2019-05-22 11:13:21 +09:30
curben 08fb7897e1 fix: replace 'https' with 'https:' in CSP
https://content-security-policy.com/#source_list
2019-05-22 11:00:00 +09:30
curben 0e686c620b refactor: Use pure JS equivalent of jQuery's $.ready()
https://stackoverflow.com/a/9899701
2019-05-22 10:52:58 +09:30
curben 821ac056b7 feat: add CSP via <meta> tag
* <meta> doesn't support frame-ancestors directive
  * '*--curben.netlify.com' is invalid
  * add localhost
  * block-all-mixed-content works with localhost
2019-05-21 14:41:56 +09:30
curben 03c527b2f5 refactor: move inline search function to js file
avoid inline script for CSP
2019-05-21 14:12:30 +09:30
curben 045882e527 feat: add tooltip to search button
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/desc

inline svg doesn't require xmlns attribute
https://github.com/svg/svgo/blob/master/plugins/removeXMLNS.js
2019-05-21 13:37:10 +09:30
curben bc4082ac06 refactor: use image file instead of inline 2019-05-21 13:10:40 +09:30
curben 2ac754fa4d style: arrow function
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
2019-05-21 11:22:01 +09:30
curben e7a6071d08 refactor: move inline cloudinary js into js file
to make way for CSR policy
2019-05-21 10:49:30 +09:30
curben 47e7982432 refactor: use image file instead of inline
page source looks cleaner this way
2019-05-21 10:12:35 +09:30
curben ba48027e74 refactor: switch to regular cloudinary js
* it's hosted at cdnjs, inline with other js source
    - better for HTTP/2 multiplexing if same host
  * update jquery
2019-05-19 12:07:34 +09:30
curben 5b9d9494e6 fix: date and time display
* Add starting year to copyright
  * Remove unneeded creation time from posts
2019-05-19 11:35:03 +09:30
curben a777e860f8 fix: remove extra curly bracket
due to incomplete d6c36abab9
2019-04-22 18:50:53 +09:30
curben d6c36abab9 refactor: switch to Fork-Awesome 2019-04-15 14:16:07 +09:30
curben 55f5f11c2f style: convert var to let/const
ES6 syntax
2019-04-10 20:18:45 +09:30
curben 43bf50dac5 refactor: switch to more modern sri-fallback
https://github.com/JackuB/subresource-integrity-fallback
2019-04-10 19:59:56 +09:30
curben d314bff200 chore: update libs 2019-04-10 14:45:02 +09:30
curben ced318927f feat: switch to night theme
fix: compatibility with Dark Reader addon
2019-04-08 11:44:22 +09:30
curben-bot 02ac7d26a7 chore(deps): update dependency precss to v4 2018-11-25 04:48:31 +00:00
curben 19bb4b3d91 fix: mobile nav appears out of border in .article
don't underline certain <a> tags
2018-11-12 20:43:32 +10:30
curben ffe99717de fix: overlap the mobile nav onto other elements 2018-11-12 18:27:38 +10:30
curben 176974cd87 feat: add rounded corner to search bar 2018-11-12 11:06:36 +10:30
curben 7bbf3f4183 fix: don't underline the search icon 2018-11-11 21:29:16 +10:30
curben 7d15668c04 fix: html encoding and quote characters
html-minifier doesn't differentiate double and single quote.
backquote means URL doesn't need to be encoded or escaped.
possible IE11 issue, IE11 doesn't support ES6 anyway
https://kangax.github.io/compat-table/es6/

useful website for a47ab6: https://css-tricks.com/centering-css-complete-guide/
2018-11-11 20:57:27 +10:30
curben b7c7e9f27a fix: html encoding 2018-11-11 20:27:38 +10:30
curben a47ab65b54 feat: implement search bar
a crude search bar by piggybacking on gitlab search.
future enhancement is implement Algolia.
2018-11-11 16:55:13 +10:30
curben 8614f62257 fix: consistent header margin and font-size 2018-11-11 14:23:10 +10:30
curben 565714d32d fix: nav should be left text-aligned
similar to fb, patreon, github and gitlab.
2018-11-09 15:39:00 +10:30
curben 01bd1f3943 style: remove unused left nav menu 2018-11-08 12:27:15 +10:30
curben 0c98384e57 style: beautify css
https://codepen.io/jasondavis/pen/JoxMXa
2018-11-08 12:15:46 +10:30
curben 78032cfad4 style: consistent class name for mobile nav 2018-11-08 12:11:23 +10:30
curben dec7a55ba5 feat: add border around mobile nav menu 2018-11-07 10:52:08 +10:30
curben db788d8df9 fix: add css workaround for IE 2018-11-06 18:49:42 +10:30
curben 913f9572d7 refactor: re-implement nav menu without javascript
inspired by https://github.com/paulcarl/skelepico-theme
2018-11-06 17:22:44 +10:30
curben 624d449a3e style: use ES6 syntax and standard style 2018-11-01 12:15:03 +10:30
curben 316aa03bd8 feat: add updated date
post.updated variable is not used because it's the time 'hexo generate' is executed,
post.updated includes non-content update.
2018-11-01 11:35:02 +10:30
curben 9f4b85d636 chore: update dependencies
close !7-11
2018-10-28 18:24:55 +10:30
curben b338ab9459 Add Open Graph meta tags
http://ogp.me/
https://stackoverflow.com/q/6535405
2018-10-26 18:42:35 +10:30
curben 07afb16715 Use js standard style
https://standardjs.com/
2018-10-25 19:33:38 +10:30
curben e1c4bf489f Add license 2018-10-25 14:50:01 +10:30
curben 2cd6e3e6a5 Highlight button when hover over it 2018-10-20 19:04:52 +10:30
curben 673707964f Remove duplicate css rules 2018-10-20 13:53:38 +10:30
curben d8e1f57e9b Remove dotted outline on button
https://stackoverflow.com/q/71074/9645167
2018-10-20 13:38:41 +10:30
curben f397e5a17f Unify button styling across platforms
Revert edd32bb80d
2018-10-19 22:11:40 +10:30
curben edd32bb80d Use platform-native styling for button appearance
https://developer.mozilla.org/en-US/docs/Web/CSS/appearance
2018-10-19 21:13:15 +10:30
curben 6f16ecded9 Always show copy button 2018-10-19 20:52:39 +10:30
curben 1f0f664677 Load typing.js after jquery 2018-10-19 11:57:41 +10:30
curben 57303be096 Update typing.css using autoprefixer and normalize.css 2018-10-19 11:53:22 +10:30
curben a4ae8ad177 Remove duplicate and unused fonts 2018-10-18 19:39:01 +10:30
curben 68177361d4 Use 'Content is available under'
Instead of 'Licensed under' which sounds intimidating
2018-10-14 22:36:29 +10:30
curben 89f80789b0 Use symbolic link instead of hard link
https://www.cyberciti.biz/tips/understanding-unixlinux-symbolic-soft-and-hard-links.html
https://www.cyberciti.biz/faq/creating-soft-link-or-symbolic-link/
2018-10-11 17:14:47 +10:30
curben 54d74b4d1b Switch to cloudinary-jquery without file-upload function
- cloudinary-core 67.1KB
- cloudinary-jquery 66.5KB
- cloudinary-jquery-file-upload 71KB
2018-10-07 14:47:51 +10:30
curben 4eca4d9ebf Don't bundle js
HTTP/2 (supported by Netlify) offers multiplexing, so bundle/concat is not required
https://stackoverflow.com/a/36519379
Revert a4226f1413
2018-10-05 14:12:03 +09:30
curben 3d97dee41b In Archive page, display post title next line after post date 2018-10-04 14:37:30 +09:30
curben a4226f1413 Combine sri-fallback and typing
Save one HTTP request
2018-10-04 12:21:36 +09:30
curben 13b9218525 Use brighter colours, increase the size from 30px to 48px
svg optimised using svgo
https://www.npmjs.com/package/svgo
2018-10-03 18:48:15 +09:30
curben 983b522b7c Limit max width of picture to 500px, remove dpr_auto
https://cloudinary.com/documentation/responsive_images#automatic_image_width
dpr is not widely supported https://www.caniuse.com/#feat=client-hints-dpr-width-viewport
2018-10-02 21:11:43 +09:30
curben 9a8a48a15d Don't inject fancybox tag/class to cloudinary class
Incompatible with cloudinary
2018-10-02 12:33:19 +09:30
curben af0dde9483 Fix typo in cloudinary script 2018-10-02 09:45:02 +09:30
curben adf707c0fb Add cloudinary call
https://cloudinary.com/documentation/responsive_images#step_3_call_the_cloudinary_responsive_method
19e3cd1bcb
2018-10-01 21:30:53 +09:30
curben b5529674c0 Class name should be lowercase for fontawesome
Easier to toggle fontawesome feature
bd4a14dfa3
2018-10-01 13:44:32 +09:30
curben 1d4e14de25 Set inline code snippet background color for light theme
0bb968a58c
2018-10-01 13:41:39 +09:30
curben 19e3cd1bcb Add cloudinary tag plugin 2018-10-01 12:20:54 +09:30
curben 34c9b29f81 Use correct directory of js and css 2018-09-30 15:15:00 +09:30
curben bd4a14dfa3 Use fontawesome 5 svg & js framework 2018-09-30 15:12:38 +09:30
curben 0bb968a58c Set background color of inline code snippet
More contrast like code block
2018-09-30 13:27:40 +09:30
curben 43d0b22e6b Fix clipboardjs implemention
Previous commit 4fb0adb24a didn't work
Credit to https://www.jianshu.com/p/3e9d614c1e77
2018-09-30 13:21:59 +09:30
curben 8e5c6f4f0f Update fancybox and implement sri-fallback
https://github.com/cyph/sri-fallback
2018-09-29 21:07:09 +09:30
curben 45b47a9414 Upgrade clipboardjs to 2.0.1 2018-09-29 19:24:51 +09:30
curben 73b0a203bc Use subresource integrity for js
https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
https://hacks.mozilla.org/2015/09/subresource-integrity-in-firefox-43/
https://www.troyhunt.com/protecting-your-embedded-content-with-subresource-integrity-sri/
2018-09-29 19:22:06 +09:30
curben 4fb0adb24a Add 'Copy' button to code snippet
https://webdesign.tutsplus.com/tutorials/copy-to-clipboard-made-easy-with-clipboardjs--cms-25086
https://davidwalsh.name/clipboard
2018-09-29 18:46:59 +09:30
curben ed9aa18e87 Merge theme's to site's config
https://hexo.io/docs/configuration.html#Overriding-Theme-Config
2018-09-27 21:40:16 +09:30
curben cc1b2fc204 Switch to hexo-yam
imagemin module of hexo-all-minifier has vulnerabilities
https://snyk.io/test/npm/hexo-all-minifier
Use pre-compressed images instead
2018-09-27 18:24:10 +09:30
curben 0da762f287 More archive layout fix 2018-09-26 21:01:03 +09:30
curben 0f58cc00fd Use only one build job
Having build and test jobs is too slow
2018-09-26 20:50:21 +09:30
curben 7953a0f16b Fix archive page layout
Leave a small gap between date and post title
2018-09-26 20:45:06 +09:30
curben b11eeef202 Use relative font size instead of absolute size 2018-09-26 18:54:31 +09:30
curben 7ede088994 Tweak CSS for wider display
Use more screen space especially on 1080p screen
2018-09-26 15:18:06 +09:30
curben 7c9301705b Remove unused language files 2018-09-25 08:58:46 +09:30
curben b15720939b Remove source.css, beautify typing.css
typing.css is compiled from source.css
typing.css would be minified by hexo-all-minifier
2018-09-25 08:57:12 +09:30