├── .github └── main.workflow ├── .gitignore ├── .travis.yml ├── README.md ├── _config.yml ├── demo-site ├── README.md ├── _config.yml ├── package-lock.json ├── package.json └── source │ ├── _posts │ ├── categories.md │ ├── elements.md │ ├── excerpts.md │ ├── gallery-post.md │ ├── hello-world.md │ ├── images.md │ ├── inspiration.md │ ├── link-post-without-title.md │ ├── link-post.md │ ├── long-title.md │ ├── meilidu.md │ ├── no-title.md │ ├── tag-plugins.md │ ├── tags.md │ ├── videos.md │ ├── 中文測試.md │ └── 日本語テスト.md │ ├── about │ └── index.md │ ├── assets │ ├── wallpaper-2311325.jpg │ ├── wallpaper-2572384.jpg │ └── wallpaper-878514.jpg │ ├── categories │ └── index.md │ ├── page │ └── index.md │ └── tags │ └── index.md ├── docs ├── 2013 │ └── 12 │ │ ├── 24 │ │ ├── categories │ │ │ └── index.html │ │ ├── elements │ │ │ └── index.html │ │ ├── excerpts │ │ │ └── index.html │ │ ├── gallery-post │ │ │ └── index.html │ │ ├── hello-world │ │ │ └── index.html │ │ ├── link-post-without-title │ │ │ └── index.html │ │ ├── link-post │ │ │ └── index.html │ │ ├── long-title │ │ │ └── index.html │ │ ├── tag-plugins │ │ │ └── index.html │ │ ├── tags │ │ │ └── index.html │ │ ├── videos │ │ │ └── index.html │ │ ├── 中文測試 │ │ │ └── index.html │ │ └── 日本語テスト │ │ │ └── index.html │ │ ├── 25 │ │ └── no-title │ │ │ └── index.html │ │ └── 26 │ │ └── images │ │ └── index.html ├── 2016 │ ├── 07 │ │ └── 11 │ │ │ └── inspiration │ │ │ └── index.html │ └── 08 │ │ └── 11 │ │ └── meilidu │ │ └── index.html ├── about │ └── index.html ├── archives │ ├── 2013 │ │ ├── 12 │ │ │ ├── index.html │ │ │ └── page │ │ │ │ └── 2 │ │ │ │ └── index.html │ │ ├── index.html │ │ └── page │ │ │ └── 2 │ │ │ └── index.html │ ├── 2016 │ │ ├── 07 │ │ │ └── index.html │ │ ├── 08 │ │ │ └── index.html │ │ └── index.html │ ├── index.html │ └── page │ │ └── 2 │ │ └── index.html ├── assets │ ├── wallpaper-2311325.jpg │ ├── wallpaper-2572384.jpg │ └── wallpaper-878514.jpg ├── atom.xml ├── categories │ ├── Foo │ │ ├── Bar │ │ │ ├── Baz │ │ │ │ └── index.html │ │ │ └── index.html │ │ └── index.html │ ├── MeiliDu-Inspiration │ │ └── index.html │ ├── index.html │ └── meta │ │ └── index.html ├── css │ ├── archive.css │ ├── article.css │ ├── fonts │ │ ├── Inconsolata │ │ │ ├── Inconsolata-Bold.ttf │ │ │ └── Inconsolata-Regular.ttf │ │ ├── Noto_Sans │ │ │ ├── LICENSE.txt │ │ │ ├── NotoSans-Bold.ttf │ │ │ ├── NotoSans-BoldItalic.ttf │ │ │ ├── NotoSans-Italic.ttf │ │ │ └── NotoSans-Regular.ttf │ │ └── Noto_Serif │ │ │ ├── LICENSE.txt │ │ │ ├── NotoSerif-Bold.ttf │ │ │ ├── NotoSerif-BoldItalic.ttf │ │ │ ├── NotoSerif-Italic.ttf │ │ │ └── NotoSerif-Regular.ttf │ ├── footer.css │ ├── header.css │ ├── headers.css │ ├── highlight.css │ ├── scrollbar.css │ ├── style.css │ ├── underline.css │ └── variables.css ├── img │ └── header.jpg ├── index.html ├── page │ ├── 2 │ │ └── index.html │ └── index.html └── tags │ ├── Bar │ └── index.html │ ├── Baz │ └── index.html │ ├── Foo │ └── index.html │ ├── Hexo │ └── index.html │ ├── Theme │ └── index.html │ ├── first │ └── index.html │ ├── index.html │ └── post │ └── index.html ├── gitHubAssets └── showcase.png ├── layout ├── _widgets │ ├── greeting.ejs │ └── site_links.ejs ├── archive.ejs ├── categories.ejs ├── category.ejs ├── footer.ejs ├── index.ejs ├── layout.ejs ├── page.ejs ├── post.ejs ├── tag.ejs └── tags.ejs ├── package.json ├── scripts ├── imageCaption.js └── meilidu.js └── source ├── css ├── archive.styl ├── article.styl ├── fonts │ ├── Inconsolata │ │ ├── Inconsolata-Bold.ttf │ │ └── Inconsolata-Regular.ttf │ ├── Noto_Sans │ │ ├── LICENSE.txt │ │ ├── NotoSans-Bold.ttf │ │ ├── NotoSans-BoldItalic.ttf │ │ ├── NotoSans-Italic.ttf │ │ └── NotoSans-Regular.ttf │ └── Noto_Serif │ │ ├── LICENSE.txt │ │ ├── NotoSerif-Bold.ttf │ │ ├── NotoSerif-BoldItalic.ttf │ │ ├── NotoSerif-Italic.ttf │ │ └── NotoSerif-Regular.ttf ├── footer.styl ├── header.styl ├── headers.styl ├── highlight.styl ├── scrollbar.styl ├── style.styl ├── underline.styl └── variables.styl └── img └── header.jpg /.github/main.workflow: -------------------------------------------------------------------------------- 1 | workflow "New workflow" { 2 | on = "push" 3 | resolves = ["Copy"] 4 | } 5 | 6 | action "Install" { 7 | uses = "actions/npm@master" 8 | args = "run demo:install" 9 | } 10 | 11 | action "Build" { 12 | needs = "Install" 13 | uses = "actions/npm@master" 14 | args = "run demo:build" 15 | } 16 | 17 | action "Copy" { 18 | needs = "Build" 19 | uses = "actions/npm@master" 20 | args = "run demo:copy" 21 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | db.json 3 | public 4 | *.zip 5 | demo-site/node_modules -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Deploy hexo site by travis-ci 2 | # https://github.com/jkeylu/deploy-hexo-site-by-travis-ci 3 | # LICENSE: MIT 4 | # 5 | # 1. Copy this file to the root of your repository, then rename it to '.travis.yml' 6 | # 2. Replace 'YOUR NAME' and 'YOUR EMAIL' at line 29 7 | # 3. Add an Environment Variable 'DEPLOY_REPO' 8 | # 1. Generate github access token on https://github.com/settings/applications#personal-access-tokens 9 | # 2. Add an Environment Variable on https://travis-ci.org/{github username}/{repository name}/settings/env_vars 10 | # Variable Name: DEPLOY_REPO 11 | # Variable Value: https://{githb access token}@github.com/{github username}/{repository name}.git 12 | # Example: DEPLOY_REPO=https://6b75cfe9836f56e6d21187622730889874476c23@github.com/jkeylu/test-hexo-on-travis-ci.git 13 | 14 | language: node_js 15 | 16 | node_js: 17 | - "6" 18 | 19 | branches: 20 | only: 21 | - master 22 | 23 | before_install: 24 | - npm install -g hexo 25 | 26 | install: 27 | - npm install 28 | 29 | # Notice: Replace 'YOUR NAME' and 'YOUR EMAIL' 30 | before_script: 31 | - git config --global user.name 'Travis' 32 | - git config --global user.email 'travis@no-email.com' 33 | 34 | script: 35 | - mkdir .theme 36 | - TARGETDIR='.theme';for file in *;do test "$file" != "$TARGETDIR" && cp -r "$file" "$TARGETDIR/";done #create a folder with theme in it 37 | - mkdir .predeploy # make a folder for pre deploy 38 | - cd .predeploy 39 | - git clone --depth 1 --branch development --single-branch $DEPLOY_REPO . # get the files from the development branch 40 | - cp -r ../.theme themes/meilidu/ #copy theme over 41 | - npm install 42 | - hexo generate #generate site 43 | - mkdir .deploy 44 | - cd .deploy # create folder for deploy 45 | - git clone --depth 1 --branch master --single-branch $DEPLOY_REPO . # get the master branch 46 | - rm -rf ./* 47 | - cp -r ../public/* . # copy generated site over 48 | - cp ../README.md README.md # also copy readme so repo isn't so empty 49 | - git add -A . # add all the things 50 | - git commit -m 'Site updated' 51 | - git branch -m master 52 | - git push -q -u origin master # push new version 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MeiliDu 2 | 3 | [![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) 4 | 5 | > a beautiful read 6 | 7 | A simple, text focused theme for Hexo. Bringing your readers attention to what is most import: your posts. 8 | Check out the [Demo](https://meilidu.github.io/) 9 | 10 | ![MeiliDu responsive showcase.](gitHubAssets/showcase.png) 11 | 12 | # Get started 13 | 14 | :exclamation: Make sure your **Node version is 6.x or above** as the theme uses some ES6 syntax. :exclamation: 15 | 16 | 1. Get the [latest release](https://github.com/HoverBaum/meilidu-hexo/releases/latest), simply download the file **meilidu.zip**. (see below for cloning) 17 | 2. Unpack it into your **themes** folder. (You should now have a folder in your themes folder named "meilidu" which should not contain a folder named "meilidu") 18 | 3. Change your **_config.yml**: `theme: meilidu` 19 | 20 | ### Alternative: clone 21 | 22 | You can also manage the theme as a subproject of your website. Simply run the following in the root directory of your project. After that change the theme property in your projects `_config.yml`. 23 | 24 | ```bash 25 | git clone https://github.com/HoverBaum/meilidu-hexo.git themes/meilidu 26 | ``` 27 | 28 | # Get help and involved 29 | 30 | Below is a documentation of all features and how to use them as well as some *good to know* points. If you have any further questions or suggestions please open an issue. 31 | 32 | The issues are open to anyone looking for help or wishing to make a suggestion to improve the theme. 33 | 34 | # Features 35 | 36 | We have a few features you can configure and some that need to be enabled first. Check out the [Demo](https://meilidu.github.io/) to see them all in action. 37 | 38 | ### Widgets 39 | 40 | Add an array of all widgets you want to display in the footer in MeiliDus `_config.yml`. These should be the names of files in the `layout/_widgets` folder. A widget should always be wrapped in an *footer__element*, like such: 41 | 42 | ```html 43 | 46 | ``` 47 | 48 | ### Read more 49 | 50 | You can change the text of "read more" links by setting the `readMore` option in MeiliDus `_config.yml`. 51 | 52 | ```yml 53 | readMore: ...read more 54 | ``` 55 | 56 | ### RSS 57 | 58 | You can set the link to you RSS feed in MeiliDus `_config.yml`. 59 | 60 | ```yml 61 | rss: /atom.xml 62 | ``` 63 | 64 | You also need to install the [feed generator](https://github.com/hexojs/hexo-generator-feed) for this to work. 65 | 66 | ```bash 67 | npm install hexo-generator-feed --save 68 | ``` 69 | 70 | Make sure to use the `--save` option and run this in the root folder of your repository as it won't work otherwise. 71 | 72 | ### Tags page 73 | 74 | To activate the tags page create a `source/tags/index.md` with the following content. 75 | 76 | ```markdown 77 | title: "Tags" 78 | layout: "tags" 79 | --- 80 | ``` 81 | 82 | ### Categories page 83 | 84 | Activating the categories page is similar to tags, create a `source/categories/index.md` with the following content. 85 | 86 | ```markdown 87 | title: "Categories" 88 | layout: "categories" 89 | --- 90 | ``` 91 | 92 | ### About page 93 | 94 | Like any other page create a folder with the name of the page and an `index.md` file in it to have an about page. The most basic about page in `source/about/index.md` might look like this. 95 | 96 | ```markdown 97 | title: About 98 | layout: page 99 | --- 100 | 101 | This is a page about pages. It is the mother of all pages and pageception. 102 | ``` 103 | 104 | ### Archives 105 | 106 | If you archive is only showing the current years posts try adding the following yml to your sites `_config.yml` (not the one in meilidus folder). 107 | 108 | ```yml 109 | archive_generator: 110 | per_page: 0 111 | ``` 112 | 113 | ### Header 114 | 115 | It can have any size really. It will always fill half of the screens height when the user first arrives on the page. Simply replace `meilidu/source/img/header.jpg` with your own file. 116 | 117 | The default header is from [unspalsh](https://unsplash.com/search/landscape%20mountain?photo=Ni4NgA64TFQ), a picture by [Alberto Restifo](https://unsplash.com/@albertorestifo). 118 | 119 | ### Top menu 120 | 121 | To customize the menu at the top of the page simply change MeiliDus `_config.yml` and add your links to the `menu` object. Remove everything from it to hide the top menu. 122 | 123 | # Good to know 124 | 125 | #### Absolute URLs 126 | 127 | Hexo itself and the MeiliDu theme use a lot of absolute URLs (those starting with `/something`). Due to this you can only run your blog on a domain or subdomain but not as something like `domain.com/blog/`. To run a blog on GitHub check out [User pages](https://help.github.com/articles/user-organization-and-project-pages/) in the GitHub documentation. 128 | 129 | #### Using GitHub to host 130 | 131 | You can host websites for free on GitHub. The [Demo for MeiliDu](https://meilidu.github.io/) is a great example of this. I use [Travis](https://travis-ci.org/) to automate the generation of static files whenever we push to the master branch. Check out this [travis config file](https://gist.github.com/HoverBaum/d11361337d2c59f0de591c9c9390c1a9), it comes with explanation on how to use it. Personally I found it easiest to have a repo that contains the blog (this one) and one that is only there to get the page going. Travis then gets the current version, generates all files and pushes to the website repo. 132 | 133 | #### Why an Apple showcase??? 134 | 135 | Because two minutes of googleing found this [PSD showcase](http://www.pixeden.com/psd-web-elements/modern-psd-responsive-showcase) so that is what I went with. 136 | 137 | # Blogs using MeiliDu 138 | 139 | You are using MeiliDu for your blog? That is awesome! Let us know about it with a pull request and be featured here as an example for people to see how MeiliDu looks in the wild. 140 | 141 | - [HoverBaum](http://hoverbaum.gitlab.io/) 142 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | Archive: /archives 3 | Tags: /tags 4 | RSS: /atom.xml 5 | 6 | widgets: 7 | - greeting 8 | - site_links 9 | 10 | rss: /atom.xml 11 | 12 | readMore: ...read more 13 | 14 | feed: 15 | type: atom 16 | path: atom.xml 17 | limit: 20 18 | hub: 19 | 20 | tag_generator: 21 | per_page: 10 22 | -------------------------------------------------------------------------------- /demo-site/README.md: -------------------------------------------------------------------------------- 1 | # MeiliDu Demo 2 | 3 | ![Travis indicator](https://travis-ci.org/HoverBaum/meilidu-hexo.svg) 4 | 5 | This repository is for the [Demo website](https://meilidu.github.io), find the theme in it's [Repo](https://github.com/HoverBaum/meilidu-hexo). 6 | 7 | Workflow: 8 | 9 | - Maintain website in development branch 10 | - Pushes to the master of the theme repo trigger travis CI 11 | - It clones the development branch of this repo 12 | - Copies the theme into it and builds the website 13 | - Then pushed the generated site unto this repos master branch which updated the 14 | -------------------------------------------------------------------------------- /demo-site/_config.yml: -------------------------------------------------------------------------------- 1 | # Hexo Configuration 2 | ## Docs: http://hexo.io/docs/configuration.html 3 | ## Source: https://github.com/hexojs/hexo/ 4 | 5 | # Site 6 | title: MeiliDu 7 | subtitle: a beautiful read 8 | description: 9 | author: Hendrik Wallbaum 10 | language: 11 | timezone: 12 | 13 | # URL 14 | ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' 15 | url: http://127.0.0.1:4000 16 | root: / 17 | permalink: :year/:month/:day/:title/ 18 | permalink_defaults: 19 | 20 | # Directory 21 | source_dir: source 22 | public_dir: public 23 | tag_dir: tags 24 | archive_dir: archives 25 | category_dir: categories 26 | code_dir: downloads/code 27 | i18n_dir: :lang 28 | skip_render: 29 | 30 | # Writing 31 | new_post_name: :title.md # File name of new posts 32 | default_layout: post 33 | titlecase: false # Transform title into titlecase 34 | external_link: true # Open external links in new tab 35 | filename_case: 0 36 | render_drafts: false 37 | post_asset_folder: false 38 | relative_link: false 39 | future: true 40 | highlight: 41 | enable: true 42 | line_number: true 43 | auto_detect: true 44 | tab_replace: 45 | 46 | # Category & Tag 47 | default_category: uncategorized 48 | category_map: 49 | tag_map: 50 | 51 | # Date / Time format 52 | ## Hexo uses Moment.js to parse and display date 53 | ## You can customize the date format as defined in 54 | ## http://momentjs.com/docs/#/displaying/format/ 55 | date_format: DD.MM.YYYY 56 | time_format: HH:mm:ss 57 | 58 | # Pagination 59 | ## Set per_page to 0 to disable pagination 60 | per_page: 10 61 | pagination_dir: page 62 | 63 | # Extensions 64 | ## Plugins: http://hexo.io/plugins/ 65 | ## Themes: http://hexo.io/themes/ 66 | theme: meilidu 67 | 68 | # Deployment 69 | ## Docs: http://hexo.io/docs/deployment.html 70 | deploy: 71 | type: 72 | -------------------------------------------------------------------------------- /demo-site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-site", 3 | "version": "0.0.0", 4 | "private": true, 5 | "hexo": { 6 | "version": "3.8.0" 7 | }, 8 | "scripts": { 9 | "build": "hexo generate" 10 | }, 11 | "dependencies": { 12 | "hexo": "^3.1.0", 13 | "hexo-generator-archive": "^0.1.2", 14 | "hexo-generator-category": "^0.1.2", 15 | "hexo-generator-feed": "^1.2.0", 16 | "hexo-generator-index": "^0.1.2", 17 | "hexo-generator-tag": "^0.1.2", 18 | "hexo-renderer-ejs": "^0.1.0", 19 | "hexo-renderer-marked": "^0.2.4", 20 | "hexo-renderer-stylus": "^0.3.0", 21 | "hexo-server": "^0.1.2" 22 | }, 23 | "devDependencies": {} 24 | } 25 | -------------------------------------------------------------------------------- /demo-site/source/_posts/categories.md: -------------------------------------------------------------------------------- 1 | title: Categories 2 | date: 2013-12-24 23:30:09 3 | categories: 4 | - Foo 5 | - Bar 6 | - Baz 7 | --- 8 | 9 | This post contains 3 categories. Make sure your theme can display all of the categories. -------------------------------------------------------------------------------- /demo-site/source/_posts/elements.md: -------------------------------------------------------------------------------- 1 | title: Elements 2 | date: 2013-12-24 23:29:08 3 | tags: 4 | --- 5 | 6 | The purpose of this post is to help you make sure all of HTML elements can display properly. If you use CSS reset, don't forget to redefine the style by yourself. 7 | 8 | --- 9 | 10 | # Heading 1 11 | 12 | ## Heading 2 13 | 14 | ### Heading 3 15 | 16 | #### Heading 4 17 | 18 | ##### Heading 5 19 | 20 | ###### Heading 6 21 | 22 | --- 23 | 24 | ## Paragraph 25 | 26 | Lorem ipsum dolor sit amet, [test link]() consectetur adipiscing elit. **Strong text** pellentesque ligula commodo viverra vehicula. *Italic text* at ullamcorper enim. Morbi a euismod nibh. Underline text non elit nisl. ~~Deleted text~~ tristique, sem id condimentum tempus, metus lectus venenatis mauris, sit amet semper lorem felis a eros. Fusce egestas nibh at sagittis auctor. Sed ultricies ac arcu quis molestie. Donec dapibus nunc in nibh egestas, vitae volutpat sem iaculis. Curabitur sem tellus, elementum nec quam id, fermentum laoreet mi. Ut mollis ullamcorper turpis, vitae facilisis velit ultricies sit amet. Etiam laoreet dui odio, id tempus justo tincidunt id. Phasellus scelerisque nunc sed nunc ultricies accumsan. 27 | 28 | Interdum et malesuada fames ac ante ipsum primis in faucibus. `Sed erat diam`, blandit eget felis aliquam, rhoncus varius urna. Donec tellus sapien, sodales eget ante vitae, feugiat ullamcorper urna. Praesent auctor dui vitae dapibus eleifend. Proin viverra mollis neque, ut ullamcorper elit posuere eget. 29 | 30 | > Praesent diam elit, interdum ut pulvinar placerat, imperdiet at magna. 31 | 32 | Maecenas ornare arcu at mi suscipit, non molestie tortor ultrices. Aenean convallis, diam et congue ultricies, erat magna tincidunt orci, pulvinar posuere mi sapien ac magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent vitae placerat mauris. Nullam laoreet ante posuere tortor blandit auctor. Sed id ligula volutpat leo consequat placerat. Mauris fermentum dolor sed augue malesuada sollicitudin. Vivamus ultrices nunc felis, quis viverra orci eleifend ut. Donec et quam id urna cursus posuere. Donec elementum scelerisque laoreet. 33 | 34 | ## List Types 35 | 36 | ### Definition List (dl) 37 | 38 |
Definition List Title
This is a definition list division.
39 | 40 | ### Ordered List (ol) 41 | 42 | 1. List Item 1 43 | 2. List Item 2 44 | 3. List Item 3 45 | 46 | ### Unordered List (ul) 47 | 48 | - List Item 1 49 | - List Item 2 50 | - List Item 3 51 | 52 | ## Table 53 | 54 | | Table Header 1 | Table Header 2 | Table Header 3 | 55 | | - | - | - | 56 | | Division 1 | Division 2 | Division 3 | 57 | | Division 1 | Division 2 | Division 3 | 58 | | Division 1 | Division 2 | Division 3 | 59 | 60 | ## Misc Stuff - abbr, acronym, sub, sup, etc. 61 | 62 | Lorem superscript dolor subscript amet, consectetuer adipiscing elit. Nullam dignissim convallis est. Quisque aliquam. cite. Nunc iaculis suscipit dui. Nam sit amet sem. Aliquam libero nisi, imperdiet at, tincidunt nec, gravida vehicula, nisl. Praesent mattis, massa quis luctus fermentum, turpis mi volutpat justo, eu volutpat enim diam eget metus. Maecenas ornare tortor. Donec sed tellus eget sapien fringilla nonummy. NBA Mauris a ante. Suspendisse quam sem, consequat at, commodo vitae, feugiat in, nunc. Morbi imperdiet augue quis tellus. AVE -------------------------------------------------------------------------------- /demo-site/source/_posts/excerpts.md: -------------------------------------------------------------------------------- 1 | title: Excerpts 2 | date: 2013-12-25 00:23:23 3 | tags: 4 | --- 5 | 6 | The following contents should be invisible in home/archive page. 7 | 8 | 9 | 10 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget urna vitae velit eleifend interdum at ac nisi. In nec ligula lacus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed eu cursus erat, ut dapibus quam. Aliquam eleifend dolor vitae libero pharetra adipiscing. Etiam adipiscing dolor a quam tempor, eu convallis nulla varius. Aliquam sollicitudin risus a porta aliquam. Ut nec velit dolor. Proin eget leo lobortis, aliquam est sed, mollis mauris. Fusce vitae leo pretium massa accumsan condimentum. Fusce malesuada gravida lectus vel vulputate. Donec bibendum porta nibh ut aliquam. 11 | 12 | Sed lorem felis, congue non fringilla eu, aliquam eu eros. Curabitur orci libero, mollis sed semper vitae, adipiscing in lectus. Aenean non egestas odio. Donec sollicitudin nisi quis lorem gravida, in pharetra mauris fringilla. Duis sit amet faucibus dolor, id aliquam neque. In egestas, odio gravida tempor dictum, mauris felis faucibus purus, sit amet commodo lacus diam vitae est. Ut ut quam eget massa semper sodales. Aenean non ipsum cursus, blandit lectus in, ornare odio. Curabitur ultrices porttitor vulputate. -------------------------------------------------------------------------------- /demo-site/source/_posts/gallery-post.md: -------------------------------------------------------------------------------- 1 | title: Gallery Post 2 | date: 2013-12-25 00:16:18 3 | 4 | --- 5 | 6 | Currently not supported (maybe later, let me know what you think) 7 | 8 | This post contains 4 photos: 9 | 10 | - Widescreen wallpaper 11 | - Portrait photo 12 | - Dual widescreen wallpaper 13 | - Small photo 14 | 15 | All photos should be displayed properly. 16 | 17 | *From [Wallbase.cc](http://wallbase.cc)* 18 | -------------------------------------------------------------------------------- /demo-site/source/_posts/hello-world.md: -------------------------------------------------------------------------------- 1 | title: Hello World 2 | date: 2013-12-24 17:49:32 3 | tags: 4 | --- 5 | 6 | Welcome to [Hexo](http://zespia.tw/hexo)! This is your very first post. Check [documentation](http://zespia.tw/hexo/docs) to learn how to use. -------------------------------------------------------------------------------- /demo-site/source/_posts/images.md: -------------------------------------------------------------------------------- 1 | title: Images 2 | date: 2013-12-26 22:46:49 3 | tags: 4 | - first 5 | - post 6 | --- 7 | 8 | This is a image test post. 9 | 10 | ![](/assets/wallpaper-2572384.jpg) 11 | 12 | ![Caption](/assets/wallpaper-2311325.jpg) 13 | 14 | ![](/assets/wallpaper-878514.jpg) 15 | 16 | ![Small Picture](http://placehold.it/350x150.jpg) 17 | -------------------------------------------------------------------------------- /demo-site/source/_posts/inspiration.md: -------------------------------------------------------------------------------- 1 | title: Inspiration 2 | date: 2016-07-11 10:31:06 3 | categories: 4 | - MeiliDu Inspiration 5 | tags: 6 | - Hexo 7 | - Theme 8 | --- 9 | 10 | Have a list of cool things that inspired me to create this theme. 11 | 12 | 13 | 14 | - [Typography Handbook](http://typographyhandbook.com/) 15 | - [simple website](http://motherfuckingwebsite.com/) 16 | - [styled simple website](http://bettermotherfuckingwebsite.com/) 17 | - Another one with more styles that I can't find anymore.... 18 | 19 | This post also tests categories with spaces in them. 20 | -------------------------------------------------------------------------------- /demo-site/source/_posts/link-post-without-title.md: -------------------------------------------------------------------------------- 1 | date: 2013-12-24 23:44:13 2 | link: http://www.google.com/ 3 | --- 4 | 5 | This is a link post without a title. The title should be the link with or without protocol. Clicking on the link should open [Google](http://www.google.com/) in a new tab or window. -------------------------------------------------------------------------------- /demo-site/source/_posts/link-post.md: -------------------------------------------------------------------------------- 1 | title: Link Post 2 | date: 2013-12-24 23:30:04 3 | link: http://www.google.com/ 4 | --- 5 | 6 | This is a link post. But MeiliDu does not support link posts because that is not what this is for. 7 | -------------------------------------------------------------------------------- /demo-site/source/_posts/long-title.md: -------------------------------------------------------------------------------- 1 | title: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam justo turpis, tincidunt ac convallis id. 2 | date: 2013-12-24 23:31:06 3 | tags: 4 | --- 5 | 6 | This post has a long title. Make sure the title displayed right. -------------------------------------------------------------------------------- /demo-site/source/_posts/meilidu.md: -------------------------------------------------------------------------------- 1 | title: MeiliDu 2 | date: 2016-08-11 10:31:06 3 | categories: 4 | - meta 5 | tags: 6 | - Hexo 7 | - Theme 8 | --- 9 | 10 | Welcome to MeiliDu, *A beautiful read* indeed. 11 | 12 | This theme is focused around your readers reading your posts. It is created for text and code heavy posts, brightened by images. Find it on [GitHub](https://github.com/HoverBaum/meilidu-hexo). 13 | 14 | Get the [latest release](https://github.com/HoverBaum/meilidu-hexo/releases/latest). 15 | 16 | This is the blog used to test Hexo ([source](https://github.com/hexojs/hexo-theme-unit-test)). The entries here are meant to illustrate features and visualize design elements. 17 | For more examples your can find a list of [blogs using MeiliDu](https://github.com/HoverBaum/meilidu-hexo#blogs-using-meilidu) in the Repo. 18 | -------------------------------------------------------------------------------- /demo-site/source/_posts/no-title.md: -------------------------------------------------------------------------------- 1 | date: 2013-12-25 22:57:49 2 | tags: 3 | --- 4 | 5 | This post doesn't have a title. Make sure it's accessible. -------------------------------------------------------------------------------- /demo-site/source/_posts/tag-plugins.md: -------------------------------------------------------------------------------- 1 | title: Tag Plugins 2 | date: 2013-12-25 00:14:39 3 | tags: 4 | --- 5 | 6 | This post is used for testing tag plugins. See [docs](http://zespia.tw/hexo/docs/tag-plugins.html) for more info. 7 | 8 | ## Block Quote 9 | 10 | ### Normal blockquote 11 | 12 | > Praesent diam elit, interdum ut pulvinar placerat, imperdiet at magna. 13 | 14 | ### Quote from a book 15 | 16 | {% blockquote David Levithan, Wide Awake %} 17 | Do not just seek happiness for yourself. Seek happiness for all. Through kindness. Through mercy. 18 | {% endblockquote %} 19 | 20 | ### Quote from Twitter 21 | 22 | {% blockquote @DevDocs https://twitter.com/devdocs/status/356095192085962752 %} 23 | NEW: DevDocs now comes with syntax highlighting. http://devdocs.io 24 | {% endblockquote %} 25 | 26 | ### Quote from an article on the web 27 | 28 | {% blockquote Seth Godin http://sethgodin.typepad.com/seths_blog/2009/07/welcome-to-island-marketing.html Welcome to Island Marketing %} 29 | Every interaction is both precious and an opportunity to delight. 30 | {% endblockquote %} 31 | 32 | ## Code Block 33 | 34 | ### Normal code block 35 | 36 | ``` 37 | alert('Hello World!'); 38 | ``` 39 | 40 | ### With caption 41 | 42 | {% codeblock Array.map %} 43 | array.map(callback[, thisArg]) 44 | {% endcodeblock %} 45 | 46 | ### With caption and URL 47 | 48 | {% codeblock .compact http://underscorejs.org/#compact Underscore.js %} 49 | .compact([0, 1, false, 2, ‘’, 3]); 50 | => [1, 2, 3] 51 | {% endcodeblock %} 52 | 53 | ### With marked lines 54 | 55 | Line 1,7-8,10 should be marked with different color. 56 | 57 | {% codeblock lang:js mark:1,7-8,10 %} 58 | const http = require('http'); 59 | 60 | const hostname = '127.0.0.1'; 61 | const port = 1337; 62 | 63 | http.createServer((req, res) => { 64 | res.writeHead(200, { 'Content-Type': 'text/plain' }); 65 | res.end('Hello World\n'); 66 | }).listen(port, hostname, () => { 67 | console.log(`Server running at http://${hostname}:${port}/`); 68 | }); 69 | {% endcodeblock %} 70 | 71 | Note: Theme's style should support `.highlight.line.marked` (recommend to use the selection or current line color). 72 | 73 | ### Gist 74 | 75 | {% gist 996818 %} 76 | 77 | ### jsFiddle 78 | 79 | {% jsfiddle ccWP7 %} 80 | 81 | ## Pullquote 82 | 83 | ### Left 84 | 85 | {% pullquote left %} 86 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. 87 | {% endpullquote %} 88 | 89 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas tempus molestie arcu, et fringilla mauris placerat ac. Nullam luctus bibendum risus. Ut cursus sed ipsum feugiat egestas. Suspendisse elementum, velit eu consequat consequat, augue lorem dapibus libero, eget pulvinar dolor est sit amet nulla. Suspendisse a porta tortor, et posuere mi. Pellentesque ultricies, mi quis volutpat malesuada, erat felis vulputate nisl, ac congue ante tortor ut ante. Proin aliquam sem vel mauris tincidunt, eget scelerisque tortor euismod. Nulla tincidunt enim nec commodo dictum. Mauris id sapien et orci gravida luctus id ut dui. In vel vulputate odio. Duis vel turpis molestie, scelerisque enim eu, lobortis eros. Cras at ipsum gravida, sagittis ante vel, viverra tellus. Nunc mauris turpis, elementum ullamcorper nisl pretium, ultrices cursus justo. Mauris porttitor commodo eros, ac ornare orci interdum in. Cras fermentum cursus leo sed mattis. In dignissim lorem sem, sit amet elementum mauris venenatis ac. 90 | 91 | ### Right 92 | 93 | {% pullquote right %} 94 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. 95 | {% endpullquote %} 96 | 97 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ligula justo, lobortis sit amet semper vel, dignissim sit amet libero. Praesent ac tempus ligula. Maecenas at gravida odio. Etiam tristique volutpat lacus eu faucibus. Donec non tempus arcu. Phasellus adipiscing, mauris nec mollis egestas, ipsum nunc auctor velit, et rhoncus lorem ipsum at ante. Praesent et sem in velit volutpat auctor. Duis vel mauris nulla. Maecenas mattis interdum ante, quis sagittis nibh cursus et. Nulla facilisi. Morbi convallis gravida tortor, ut fermentum enim gravida et. Nunc vel dictum nisl, non ultrices libero. Proin vestibulum felis eget orci consectetur lobortis. Vestibulum augue nulla, iaculis vitae augue vehicula, dignissim ultrices libero. Sed imperdiet urna et quam ultrices tincidunt nec ac magna. Etiam vel pharetra elit. 98 | -------------------------------------------------------------------------------- /demo-site/source/_posts/tags.md: -------------------------------------------------------------------------------- 1 | title: Tags 2 | date: 2013-12-24 23:29:53 3 | tags: 4 | - Foo 5 | - Bar 6 | - Baz 7 | --- 8 | 9 | This post contains 3 tags. Make sure your theme can display all of the tags. -------------------------------------------------------------------------------- /demo-site/source/_posts/videos.md: -------------------------------------------------------------------------------- 1 | title: Videos 2 | date: 2013-12-25 00:19:15 3 | tags: 4 | --- 5 | 6 | This is a video test post. 7 | 8 | **Youtube** 9 | 10 | {% youtube TIbZDRXM-Tg %} 11 | 12 | **Vimeo** 13 | 14 | {% vimeo 82090131 %} -------------------------------------------------------------------------------- /demo-site/source/_posts/中文測試.md: -------------------------------------------------------------------------------- 1 | title: 中文測試 2 | date: 2013-12-24 23:31:30 3 | tags: 4 | --- 5 | 6 | This is a Chinese test post. 7 | 8 | 善我王上魚、產生資西員合兒臉趣論。畫衣生這著爸毛親可時,安程幾?合學作。觀經而作建。都非子作這!法如言子你關!手師也。 9 | 10 | 以也座論頭室業放。要車時地變此親不老高小是統習直麼調未,行年香一? 11 | 12 | 就竟在,是我童示讓利分和異種百路關母信過明驗有個歷洋中前合著區亮風值新底車有正結,進快保的行戰從:弟除文辦條國備當來際年每小腳識世可的的外的廣下歌洲保輪市果底天影;全氣具些回童但倒影發狀在示,數上學大法很,如要我……月品大供這起服滿老?應學傳者國:山式排只不之然清同關;細車是!停屋常間又,資畫領生,相們制在?公別的人寫教資夠。資再我我!只臉夫藝量不路政吃息緊回力之;兒足灣電空時局我怎初安。意今一子區首者微陸現際安除發連由子由而走學體區園我車當會,經時取頭,嚴了新科同?很夫營動通打,出和導一樂,查旅他。坐是收外子發物北看蘭戰坐車身做可來。道就學務。 13 | 14 | 國新故。 15 | 16 | > 工步他始能詩的,裝進分星海演意學值例道……於財型目古香亮自和這乎?化經溫詩。只賽嚴大一主價世哥受的沒有中年即病行金拉麼河。主小路了種就小為廣不? 17 | 18 | *From [亂數假文產生器 - Chinese Lorem Ipsum](http://www.richyli.com/tool/loremipsum/)* -------------------------------------------------------------------------------- /demo-site/source/_posts/日本語テスト.md: -------------------------------------------------------------------------------- 1 | title: 日本語テスト 2 | date: 2013-12-24 23:33:26 3 | tags: 4 | --- 5 | 6 | This is a Japanese test post. 7 | 8 | 私は昨日ついにその助力家というのの上よりするたなけれ。 9 | 10 | 最も今をお話団はちょうどこの前後なかろでくらいに困りがいるたをは帰着考えたなかって、そうにもするでうたらない。 11 | 12 | がたを知っないはずも同時に九月をいよいよたありた。 13 | 14 | もっと槙さんにぼんやり金少し説明にえた自分大した人私か影響にというお関係たうませないが、この次第も私か兄具合に使うて、槙さんののに当人のあなたにさぞご意味と行くて私個人が小尊敬を聴いように同時に同反抗に集っだうて、いよいよまず相当へあっうからいだ事をしでなけれ。 15 | 16 | > それでそれでもご時日をしはずはたったいやと突き抜けるますて、その元がは行ったてという獄を尽すていけですた。 17 | 18 | この中道具の日その学校はあなたごろがすまなりかとネルソンさんの考えるですん、辺の事実ないというご盲従ありたですと、爺さんのためが薬缶が結果までの箸の当時してならて、多少の十月にためからそういう上からとにかくしましないと触れべきものたで、ないうですと多少お人達したのでたた。 19 | 20 | *From [すぐ使えるダミーテキスト - 日本語 Lorem ipsum](http://lipsum.sugutsukaeru.jp/index.cgi)* -------------------------------------------------------------------------------- /demo-site/source/about/index.md: -------------------------------------------------------------------------------- 1 | title: About 2 | layout: page 3 | date: 2016-08-10 22:52:56 4 | --- 5 | 6 | This is a page about pages. It is the mother of all pages and pageception. 7 | -------------------------------------------------------------------------------- /demo-site/source/assets/wallpaper-2311325.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/demo-site/source/assets/wallpaper-2311325.jpg -------------------------------------------------------------------------------- /demo-site/source/assets/wallpaper-2572384.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/demo-site/source/assets/wallpaper-2572384.jpg -------------------------------------------------------------------------------- /demo-site/source/assets/wallpaper-878514.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/demo-site/source/assets/wallpaper-878514.jpg -------------------------------------------------------------------------------- /demo-site/source/categories/index.md: -------------------------------------------------------------------------------- 1 | title: "Categories" 2 | layout: "categories" 3 | --- 4 | -------------------------------------------------------------------------------- /demo-site/source/page/index.md: -------------------------------------------------------------------------------- 1 | title: Page 2 | date: 2013-12-26 22:52:56 3 | --- 4 | 5 | This is a page test. -------------------------------------------------------------------------------- /demo-site/source/tags/index.md: -------------------------------------------------------------------------------- 1 | title: "Tags" 2 | layout: "tags" 3 | --- 4 | -------------------------------------------------------------------------------- /docs/2013/12/24/categories/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Categories | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Categories

35 | 36 | 45 | 46 | 47 | 48 | 49 |

This post contains 3 categories. Make sure your theme can display all of the categories.

50 | 51 | 52 | 53 | 54 | ⬅️ Go back 55 | 56 | 57 | 58 |
59 | 60 |
61 | 62 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /docs/2013/12/24/excerpts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Excerpts | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Excerpts

35 | 36 | 41 | 42 | 43 | 44 | 45 |

The following contents should be invisible in home/archive page.

46 | 47 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget urna vitae velit eleifend interdum at ac nisi. In nec ligula lacus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed eu cursus erat, ut dapibus quam. Aliquam eleifend dolor vitae libero pharetra adipiscing. Etiam adipiscing dolor a quam tempor, eu convallis nulla varius. Aliquam sollicitudin risus a porta aliquam. Ut nec velit dolor. Proin eget leo lobortis, aliquam est sed, mollis mauris. Fusce vitae leo pretium massa accumsan condimentum. Fusce malesuada gravida lectus vel vulputate. Donec bibendum porta nibh ut aliquam.

48 |

Sed lorem felis, congue non fringilla eu, aliquam eu eros. Curabitur orci libero, mollis sed semper vitae, adipiscing in lectus. Aenean non egestas odio. Donec sollicitudin nisi quis lorem gravida, in pharetra mauris fringilla. Duis sit amet faucibus dolor, id aliquam neque. In egestas, odio gravida tempor dictum, mauris felis faucibus purus, sit amet commodo lacus diam vitae est. Ut ut quam eget massa semper sodales. Aenean non ipsum cursus, blandit lectus in, ornare odio. Curabitur ultrices porttitor vulputate.

49 | 50 | 51 | 52 | 53 | ⬅️ Go back 54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /docs/2013/12/24/gallery-post/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Gallery Post | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Gallery Post

35 | 36 | 41 | 42 | 43 | 44 | 45 |

Currently not supported (maybe later, let me know what you think)

46 |

This post contains 4 photos:

47 | 53 |

All photos should be displayed properly.

54 |

From Wallbase.cc

55 | 56 | 57 | 58 | 59 | ⬅️ Go back 60 | 61 | 62 | 63 |
64 | 65 |
66 | 67 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /docs/2013/12/24/hello-world/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello World | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Hello World

35 | 36 | 41 | 42 | 43 | 44 | 45 |

Welcome to Hexo! This is your very first post. Check documentation to learn how to use.

46 | 47 | 48 | 49 | 50 | ⬅️ Go back 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/2013/12/24/link-post-without-title/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | www.google.com | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

www.google.com

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This is a link post without a title. The title should be the link with or without protocol. Clicking on the link should open Google in a new tab or window.

46 | 47 | 48 | 49 | 50 | ⬅️ Go back 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/2013/12/24/link-post/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Link Post | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Link Post

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This is a link post. But MeiliDu does not support link posts because that is not what this is for.

46 | 47 | 48 | 49 | 50 | ⬅️ Go back 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/2013/12/24/long-title/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam justo turpis, tincidunt ac convallis id. | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam justo turpis, tincidunt ac convallis id.

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This post has a long title. Make sure the title displayed right.

46 | 47 | 48 | 49 | 50 | ⬅️ Go back 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/2013/12/24/tags/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Tags | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Tags

35 | 36 | 45 | 46 | 47 | 48 | 49 |

This post contains 3 tags. Make sure your theme can display all of the tags.

50 | 51 | 52 | 53 | 54 | ⬅️ Go back 55 | 56 | 57 | 58 |
59 | 60 |
61 | 62 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /docs/2013/12/24/videos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Videos | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Videos

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This is a video test post.

46 |

Youtube

47 |
48 |

Vimeo

49 |
50 | 51 | 52 | 53 | ⬅️ Go back 54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /docs/2013/12/24/中文測試/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 中文測試 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

中文測試

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This is a Chinese test post.

46 |

善我王上魚、產生資西員合兒臉趣論。畫衣生這著爸毛親可時,安程幾?合學作。觀經而作建。都非子作這!法如言子你關!手師也。

47 |

以也座論頭室業放。要車時地變此親不老高小是統習直麼調未,行年香一?

48 |

就竟在,是我童示讓利分和異種百路關母信過明驗有個歷洋中前合著區亮風值新底車有正結,進快保的行戰從:弟除文辦條國備當來際年每小腳識世可的的外的廣下歌洲保輪市果底天影;全氣具些回童但倒影發狀在示,數上學大法很,如要我……月品大供這起服滿老?應學傳者國:山式排只不之然清同關;細車是!停屋常間又,資畫領生,相們制在?公別的人寫教資夠。資再我我!只臉夫藝量不路政吃息緊回力之;兒足灣電空時局我怎初安。意今一子區首者微陸現際安除發連由子由而走學體區園我車當會,經時取頭,嚴了新科同?很夫營動通打,出和導一樂,查旅他。坐是收外子發物北看蘭戰坐車身做可來。道就學務。

49 |

國新故。

50 |
51 |

工步他始能詩的,裝進分星海演意學值例道……於財型目古香亮自和這乎?化經溫詩。只賽嚴大一主價世哥受的沒有中年即病行金拉麼河。主小路了種就小為廣不?

52 |
53 |

From 亂數假文產生器 - Chinese Lorem Ipsum

54 | 55 | 56 | 57 | 58 | ⬅️ Go back 59 | 60 | 61 | 62 |
63 | 64 |
65 | 66 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /docs/2013/12/24/日本語テスト/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 日本語テスト | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

日本語テスト

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This is a Japanese test post.

46 |

私は昨日ついにその助力家というのの上よりするたなけれ。

47 |

最も今をお話団はちょうどこの前後なかろでくらいに困りがいるたをは帰着考えたなかって、そうにもするでうたらない。

48 |

がたを知っないはずも同時に九月をいよいよたありた。

49 |

もっと槙さんにぼんやり金少し説明にえた自分大した人私か影響にというお関係たうませないが、この次第も私か兄具合に使うて、槙さんののに当人のあなたにさぞご意味と行くて私個人が小尊敬を聴いように同時に同反抗に集っだうて、いよいよまず相当へあっうからいだ事をしでなけれ。

50 |
51 |

それでそれでもご時日をしはずはたったいやと突き抜けるますて、その元がは行ったてという獄を尽すていけですた。

52 |
53 |

この中道具の日その学校はあなたごろがすまなりかとネルソンさんの考えるですん、辺の事実ないというご盲従ありたですと、爺さんのためが薬缶が結果までの箸の当時してならて、多少の十月にためからそういう上からとにかくしましないと触れべきものたで、ないうですと多少お人達したのでたた。

54 |

From すぐ使えるダミーテキスト - 日本語 Lorem ipsum

55 | 56 | 57 | 58 | 59 | ⬅️ Go back 60 | 61 | 62 | 63 |
64 | 65 |
66 | 67 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /docs/2013/12/25/no-title/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

35 | 36 | 41 | 42 | 43 | 44 | 45 |

This post doesn’t have a title. Make sure it’s accessible.

46 | 47 | 48 | 49 | 50 | ⬅️ Go back 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /docs/2013/12/26/images/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Images | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Images

35 | 36 | 45 | 46 | 47 | 48 | 49 |

This is a image test post.

50 |

51 |

Caption
Caption

52 |

53 |

Small Picture
Small Picture

54 | 55 | 56 | 57 | 58 | ⬅️ Go back 59 | 60 | 61 | 62 |
63 | 64 |
65 | 66 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /docs/2016/07/11/inspiration/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Inspiration | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

Inspiration

35 | 36 | 49 | 50 | 51 | 52 | 53 |

Have a list of cool things that inspired me to create this theme.

54 | 55 | 61 |

This post also tests categories with spaces in them.

62 | 63 | 64 | 65 | 66 | ⬅️ Go back 67 | 68 | 69 | 70 |
71 | 72 |
73 | 74 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /docs/2016/08/11/meilidu/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 | 34 |

MeiliDu

35 | 36 | 49 | 50 | 51 | 52 | 53 |

Welcome to MeiliDu, A beautiful read indeed.

54 |

This theme is focused around your readers reading your posts. It is created for text and code heavy posts, brightened by images. Find it on GitHub.

55 |

Get the latest release.

56 |

This is the blog used to test Hexo (source). The entries here are meant to illustrate features and visualize design elements.
For more examples your can find a list of blogs using MeiliDu in the Repo.

57 | 58 | 59 | 60 | 61 | ⬅️ Go back 62 | 63 | 64 | 65 |
66 | 67 |
68 | 69 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /docs/about/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | About | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 |

About

34 | 35 |

This is a page about pages. It is the mother of all pages and pageception.

36 | 37 | 38 |
39 | 40 |
41 | 42 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /docs/archives/2013/12/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 78 | 79 | 88 | 89 |
90 | 91 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /docs/archives/2013/12/page/2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 68 | 69 | 78 | 79 |
80 | 81 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /docs/archives/2013/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 78 | 79 | 88 | 89 |
90 | 91 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /docs/archives/2013/page/2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 68 | 69 | 78 | 79 |
80 | 81 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /docs/archives/2016/07/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 60 | 61 | 70 | 71 |
72 | 73 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /docs/archives/2016/08/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 60 | 61 | 70 | 71 |
72 | 73 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /docs/archives/2016/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 70 | 71 | 80 | 81 |
82 | 83 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /docs/archives/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 102 | 103 | 112 | 113 |
114 | 115 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /docs/archives/page/2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Archive

33 | 34 | 35 | 36 | 37 | 38 | 72 | 73 | 82 | 83 |
84 | 85 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /docs/assets/wallpaper-2311325.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/assets/wallpaper-2311325.jpg -------------------------------------------------------------------------------- /docs/assets/wallpaper-2572384.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/assets/wallpaper-2572384.jpg -------------------------------------------------------------------------------- /docs/assets/wallpaper-878514.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/assets/wallpaper-878514.jpg -------------------------------------------------------------------------------- /docs/categories/Foo/Bar/Baz/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

Foo

35 | 36 | 37 | 38 | 101 | 102 |
103 | 104 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /docs/categories/Foo/Bar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

Foo

35 | 36 | 37 | 38 | 101 | 102 |
103 | 104 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /docs/categories/Foo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

Foo

35 | 36 | 37 | 38 | 101 | 102 |
103 | 104 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /docs/categories/MeiliDu-Inspiration/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

MeiliDu Inspiration

35 | 36 | 37 | 38 | 101 | 102 |
103 | 104 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /docs/categories/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Categories | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |

Categories

33 | 34 | 357 | 358 | 367 | 368 |
369 | 370 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | -------------------------------------------------------------------------------- /docs/categories/meta/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

meta

35 | 36 | 37 | 38 | 101 | 102 |
103 | 104 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /docs/css/archive.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | .archive { 21 | width: 50rem; 22 | max-width: 100%; 23 | padding: 3rem; 24 | display: block; 25 | font-size: 2.369rem; 26 | } 27 | .archive li { 28 | list-style-type: none; 29 | cursor: pointer; 30 | } 31 | .archive__year > span:hover { 32 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 33 | background-image: linear-gradient(#33474d, #33474d); 34 | background-size: 1px 1px; 35 | background-repeat: repeat-x; 36 | background-position: 0% 95%; 37 | color: #33474d; 38 | text-decoration: none; 39 | } 40 | .archive__year > span:hover::selection { 41 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 42 | background: #33474d; 43 | } 44 | .archive__year > span:hover::-moz-selection { 45 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 46 | background: #33474d; 47 | } 48 | .archive__year > span:hover *, 49 | .archive__year > span:hover *:after, 50 | .archive__year > span:hover:after, 51 | .archive__year > span:hover *:before, 52 | .archive__year > span:hover:before { 53 | text-shadow: none; 54 | } 55 | .archive__year > span:hover:visited { 56 | color: #33474d; 57 | } 58 | .archive__month { 59 | font-family: fonstSerif; 60 | font-size: 1.777rem; 61 | color: #425c64; 62 | } 63 | .archive__month > span:hover { 64 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 65 | background-image: linear-gradient(#425c64, #425c64); 66 | background-size: 1px 1px; 67 | background-repeat: repeat-x; 68 | background-position: 0% 95%; 69 | color: #425c64; 70 | text-decoration: none; 71 | } 72 | .archive__month > span:hover::selection { 73 | text-shadow: 0.03em 0 #425c64, -0.03em 0 #425c64, 0 0.03em #425c64, 0 -0.03em #425c64, 0.06em 0 #425c64, -0.06em 0 #425c64, 0.09em 0 #425c64, -0.09em 0 #425c64, 0.12em 0 #425c64, -0.12em 0 #425c64, 0.15em 0 #425c64, -0.15em 0 #425c64; 74 | background: #425c64; 75 | } 76 | .archive__month > span:hover::-moz-selection { 77 | text-shadow: 0.03em 0 #425c64, -0.03em 0 #425c64, 0 0.03em #425c64, 0 -0.03em #425c64, 0.06em 0 #425c64, -0.06em 0 #425c64, 0.09em 0 #425c64, -0.09em 0 #425c64, 0.12em 0 #425c64, -0.12em 0 #425c64, 0.15em 0 #425c64, -0.15em 0 #425c64; 78 | background: #425c64; 79 | } 80 | .archive__month > span:hover *, 81 | .archive__month > span:hover *:after, 82 | .archive__month > span:hover:after, 83 | .archive__month > span:hover *:before, 84 | .archive__month > span:hover:before { 85 | text-shadow: none; 86 | } 87 | .archive__month > span:hover:visited { 88 | color: #425c64; 89 | } 90 | .archive .archive__entry { 91 | font-family: "Noto Sans", sans-serif; 92 | list-style-type: disc; 93 | font-size: 1.333rem; 94 | margin-left: 1rem; 95 | } 96 | .archive__entry > a { 97 | color: #51717b; 98 | } 99 | .archive__entry > a:hover { 100 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 101 | background-image: linear-gradient(#51717b, #51717b); 102 | background-size: 1px 1px; 103 | background-repeat: repeat-x; 104 | background-position: 0% 95%; 105 | color: #51717b; 106 | text-decoration: none; 107 | } 108 | .archive__entry > a:hover::selection { 109 | text-shadow: 0.03em 0 #51717b, -0.03em 0 #51717b, 0 0.03em #51717b, 0 -0.03em #51717b, 0.06em 0 #51717b, -0.06em 0 #51717b, 0.09em 0 #51717b, -0.09em 0 #51717b, 0.12em 0 #51717b, -0.12em 0 #51717b, 0.15em 0 #51717b, -0.15em 0 #51717b; 110 | background: #51717b; 111 | } 112 | .archive__entry > a:hover::-moz-selection { 113 | text-shadow: 0.03em 0 #51717b, -0.03em 0 #51717b, 0 0.03em #51717b, 0 -0.03em #51717b, 0.06em 0 #51717b, -0.06em 0 #51717b, 0.09em 0 #51717b, -0.09em 0 #51717b, 0.12em 0 #51717b, -0.12em 0 #51717b, 0.15em 0 #51717b, -0.15em 0 #51717b; 114 | background: #51717b; 115 | } 116 | .archive__entry > a:hover *, 117 | .archive__entry > a:hover *:after, 118 | .archive__entry > a:hover:after, 119 | .archive__entry > a:hover *:before, 120 | .archive__entry > a:hover:before { 121 | text-shadow: none; 122 | } 123 | .archive__entry > a:hover:visited { 124 | color: #51717b; 125 | } 126 | .archive__expendable { 127 | margin-top: 0.5em; 128 | height: auto; 129 | } 130 | .archive__expendable:before { 131 | content: "▻"; 132 | display: inline-block; 133 | -webkit-transform: rotate(90deg); 134 | -moz-transform: rotate(90deg); 135 | -o-transform: rotate(90deg); 136 | -ms-transform: rotate(90deg); 137 | transform: rotate(90deg); 138 | } 139 | .archive__expendable.archive__expendable_collapsed { 140 | height: 1.3em; 141 | overflow-y: hidden; 142 | } 143 | .archive__expendable.archive__expendable_collapsed:before { 144 | -webkit-transform: rotate(0deg); 145 | -moz-transform: rotate(0deg); 146 | -o-transform: rotate(0deg); 147 | -ms-transform: rotate(0deg); 148 | transform: rotate(0deg); 149 | } 150 | .archive__expendable.archive__expendable_disabled span:hover { 151 | cursor: default; 152 | text-shadow: none; 153 | background-image: none; 154 | } 155 | .archive__expendable.archive__expendable_disabled:before { 156 | content: ""; 157 | } 158 | -------------------------------------------------------------------------------- /docs/css/article.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | article { 21 | width: 50rem; 22 | max-width: 100%; 23 | text-align: justify; 24 | margin: 0 2rem; 25 | margin-bottom: 2rem; 26 | position: relative; 27 | } 28 | @media only screen and (max-width: 40em) { 29 | article { 30 | width: 90%; 31 | } 32 | article h1 { 33 | overflow: hidden; 34 | } 35 | article p a { 36 | word-break: normal; 37 | } 38 | p a, 39 | blockquote a, 40 | figure a { 41 | word-break: break-all; 42 | } 43 | } 44 | article h1 { 45 | font-family: "Noto Serif", serif; 46 | } 47 | h1, 48 | h2, 49 | strong { 50 | color: #3c4447; 51 | } 52 | h1 a, 53 | h2 a, 54 | h3 a, 55 | h4 a, 56 | h5 a { 57 | font-style: normal; 58 | } 59 | h1, 60 | h2, 61 | h3, 62 | h4, 63 | h5 { 64 | margin-top: 1em; 65 | margin-bottom: 1rem; 66 | text-align: left; 67 | } 68 | article h1 a { 69 | background: inherit; 70 | } 71 | ul, 72 | ol { 73 | margin: 0.5rem 0; 74 | } 75 | li { 76 | padding: 0.2rem 0; 77 | } 78 | .figure { 79 | margin: 2rem 0; 80 | } 81 | .figure__caption { 82 | text-align: center; 83 | font-size: 0.8em; 84 | margin-top: 0.2em; 85 | } 86 | img { 87 | max-width: 100%; 88 | margin: 0 auto; 89 | display: block; 90 | border-radius: 0.2rem; 91 | } 92 | .highlight { 93 | margin: 0; 94 | margin-bottom: 1rem; 95 | } 96 | blockquote { 97 | color: #3c4447; 98 | border-left: 0.7rem solid #2a4a54; 99 | margin: 2rem 1rem; 100 | padding: 0.5rem 1rem; 101 | quotes: "\201C" "\201D" "\2018" "\2019"; 102 | } 103 | blockquote:before { 104 | color: #2a4a54; 105 | content: "\201C" /*Unicode for Left Double Quote*/; 106 | font-size: 4em; 107 | line-height: 0.1em; 108 | margin-right: 0.25em; 109 | vertical-align: -0.4em; 110 | } 111 | blockquote p { 112 | display: inline; 113 | font-family: "Noto Serif", serif; 114 | } 115 | blockquote cite:before { 116 | content: "\2014 \2009"; 117 | } 118 | article:hover blockquote a { 119 | color: currentColor; 120 | } 121 | table { 122 | width: 100%; 123 | border-spacing: 0; 124 | } 125 | table th { 126 | border-bottom: 1px solid #3c4447; 127 | padding: 0.8rem; 128 | } 129 | table td { 130 | padding: 0.8rem; 131 | border-bottom: 1px solid #d6dbdc; 132 | } 133 | table tbody tr:hover { 134 | background-color: #e4f7fe; 135 | } 136 | .article__tag-link:before { 137 | content: '#'; 138 | } 139 | .article__infos { 140 | font-size: 0.7rem; 141 | position: absolute; 142 | left: -8.5rem; 143 | width: 8rem; 144 | text-align: right; 145 | } 146 | .article__infos a { 147 | text-shadow: none; 148 | background: inherit; 149 | } 150 | @media only screen and (max-width: 64em) { 151 | .article__infos { 152 | position: relative; 153 | left: 0; 154 | text-align: left; 155 | width: auto; 156 | } 157 | .article__infos br { 158 | display: none; 159 | } 160 | .article__infos span { 161 | margin-right: 1em; 162 | } 163 | } 164 | .post__info span { 165 | margin-right: 1em; 166 | } 167 | iframe { 168 | width: 100%; 169 | height: 28.125rem; 170 | } 171 | .pullquote { 172 | width: 45%; 173 | margin: 0; 174 | } 175 | .pullquote.left { 176 | margin-left: 0.5em; 177 | margin-right: 1em; 178 | float: left; 179 | } 180 | .pullquote.right { 181 | margin-left: 1em; 182 | margin-right: 0.5em; 183 | float: right; 184 | } 185 | article .different-posts { 186 | margin-top: 4rem; 187 | } 188 | -------------------------------------------------------------------------------- /docs/css/fonts/Inconsolata/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Inconsolata/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Inconsolata/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Inconsolata/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Sans/NotoSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Sans/NotoSans-Bold.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Sans/NotoSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Sans/NotoSans-BoldItalic.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Sans/NotoSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Sans/NotoSans-Italic.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Sans/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Sans/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Serif/NotoSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Serif/NotoSerif-Bold.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Serif/NotoSerif-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Serif/NotoSerif-BoldItalic.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Serif/NotoSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Serif/NotoSerif-Italic.ttf -------------------------------------------------------------------------------- /docs/css/fonts/Noto_Serif/NotoSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/fonts/Noto_Serif/NotoSerif-Regular.ttf -------------------------------------------------------------------------------- /docs/css/footer.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | .footer { 21 | background-color: #33474d; 22 | color: #f9fafa; 23 | padding-top: 2rem; 24 | padding-bottom: 1rem; 25 | display: flex; 26 | flex-direction: row; 27 | justify-content: center; 28 | } 29 | .footer p { 30 | margin: 0; 31 | max-width: 100%; 32 | } 33 | .footer-content { 34 | display: flex; 35 | flex-direction: row; 36 | justify-content: flex-start; 37 | flex-wrap: wrap; 38 | width: contentWidth; 39 | } 40 | .footer__element { 41 | padding: 1rem; 42 | width: 12.5rem; 43 | box-sizing: border-box; 44 | } 45 | .footer__element h5 { 46 | margin-top: 0; 47 | } 48 | @media only screen and (max-width: 40em) { 49 | .footer__element { 50 | width: 100%; 51 | font-size: 1.2rem; 52 | } 53 | } 54 | @media only screen and (min-width: 40.063em) and (max-width: 64em) { 55 | .footer__element { 56 | width: 50%; 57 | font-size: 1.2rem; 58 | } 59 | } 60 | .footer-links { 61 | margin: 0; 62 | padding: 0; 63 | } 64 | .footer-links__link { 65 | list-style-type: none; 66 | } 67 | .footer a { 68 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 69 | background-image: linear-gradient(#f9fafa, #f9fafa); 70 | background-size: 1px 1px; 71 | background-repeat: repeat-x; 72 | background-position: 0% 95%; 73 | color: #f9fafa; 74 | text-decoration: none; 75 | } 76 | .footer a::selection { 77 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 78 | background: #f9fafa; 79 | } 80 | .footer a::-moz-selection { 81 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 82 | background: #f9fafa; 83 | } 84 | .footer a *, 85 | .footer a *:after, 86 | .footer a:after, 87 | .footer a *:before, 88 | .footer a:before { 89 | text-shadow: none; 90 | } 91 | .footer a:visited { 92 | color: #f9fafa; 93 | } 94 | .footer a:hover { 95 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 96 | background-image: linear-gradient(#0ba6d7, #0ba6d7); 97 | background-size: 1px 1px; 98 | background-repeat: repeat-x; 99 | background-position: 0% 95%; 100 | color: #0ba6d7; 101 | text-decoration: none; 102 | } 103 | .footer a:hover::selection { 104 | text-shadow: 0.03em 0 #0ba6d7, -0.03em 0 #0ba6d7, 0 0.03em #0ba6d7, 0 -0.03em #0ba6d7, 0.06em 0 #0ba6d7, -0.06em 0 #0ba6d7, 0.09em 0 #0ba6d7, -0.09em 0 #0ba6d7, 0.12em 0 #0ba6d7, -0.12em 0 #0ba6d7, 0.15em 0 #0ba6d7, -0.15em 0 #0ba6d7; 105 | background: #0ba6d7; 106 | } 107 | .footer a:hover::-moz-selection { 108 | text-shadow: 0.03em 0 #0ba6d7, -0.03em 0 #0ba6d7, 0 0.03em #0ba6d7, 0 -0.03em #0ba6d7, 0.06em 0 #0ba6d7, -0.06em 0 #0ba6d7, 0.09em 0 #0ba6d7, -0.09em 0 #0ba6d7, 0.12em 0 #0ba6d7, -0.12em 0 #0ba6d7, 0.15em 0 #0ba6d7, -0.15em 0 #0ba6d7; 109 | background: #0ba6d7; 110 | } 111 | .footer a:hover *, 112 | .footer a:hover *:after, 113 | .footer a:hover:after, 114 | .footer a:hover *:before, 115 | .footer a:hover:before { 116 | text-shadow: none; 117 | } 118 | .footer a:hover:visited { 119 | color: #0ba6d7; 120 | } 121 | .footer-credit { 122 | margin-top: 2rem; 123 | width: 100%; 124 | display: block; 125 | text-align: center; 126 | } 127 | -------------------------------------------------------------------------------- /docs/css/header.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | .header { 21 | background-image: url("../img/header.jpg"); 22 | background-position: center; 23 | background-repeat: no-repeat; 24 | background-size: cover; 25 | width: 100%; 26 | height: 50vh; 27 | display: block; 28 | box-sizing: border-box; 29 | -webkit-filter: saturate(120%); 30 | -moz-filter: saturate(120%); 31 | filter: saturate(120%); 32 | position: relative; 33 | } 34 | @media only screen and (orientation: landscape) and (max-width: 64em) { 35 | .header { 36 | height: 100vh; 37 | } 38 | } 39 | .header__title { 40 | font-size: 6rem; 41 | text-align: center; 42 | color: #f9fafa; 43 | text-shadow: 2px 2px 2px rgba(0,0,0,0.5); 44 | margin: 0; 45 | padding: 0; 46 | font-weight: 300; 47 | margin-top: 10vh; 48 | } 49 | @media only screen and (max-width: 40em) { 50 | .header__title { 51 | font-size: 4rem; 52 | } 53 | .header__subtitle { 54 | font-size: 1.5rem; 55 | } 56 | } 57 | .header__title a { 58 | color: #f9fafa; 59 | } 60 | .header__title a:hover { 61 | text-shadow: 0.03em 0 rgba(0,0,0,0), -0.03em 0 rgba(0,0,0,0), 0 0.03em rgba(0,0,0,0), 0 -0.03em rgba(0,0,0,0), 0.06em 0 rgba(0,0,0,0), -0.06em 0 rgba(0,0,0,0), 0.09em 0 rgba(0,0,0,0), -0.09em 0 rgba(0,0,0,0), 0.12em 0 rgba(0,0,0,0), -0.12em 0 rgba(0,0,0,0), 0.15em 0 rgba(0,0,0,0), -0.15em 0 rgba(0,0,0,0); 62 | background-image: linear-gradient(#f9fafa, #f9fafa); 63 | background-size: 1px 1px; 64 | background-repeat: repeat-x; 65 | background-position: 0% 95%; 66 | color: #f9fafa; 67 | text-decoration: none; 68 | } 69 | .header__title a:hover::selection { 70 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 71 | background: #f9fafa; 72 | } 73 | .header__title a:hover::-moz-selection { 74 | text-shadow: 0.03em 0 #f9fafa, -0.03em 0 #f9fafa, 0 0.03em #f9fafa, 0 -0.03em #f9fafa, 0.06em 0 #f9fafa, -0.06em 0 #f9fafa, 0.09em 0 #f9fafa, -0.09em 0 #f9fafa, 0.12em 0 #f9fafa, -0.12em 0 #f9fafa, 0.15em 0 #f9fafa, -0.15em 0 #f9fafa; 75 | background: #f9fafa; 76 | } 77 | .header__title a:hover *, 78 | .header__title a:hover *:after, 79 | .header__title a:hover:after, 80 | .header__title a:hover *:before, 81 | .header__title a:hover:before { 82 | text-shadow: none; 83 | } 84 | .header__title a:hover:visited { 85 | color: #f9fafa; 86 | } 87 | .header__subtitle { 88 | margin: 0; 89 | padding: 0; 90 | font-size: 2rem; 91 | text-align: center; 92 | color: #f9fafa; 93 | text-shadow: 2px 2px 2px rgba(0,0,0,0.5); 94 | font-weight: 300; 95 | } 96 | .header__nav { 97 | width: 50rem; 98 | max-width: 100%; 99 | margin: 0 auto; 100 | margin-top: 0.5rem; 101 | } 102 | .header__link { 103 | margin: 0 1rem; 104 | opacity: 0.6; 105 | } 106 | .header__link:hover { 107 | text-shadow: 0.03em 0 rgba(0,0,0,0), -0.03em 0 rgba(0,0,0,0), 0 0.03em rgba(0,0,0,0), 0 -0.03em rgba(0,0,0,0), 0.06em 0 rgba(0,0,0,0), -0.06em 0 rgba(0,0,0,0), 0.09em 0 rgba(0,0,0,0), -0.09em 0 rgba(0,0,0,0), 0.12em 0 rgba(0,0,0,0), -0.12em 0 rgba(0,0,0,0), 0.15em 0 rgba(0,0,0,0), -0.15em 0 rgba(0,0,0,0); 108 | background-image: linear-gradient(#33474d, #33474d); 109 | background-size: 1px 1px; 110 | background-repeat: repeat-x; 111 | background-position: 0% 95%; 112 | color: #33474d; 113 | text-decoration: none; 114 | opacity: 1; 115 | } 116 | .header__link:hover::selection { 117 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 118 | background: #33474d; 119 | } 120 | .header__link:hover::-moz-selection { 121 | text-shadow: 0.03em 0 #33474d, -0.03em 0 #33474d, 0 0.03em #33474d, 0 -0.03em #33474d, 0.06em 0 #33474d, -0.06em 0 #33474d, 0.09em 0 #33474d, -0.09em 0 #33474d, 0.12em 0 #33474d, -0.12em 0 #33474d, 0.15em 0 #33474d, -0.15em 0 #33474d; 122 | background: #33474d; 123 | } 124 | .header__link:hover *, 125 | .header__link:hover *:after, 126 | .header__link:hover:after, 127 | .header__link:hover *:before, 128 | .header__link:hover:before { 129 | text-shadow: none; 130 | } 131 | .header__link:hover:visited { 132 | color: #33474d; 133 | } 134 | -------------------------------------------------------------------------------- /docs/css/headers.css: -------------------------------------------------------------------------------- 1 | /* 2 | Calculate modular scalled font-sizes for headlines in Stylus 3 | "Modular scale refers to a series of harmonious numbers 4 | that relate to one another in a meaningful way." 5 | Inspired after reading http://typographyhandbook.com/#font-sizing 6 | Build after http://www.modularscale.com/ 7 | 8 | https://gist.github.com/HoverBaum/889463ed0a57014b68302645b44cd192 9 | */ 10 | html { 11 | font-size: 1em; 12 | } 13 | h1 { 14 | font-size: 3.0517578125em; 15 | } 16 | h2 { 17 | font-size: 2.44140625em; 18 | } 19 | h3 { 20 | font-size: 1.953125em; 21 | } 22 | h4 { 23 | font-size: 1.5625em; 24 | } 25 | h5 { 26 | font-size: 1.25em; 27 | } 28 | p { 29 | font-size: 1em; 30 | } 31 | -------------------------------------------------------------------------------- /docs/css/highlight.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | article pre, 21 | article .highlight { 22 | background: #ebefef; 23 | padding: 15px; 24 | overflow: auto; 25 | color: #333; 26 | } 27 | article pre a, 28 | article .highlight a { 29 | text-shadow: 0.03em 0 #ebefef, -0.03em 0 #ebefef, 0 0.03em #ebefef, 0 -0.03em #ebefef, 0.06em 0 #ebefef, -0.06em 0 #ebefef, 0.09em 0 #ebefef, -0.09em 0 #ebefef, 0.12em 0 #ebefef, -0.12em 0 #ebefef, 0.15em 0 #ebefef, -0.15em 0 #ebefef; 30 | background-image: linear-gradient(#0ba6d7, #0ba6d7); 31 | background-size: 1px 1px; 32 | background-repeat: repeat-x; 33 | background-position: 0% 95%; 34 | color: #0ba6d7; 35 | text-decoration: none; 36 | } 37 | article pre a::selection, 38 | article .highlight a::selection { 39 | text-shadow: 0.03em 0 #0ba6d7, -0.03em 0 #0ba6d7, 0 0.03em #0ba6d7, 0 -0.03em #0ba6d7, 0.06em 0 #0ba6d7, -0.06em 0 #0ba6d7, 0.09em 0 #0ba6d7, -0.09em 0 #0ba6d7, 0.12em 0 #0ba6d7, -0.12em 0 #0ba6d7, 0.15em 0 #0ba6d7, -0.15em 0 #0ba6d7; 40 | background: #0ba6d7; 41 | } 42 | article pre a::-moz-selection, 43 | article .highlight a::-moz-selection { 44 | text-shadow: 0.03em 0 #0ba6d7, -0.03em 0 #0ba6d7, 0 0.03em #0ba6d7, 0 -0.03em #0ba6d7, 0.06em 0 #0ba6d7, -0.06em 0 #0ba6d7, 0.09em 0 #0ba6d7, -0.09em 0 #0ba6d7, 0.12em 0 #0ba6d7, -0.12em 0 #0ba6d7, 0.15em 0 #0ba6d7, -0.15em 0 #0ba6d7; 45 | background: #0ba6d7; 46 | } 47 | article pre a *, 48 | article .highlight a *, 49 | article pre a *:after, 50 | article .highlight a *:after, 51 | article pre a:after, 52 | article .highlight a:after, 53 | article pre a *:before, 54 | article .highlight a *:before, 55 | article pre a:before, 56 | article .highlight a:before { 57 | text-shadow: none; 58 | } 59 | article pre a:visited, 60 | article .highlight a:visited { 61 | color: #0ba6d7; 62 | } 63 | article .highlight .gutter pre, 64 | article .gist .gist-file .gist-data .line-numbers { 65 | color: #666; 66 | } 67 | code { 68 | background-color: #ebefef; 69 | border-radius: 0.2em; 70 | } 71 | .highlight .line.marked { 72 | background-color: #d1dada; 73 | } 74 | article pre, 75 | article code { 76 | font-family: "Inconsolata", monospace; 77 | } 78 | article code { 79 | background: color-background; 80 | text-shadow: 0 1px #fff; 81 | padding: 0 0.3em; 82 | } 83 | article pre code { 84 | background: none; 85 | text-shadow: none; 86 | padding: 0; 87 | } 88 | article .highlight pre { 89 | border: none; 90 | margin: 0; 91 | padding: 0; 92 | } 93 | article .highlight table { 94 | margin: 0; 95 | width: auto; 96 | } 97 | article .highlight td { 98 | border: none; 99 | padding: 0; 100 | } 101 | article .highlight figcaption { 102 | font-size: 0.85em; 103 | color: #999; 104 | line-height: 1em; 105 | margin-bottom: 1em; 106 | display: flex; 107 | flex-direction: row; 108 | justify-content: space-between; 109 | } 110 | article .highlight .gutter pre { 111 | text-align: right; 112 | padding-right: 20px; 113 | } 114 | article .gist { 115 | border-style: solid; 116 | border-color: #99c0cc; 117 | border-width: 1px 0; 118 | background: #f9fafa; 119 | } 120 | article .gist .gist-file { 121 | border: none; 122 | font-family: font-mono; 123 | margin: 0; 124 | } 125 | article .gist .gist-file .gist-data { 126 | background: none; 127 | border: none; 128 | } 129 | article .gist .gist-file .gist-data .line-numbers { 130 | background: none; 131 | border: none; 132 | padding: 0 20px 0 0; 133 | } 134 | article .gist .gist-file .gist-data .line-data { 135 | padding: 0 !important; 136 | } 137 | article .gist .gist-file .highlight { 138 | margin: 0; 139 | padding: 0; 140 | border: none; 141 | } 142 | article .gist .gist-file .gist-meta { 143 | background: #f9fafa; 144 | color: #999; 145 | font: 0.85em font-sans; 146 | text-shadow: 0 0; 147 | padding: 0; 148 | margin-top: 1em; 149 | margin-left: article-padding; 150 | } 151 | pre .comment, 152 | pre .title { 153 | color: #999; 154 | } 155 | pre .variable, 156 | pre .attribute, 157 | pre .tag, 158 | pre .regexp, 159 | pre .ruby .constant, 160 | pre .xml .tag .title, 161 | pre .xml .pi, 162 | pre .xml .doctype, 163 | pre .html .doctype, 164 | pre .css .id, 165 | pre .css .class, 166 | pre .css .pseudo { 167 | color: #a626a4; 168 | } 169 | pre .number, 170 | pre .preprocessor, 171 | pre .built_in, 172 | pre .literal, 173 | pre .params, 174 | pre .constant { 175 | color: #986801; 176 | } 177 | pre .class, 178 | pre .ruby .class .title, 179 | pre .css .rules .attribute { 180 | color: #50a14f; 181 | } 182 | pre .string, 183 | pre .value, 184 | pre .inheritance, 185 | pre .header, 186 | pre .ruby .symbol, 187 | pre .xml .cdata { 188 | color: #50a14f; 189 | } 190 | pre .css .hexcolor { 191 | color: #6cc; 192 | } 193 | pre .function, 194 | pre .python .decorator, 195 | pre .python .title, 196 | pre .ruby .function .title, 197 | pre .ruby .title .keyword, 198 | pre .perl .sub, 199 | pre .javascript .title, 200 | pre .coffeescript .title { 201 | color: #a626a4; 202 | } 203 | pre .keyword, 204 | pre .javascript .function { 205 | color: #a626a4; 206 | } 207 | -------------------------------------------------------------------------------- /docs/css/scrollbar.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | ::-webkit-scrollbar { 21 | width: 0.5rem; 22 | } 23 | height: 0.5rem, 24 | ::-webkit-scrollbar-track { 25 | background-color: #f9fafa; 26 | } 27 | ::-webkit-scrollbar-thumb { 28 | background-color: #33474d; 29 | } 30 | -------------------------------------------------------------------------------- /docs/css/underline.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/css/underline.css -------------------------------------------------------------------------------- /docs/css/variables.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Noto Sans"; 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf"); 4 | font-weight: normal; 5 | } 6 | @font-face { 7 | font-family: "Noto Sans"; 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf"); 9 | font-style: italic; 10 | } 11 | @font-face { 12 | font-family: "Noto Serif"; 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf"); 14 | font-style: normal; 15 | } 16 | @font-face { 17 | font-familiy: "Inconsolata"; 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf"); 19 | } 20 | -------------------------------------------------------------------------------- /docs/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/docs/img/header.jpg -------------------------------------------------------------------------------- /docs/page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Page | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 |
33 |

Page

34 | 35 |

This is a page test.

36 | 37 | 38 |
39 | 40 |
41 | 42 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /docs/tags/Bar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#Bar

35 | 36 | 37 | 38 | 117 | 118 |
119 | 120 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /docs/tags/Baz/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#Baz

35 | 36 | 37 | 38 | 117 | 118 |
119 | 120 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /docs/tags/Foo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#Foo

35 | 36 | 37 | 38 | 117 | 118 |
119 | 120 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /docs/tags/Hexo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#Hexo

35 | 36 | 37 | 38 | 119 | 120 |
121 | 122 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /docs/tags/Theme/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#Theme

35 | 36 | 37 | 38 | 119 | 120 |
121 | 122 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /docs/tags/first/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#first

35 | 36 | 37 | 38 | 117 | 118 |
119 | 120 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /docs/tags/post/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MeiliDu 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 27 |

MeiliDu

28 |

a beautiful read

29 |
30 | 31 |
32 | 33 | 34 |

#post

35 | 36 | 37 | 38 | 117 | 118 |
119 | 120 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /gitHubAssets/showcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/gitHubAssets/showcase.png -------------------------------------------------------------------------------- /layout/_widgets/greeting.ejs: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /layout/_widgets/site_links.ejs: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /layout/archive.ejs: -------------------------------------------------------------------------------- 1 |

Archive

2 | 3 | <% emptyMap = new Map() %> 4 | <% var archiveLinks = page.posts.map(post => ({ 5 | year: post.date.year(), 6 | month: post.date.month(), 7 | link: url_for(post.path), 8 | title: post.title, 9 | moment: post.date 10 | })) 11 | .sort((a, b) => { 12 | if(a.moment.isBefore(b.moment)) { 13 | return 1 14 | } else if(b.moment.isBefore(a.moment)) { 15 | return -1 16 | } 17 | return 0 18 | }) 19 | .reduce((all, current) => { 20 | if(!all.has(current.year)) { 21 | all.set(current.year, new Map()) 22 | } 23 | if(!all.get(current.year).has(current.month)) { 24 | all.get(current.year).set(current.month, []) 25 | } 26 | all.get(current.year).get(current.month).push(current) 27 | return all 28 | }, emptyMap) 29 | %> 30 | 31 | 32 | 54 | 55 | 64 | -------------------------------------------------------------------------------- /layout/categories.ejs: -------------------------------------------------------------------------------- 1 |

<%- page.title %>

2 | 3 | 22 | 23 | 32 | -------------------------------------------------------------------------------- /layout/category.ejs: -------------------------------------------------------------------------------- 1 | <% const category = page.path.split('/')[1].replace(/-/g, ' ') %> 2 | 3 |

<%- category %>

4 | 5 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /layout/footer.ejs: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /layout/index.ejs: -------------------------------------------------------------------------------- 1 | <% if (page.current > 2){ %> 2 | 📖 earlier posts 📖 3 | <% } else if (page.current === 2) { %> 4 | 📖 earlier posts 📖 5 | <% } %> 6 | 7 | <% page.posts.each(function(post) { %> 8 | 9 | <%- partial('post', {page: post, archive: true}) %> 10 | 11 | <% }) %> 12 | 13 | <% if (page.total > page.current){ %> 14 | 📖 more posts 📖 15 | <% } %> 16 | <% if(page.current === page.total) { %> 17 | 📕 end of posts 📕 18 | <% } %> 19 | -------------------------------------------------------------------------------- /layout/layout.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <% if(page.title){ %><%= page.title %> | <% } %><%= config.title %> 9 | 10 | <% if (theme.rss){ %> 11 | 12 | <% } %> 13 | 14 | 15 | 16 | 17 |
18 | 23 |

<%= config.title %>

24 |

<%- config.subtitle %>

25 |
26 | 27 |
28 | <%- body %> 29 |
30 | 31 | <%- partial('footer') %> 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /layout/page.ejs: -------------------------------------------------------------------------------- 1 |
2 |

<%= page.title %>

3 | 4 | <%- page.content %> 5 | 6 |
7 | -------------------------------------------------------------------------------- /layout/post.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% if(locals.archive) { %> 3 |

<%= page.title %>

4 | <% } else { %> 5 |

<%= page.title %>

6 | <% } %> 7 |
8 |
9 | <% if (page.categories && page.categories.length){ %> 10 |
18 | <% } %> 19 | <% if (page.tags && page.tags.length){ %> 20 | 28 | <% } %> 29 |
30 | 31 | <% if (page.photos && page.photos.length){ %> 32 |
33 |
34 | <% page.photos.forEach(function(photo, i){ %> 35 | 36 | 37 | 38 | <% }) %> 39 |
40 |
41 | <% } %> 42 | 43 | <% if(page.excerpt !== '' && locals.archive) { %> 44 | <%- page.excerpt %> 45 |

<%- theme.readMore %>

46 | <% } else { %> 47 | <%- page.content %> 48 | <% } %> 49 | 50 | <% if(!locals.archive) { %> 51 | ⬅️ Go back 52 | 53 | <% } %> 54 | 55 |
56 | -------------------------------------------------------------------------------- /layout/tag.ejs: -------------------------------------------------------------------------------- 1 | <% const tag = page.path.split('/')[1] %> 2 | 3 |

#<%- tag %>

4 | 5 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /layout/tags.ejs: -------------------------------------------------------------------------------- 1 |

<%- page.title %>

2 | 3 | 22 | 23 | 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "meilidu-hexo", 3 | "version": "1.0.0", 4 | "description": "[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)", 5 | "main": "index.js", 6 | "scripts": { 7 | "demo:install": "cd demo-site && npm i", 8 | "demo:build": "cd demo-site && npm run build", 9 | "demo:copy": "cp -r demo-site/public docs" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/HoverBaum/meilidu-hexo.git" 14 | }, 15 | "author": "Hendrik Wallbaum ", 16 | "bugs": { 17 | "url": "https://github.com/HoverBaum/meilidu-hexo/issues" 18 | }, 19 | "homepage": "https://github.com/HoverBaum/meilidu-hexo#readme" 20 | } 21 | -------------------------------------------------------------------------------- /scripts/imageCaption.js: -------------------------------------------------------------------------------- 1 | /* 2 | Big thanks to https://github.com/wayou/hexo-image-caption 3 | */ 4 | 5 | hexo.extend.filter.register('after_post_render', function(data) { 6 | 7 | if (data.layout == 'post' || data.layout == 'page' || data.layout == 'about') { 8 | data.content = data.content.replace(/(]*>)/g, '
$1
') 9 | data.content = data.content.replace(/(]*alt="([^"]+)"[^>]*>)/g, '$1' + '
$2
') 10 | } 11 | return data 12 | 13 | }) 14 | -------------------------------------------------------------------------------- /scripts/meilidu.js: -------------------------------------------------------------------------------- 1 | /* 2 | A little script to make sure that the node version is high enough as we 3 | had multiple issues of people running a not high enough version. 4 | 5 | */ 6 | 7 | if(parseInt(process.versions.node) < 6) { 8 | console.log('Your Node version is too old to use MeiliDu.') 9 | console.log(`MeiliDu needs at least version 6 you are running ${process.versions.node}`) 10 | console.log('\nUse "npm install -g n" to update your Node version.') 11 | console.log('\nYou might find the following link informative:\nhttps://github.com/HoverBaum/meilidu-hexo/issues/3') 12 | process.exit(1) 13 | } 14 | -------------------------------------------------------------------------------- /source/css/archive.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | @import "underline" 3 | 4 | .archive 5 | contentWidth() 6 | padding: 3rem 7 | display: block 8 | font-size: 2.369rem 9 | 10 | .archive li 11 | list-style-type: none 12 | cursor: pointer 13 | 14 | .archive__year > span 15 | &:hover 16 | link-underline(backgroundColor, textColor, textColor) 17 | 18 | monthColor = lighten(textColor, 10%) 19 | 20 | .archive__month 21 | font-family: fonstSerif 22 | font-size: 1.777rem 23 | color: monthColor 24 | 25 | .archive__month > span 26 | &:hover 27 | link-underline(backgroundColor, monthColor, monthColor) 28 | 29 | entryColor = lighten(textColor, 20%) 30 | 31 | .archive .archive__entry 32 | font-family: fontsSans 33 | list-style-type: disc 34 | font-size: 1.333rem 35 | margin-left: 1rem 36 | 37 | .archive__entry > a 38 | color: entryColor 39 | &:hover 40 | link-underline(backgroundColor, entryColor, entryColor) 41 | 42 | .archive__expendable 43 | margin-top: 0.5em 44 | height: auto 45 | &:before 46 | content: "▻" 47 | display: inline-block 48 | transform(rotate(90deg)) 49 | 50 | .archive__expendable.archive__expendable_collapsed 51 | height: 1.3em 52 | overflow-y: hidden 53 | &:before 54 | transform: (rotate(0deg)) 55 | 56 | .archive__expendable.archive__expendable_disabled 57 | span:hover 58 | cursor: default 59 | text-shadow: none 60 | background-image: none 61 | &:before 62 | content: "" 63 | -------------------------------------------------------------------------------- /source/css/article.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | 3 | article 4 | contentWidth() 5 | text-align: justify 6 | margin: 0 2rem 7 | margin-bottom: 2rem 8 | position: relative 9 | 10 | @media only screen and (max-width: breakMobile) 11 | article 12 | width: 90% 13 | h1 14 | overflow: hidden // This is for when someone just puts a long url as the title.... 15 | p 16 | a 17 | word-break: normal 18 | p, blockquote, figure 19 | a 20 | word-break: break-all 21 | 22 | article h1 23 | font-family: fontsSerif 24 | 25 | h1, 26 | h2, 27 | strong 28 | color: highlightColor 29 | 30 | h1 a,h2 a,h3 a,h4 a,h5 a { 31 | font-style: normal 32 | } 33 | 34 | h1,h2,h3,h4,h5 35 | margin-top: 1em 36 | margin-bottom: 1rem 37 | text-align: left 38 | 39 | article a 40 | link-underline(backgroundColor, textColor, textColor) 41 | 42 | article:hover .article__read-more-link 43 | link-underline(backgroundColor, mainColor, mainColor) 44 | 45 | @media only screen and (max-width: breakMediumEnd) 46 | article .article__read-more-link 47 | link-underline(backgroundColor, mainColor, mainColor) 48 | 49 | article h1 a:hover 50 | link-underline(backgroundColor, highlightColor, highlightColor) 51 | 52 | article h1 a 53 | background: inherit 54 | 55 | ul, ol 56 | margin: 0.5rem 0 57 | 58 | li 59 | padding: 0.2rem 0 60 | 61 | // Figures 62 | 63 | .figure 64 | margin: 2rem 0 65 | 66 | .figure__caption 67 | text-align: center 68 | font-size: 0.8em 69 | margin-top: 0.2em 70 | 71 | img 72 | max-width: 100% 73 | margin: 0 auto 74 | display: block 75 | border-radius: 0.2rem 76 | 77 | .highlight 78 | margin: 0 79 | margin-bottom: 1rem 80 | 81 | // Blockquotes 82 | 83 | blockquote 84 | color: highlightColor 85 | border-left: 0.7rem solid greyishBlue 86 | margin: 2rem 1rem 87 | padding: 0.5rem 1rem 88 | quotes: "\201C""\201D""\2018""\2019" 89 | 90 | blockquote:before 91 | color: greyishBlue 92 | content: "\201C" /*Unicode for Left Double Quote*/ 93 | font-size: 4em 94 | line-height: 0.1em 95 | margin-right: 0.25em 96 | vertical-align: -0.4em 97 | 98 | blockquote p 99 | display: inline 100 | font-family: "Noto Serif", serif 101 | 102 | blockquote cite 103 | &:before 104 | content: "\2014 \2009" 105 | 106 | article:hover blockquote a 107 | color: currentColor 108 | 109 | article blockquote a:hover 110 | link-underline(backgroundColor, mainColor, mainColor) 111 | 112 | // Tables 113 | 114 | cellPadding = 0.8rem 115 | 116 | table 117 | width: 100% 118 | border-spacing: 0 119 | th 120 | border-bottom: 1px solid highlightColor 121 | padding: cellPadding 122 | td 123 | padding: cellPadding 124 | border-bottom: 1px solid lighten(highlightColor, 80%) 125 | tbody 126 | tr 127 | &:hover 128 | background-color: lighten(mainColor, 90%) 129 | 130 | // Article infos 131 | 132 | .article__tag-link 133 | &:before 134 | content: '#' 135 | 136 | .article__infos 137 | font-size: 0.7rem 138 | position: absolute 139 | left: -8.5rem 140 | width: 8rem 141 | text-align: right 142 | 143 | .article__infos a 144 | text-shadow: none 145 | background: inherit 146 | 147 | @media only screen and (max-width: breakMediumEnd) 148 | .article__infos 149 | position: relative 150 | left: 0 151 | text-align: left 152 | width: auto 153 | 154 | .article__infos br 155 | display: none 156 | 157 | .article__infos span 158 | margin-right: 1em 159 | 160 | .post__info span 161 | margin-right: 1em 162 | 163 | //TODO improve this 164 | iframe 165 | width: 100% 166 | height: (baseContentWidth * 9 / 16) 167 | 168 | //pullquotes 169 | 170 | .pullquote 171 | width: 45% 172 | margin: 0 173 | &.left 174 | margin-left: 0.5em 175 | margin-right: 1em 176 | float: left 177 | &.right 178 | margin-left: 1em 179 | margin-right: 0.5em 180 | float: right 181 | 182 | // go back 183 | 184 | article .different-posts 185 | margin-top: 4rem 186 | -------------------------------------------------------------------------------- /source/css/fonts/Inconsolata/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Inconsolata/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /source/css/fonts/Inconsolata/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Inconsolata/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Sans/NotoSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Sans/NotoSans-Bold.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Sans/NotoSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Sans/NotoSans-BoldItalic.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Sans/NotoSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Sans/NotoSans-Italic.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Sans/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Sans/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Serif/NotoSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Serif/NotoSerif-Bold.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Serif/NotoSerif-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Serif/NotoSerif-BoldItalic.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Serif/NotoSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Serif/NotoSerif-Italic.ttf -------------------------------------------------------------------------------- /source/css/fonts/Noto_Serif/NotoSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/css/fonts/Noto_Serif/NotoSerif-Regular.ttf -------------------------------------------------------------------------------- /source/css/footer.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | @import "underline" 3 | 4 | footerBackgroundColor = textColor 5 | footerTextColor = backgroundColor 6 | 7 | .footer 8 | background-color: footerBackgroundColor 9 | color: footerTextColor 10 | padding-top: 2rem 11 | padding-bottom: 1rem 12 | display: flex 13 | flex-direction: row 14 | justify-content: center 15 | 16 | .footer p 17 | margin: 0 18 | max-width: 100% 19 | 20 | .footer-content 21 | display: flex 22 | flex-direction: row 23 | justify-content: flex-start 24 | flex-wrap: wrap 25 | width: contentWidth 26 | 27 | .footer__element 28 | padding: 1rem 29 | width: (baseContentWidth / 4) 30 | box-sizing: border-box 31 | h5 32 | margin-top: 0 33 | 34 | @media only screen and (max-width: breakMobile) 35 | .footer__element 36 | width: 100% 37 | font-size: 1.2rem 38 | 39 | @media only screen and (min-width: breakMediumStart) and (max-width: breakMediumEnd) 40 | .footer__element 41 | width: 50% 42 | font-size: 1.2rem 43 | 44 | .footer-links 45 | margin: 0 46 | padding: 0 47 | 48 | .footer-links__link 49 | list-style-type: none 50 | 51 | .footer a 52 | link-underline(footerBackgroundColor, footerTextColor, footerTextColor) 53 | &:hover 54 | link-underline(footerBackgroundColor, mainColor, mainColor) 55 | 56 | .footer-credit 57 | margin-top: 2rem 58 | width: 100% 59 | display: block 60 | text-align: center 61 | -------------------------------------------------------------------------------- /source/css/header.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | @import "underline" 3 | 4 | filter(n) 5 | -webkit-filter n 6 | -moz-filter n 7 | filter n 8 | 9 | .header 10 | background-image: url("../img/header.jpg") 11 | background-position: center 12 | background-repeat: no-repeat 13 | background-size: cover 14 | width: 100% 15 | height: 50vh 16 | display: block 17 | box-sizing: border-box 18 | filter(saturate(120%)) 19 | position: relative 20 | 21 | @media only screen and (orientation: landscape) and (max-width: breakMediumEnd) 22 | .header 23 | height: 100vh 24 | 25 | .header__title 26 | font-size: 6rem 27 | text-align: center 28 | color: headerColor 29 | text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5) 30 | margin: 0 31 | padding: 0 32 | font-weight: 300 33 | margin-top: 10vh 34 | 35 | @media only screen and (max-width: breakMobile) 36 | .header__title 37 | font-size: 4rem 38 | .header__subtitle 39 | font-size: 1.5rem 40 | 41 | .header__title a 42 | color: headerColor 43 | 44 | .header__title a:hover 45 | link-underline(rgba(0,0,0,0), headerColor, headerColor) 46 | 47 | .header__subtitle 48 | margin: 0 49 | padding: 0 50 | font-size: 2rem 51 | text-align: center 52 | color: headerColor 53 | text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5) 54 | font-weight: 300 55 | 56 | .header__nav 57 | contentWidth() 58 | margin: 0 auto 59 | margin-top: 0.5rem 60 | 61 | .header__link 62 | margin: 0 1rem 63 | opacity: 0.6 64 | &:hover 65 | link-underline(rgba(0,0,0,0), textColor, textColor) 66 | opacity: 1 67 | -------------------------------------------------------------------------------- /source/css/headers.styl: -------------------------------------------------------------------------------- 1 | /* 2 | Calculate modular scalled font-sizes for headlines in Stylus 3 | "Modular scale refers to a series of harmonious numbers 4 | that relate to one another in a meaningful way." 5 | Inspired after reading http://typographyhandbook.com/#font-sizing 6 | Build after http://www.modularscale.com/ 7 | 8 | https://gist.github.com/HoverBaum/889463ed0a57014b68302645b44cd192 9 | */ 10 | 11 | 12 | baseFontSize = 1em 13 | fontRatio = 1.25 14 | 15 | html 16 | font-size: baseFontSize 17 | 18 | fontSizeCalc(base, ratio, count) 19 | calcSize = base 20 | count = 6 - count 21 | for $i in 1..count 22 | calcSize = calcSize * ratio 23 | calcSize 24 | 25 | for size in 1 2 3 4 5 26 | h{size} 27 | font-size: fontSizeCalc(baseFontSize, fontRatio, size) 28 | 29 | p 30 | font-size: baseFontSize 31 | -------------------------------------------------------------------------------- /source/css/highlight.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | @import "underline" 3 | 4 | // https://github.com/chriskempson/tomorrow-theme 5 | //highlight-background = #2d2d2d 6 | highlight-background = backgroundColor 7 | highlight-current-line = #393939 8 | highlight-selection = #515151 9 | highlight-foreground = #333 10 | highlight-comment = #999999 11 | highlight-red = #f2777a 12 | highlight-orange = saturation(#f99157, 100%) 13 | highlight-yellow = #ffcc66 14 | highlight-green = saturation(#99cc99, 50%) 15 | highlight-aqua = #66cccc 16 | highlight-blue = #6699cc 17 | highlight-purple = saturation(#cc99cc, 75%) 18 | color-border = lighten(greyishBlue, 60%) 19 | code-background = darken(backgroundColor, 5%) 20 | 21 | $code-block 22 | background: code-background 23 | padding: 15px 24 | overflow: auto 25 | color: highlight-foreground 26 | a 27 | link-underline(code-background, mainColor, mainColor) 28 | 29 | $line-numbers 30 | color: #666 31 | 32 | code 33 | background-color: code-background 34 | border-radius: 0.2em 35 | 36 | 37 | .highlight .line.marked 38 | background-color: darken(code-background, 10%) 39 | 40 | article 41 | pre, code 42 | font-family: fontsMono 43 | code 44 | background: color-background 45 | text-shadow: 0 1px #fff 46 | padding: 0 0.3em 47 | pre 48 | @extend $code-block 49 | code 50 | background: none 51 | text-shadow: none 52 | padding: 0 53 | .highlight 54 | @extend $code-block 55 | pre 56 | border: none 57 | margin: 0 58 | padding: 0 59 | table 60 | margin: 0 61 | width: auto 62 | td 63 | border: none 64 | padding: 0 65 | figcaption 66 | font-size: 0.85em 67 | color: highlight-comment 68 | line-height: 1em 69 | margin-bottom: 1em 70 | display: flex 71 | flex-direction: row 72 | justify-content: space-between 73 | .gutter pre 74 | @extend $line-numbers 75 | text-align: right 76 | padding-right: 20px 77 | .gist 78 | border-style: solid 79 | border-color: color-border 80 | border-width: 1px 0 81 | background: highlight-background 82 | .gist-file 83 | border: none 84 | font-family: font-mono 85 | margin: 0 86 | .gist-data 87 | background: none 88 | border: none 89 | .line-numbers 90 | @extend $line-numbers 91 | background: none 92 | border: none 93 | padding: 0 20px 0 0 94 | .line-data 95 | padding: 0 !important 96 | .highlight 97 | margin: 0 98 | padding: 0 99 | border: none 100 | .gist-meta 101 | background: highlight-background 102 | color: highlight-comment 103 | font: 0.85em font-sans 104 | text-shadow: 0 0 105 | padding: 0 106 | margin-top: 1em 107 | margin-left: article-padding 108 | 109 | pre 110 | .comment 111 | .title 112 | color: highlight-comment 113 | .variable 114 | .attribute 115 | .tag 116 | .regexp 117 | .ruby .constant 118 | .xml .tag .title 119 | .xml .pi 120 | .xml .doctype 121 | .html .doctype 122 | .css .id 123 | .css .class 124 | .css .pseudo 125 | color: #a626a4 126 | .number 127 | .preprocessor 128 | .built_in 129 | .literal 130 | .params 131 | .constant 132 | color: #986801 133 | .class 134 | .ruby .class .title 135 | .css .rules .attribute 136 | color: #50a14f 137 | .string 138 | .value 139 | .inheritance 140 | .header 141 | .ruby .symbol 142 | .xml .cdata 143 | color: #50a14f 144 | .css .hexcolor 145 | color: highlight-aqua 146 | .function 147 | .python .decorator 148 | .python .title 149 | .ruby .function .title 150 | .ruby .title .keyword 151 | .perl .sub 152 | .javascript .title 153 | .coffeescript .title 154 | color: #a626a4 155 | .keyword 156 | .javascript .function 157 | color: #a626a4 158 | -------------------------------------------------------------------------------- /source/css/scrollbar.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | 3 | ::-webkit-scrollbar 4 | width: 0.5rem 5 | height: 0.5rem 6 | 7 | ::-webkit-scrollbar-track 8 | background-color: backgroundColor 9 | 10 | ::-webkit-scrollbar-thumb 11 | background-color: textColor 12 | -------------------------------------------------------------------------------- /source/css/style.styl: -------------------------------------------------------------------------------- 1 | @import "variables" 2 | @import "headers" 3 | @import "underline" 4 | @import "scrollbar" 5 | @import "article" 6 | @import "header" 7 | @import "footer" 8 | @import "highlight" 9 | @import "archive" 10 | 11 | 12 | body, 13 | html 14 | padding: 0 15 | margin: 0 16 | background-color: backgroundColor 17 | 18 | body 19 | font-family: "Noto Sans" 20 | color: textColor 21 | display: flex 22 | flex-direction: column 23 | 24 | @media only screen and (max-width: breakMobile) 25 | html 26 | font-size: 90% 27 | 28 | main 29 | width: 100% 30 | padding-bottom: 4rem 31 | display: flex 32 | flex-grow: 1 33 | flex-direction: row 34 | justify-content: center 35 | flex-wrap: wrap 36 | 37 | main > h1 38 | width: 100% 39 | text-align: center 40 | 41 | a 42 | text-decoration: none 43 | color: textColor 44 | 45 | a:visited 46 | color: currentColor 47 | 48 | a:hover 49 | link-underline(backgroundColor, mainColor, mainColor) 50 | 51 | 52 | //Center articles even on huge screen 53 | @media screen and (min-width: 100 rem) 54 | article 55 | margin-left: 20rem 56 | margin-right: 20rem 57 | 58 | .different-posts 59 | display: block 60 | contentWidth() 61 | text-align: center 62 | & a 63 | link-underline(backgroundColor, textColor, textColor) 64 | & a:hover 65 | link-underline(backgroundColor, mainColor, mainColor) 66 | 67 | .different-posts.different-posts_earlier 68 | margin-top: 2rem 69 | -------------------------------------------------------------------------------- /source/css/underline.styl: -------------------------------------------------------------------------------- 1 | text-underline-crop($background) 2 | text-shadow: 0.03em 0 $background, -0.03em 0 $background, 0 0.03em $background, 0 -0.03em $background, 0.06em 0 $background, -0.06em 0 $background, 0.09em 0 $background, -0.09em 0 $background, 0.12em 0 $background, -0.12em 0 $background, 0.15em 0 $background, -0.15em 0 $background 3 | text-background($color-bg, $color-text) 4 | background-image: linear-gradient($color-text, $color-text) 5 | background-size: 1px 1px 6 | background-repeat: repeat-x 7 | background-position: 0% 95% 8 | text-selection($selection) 9 | &::selection 10 | text-underline-crop($selection) 11 | background: $selection 12 | &::-moz-selection 13 | text-underline-crop($selection) 14 | background: $selection 15 | link-underline($background, $text, $selection) 16 | text-underline-crop($background) 17 | text-background($background, $text) 18 | text-selection($selection) 19 | color: $text 20 | text-decoration: none 21 | *, 22 | *:after, 23 | &:after, 24 | *:before, 25 | &:before 26 | text-shadow: none 27 | &:visited 28 | color: $text 29 | -------------------------------------------------------------------------------- /source/css/variables.styl: -------------------------------------------------------------------------------- 1 | @font-face 2 | font-family: "Noto Sans" 3 | src: url("fonts/Noto_Sans/NotoSans-Regular.ttf") 4 | font-weight: normal 5 | 6 | @font-face 7 | font-family: "Noto Sans" 8 | src: url("fonts/Noto_Sans/NotoSans-Italic.ttf") 9 | font-style: italic 10 | 11 | @font-face 12 | font-family: "Noto Serif" 13 | src: url("fonts/Noto_Serif/NotoSerif-Regular.ttf") 14 | font-style: normal 15 | 16 | @font-face 17 | font-familiy: "Inconsolata" 18 | src: url("fonts/Inconsolata/Inconsolata-Regular.ttf") 19 | 20 | mainColor = #0BA6D7 21 | 22 | // Gerys build after 23 | // https://www.smashingmagazine.com/2016/04/web-developer-guide-color/#creating-harmonious-grays 24 | greyishBlue = #2a4a54 25 | 26 | textColor = #33474d 27 | highlightColor = #3c4447 28 | headerColor = #f9fafa 29 | backgroundColor = #f9fafa 30 | 31 | //The standard width for content in the middle. 32 | baseContentWidth = 50rem 33 | contentWidth() 34 | width: baseContentWidth 35 | max-width: 100% 36 | 37 | fontsSans = "Noto Sans", sans-serif 38 | fontsSerif = "Noto Serif", serif 39 | fontsMono = "Inconsolata", monospace 40 | 41 | 42 | // Breakpoints copied from foundation 43 | // http://foundation.zurb.com/sites/docs/v/5.5.3/media-queries.html 44 | // - 641 45 | breakMobile = 40em 46 | // 641 - 1024 47 | breakMediumStart = 40.063em 48 | breakMediumEnd = 64em 49 | // 1025 - 1440 50 | breakLargeStart = 64.063em 51 | breakLargeEnd = 90em 52 | // 1441 - 1921 53 | breakHugeStart = 90.063em 54 | breakHugeEnd = 120em 55 | // 1921 - 56 | breakEnourmous = 120.063em 57 | 58 | 59 | // Helpers mixins and the likes 60 | transform(n) 61 | -webkit-transform: n 62 | -moz-transform: n 63 | -o-transform: n 64 | -ms-transform: n 65 | transform: n 66 | -------------------------------------------------------------------------------- /source/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HoverBaum/meilidu-hexo/a0e361fd2dbab22c59a9438fadad10cd19b4e325/source/img/header.jpg --------------------------------------------------------------------------------