├── .gitignore ├── LICENSE ├── README.md ├── docs ├── .vuepress │ ├── components │ │ ├── Homepage.vue │ │ ├── MContent.vue │ │ ├── MarkdownCard.vue │ │ ├── Projects.vue │ │ └── styles │ │ │ └── config.styl │ ├── config.js │ ├── override.styl │ ├── public │ │ ├── icons │ │ │ ├── email.svg │ │ │ ├── facebook.svg │ │ │ ├── github.svg │ │ │ ├── instagram.svg │ │ │ ├── linkedin.svg │ │ │ ├── twitter.svg │ │ │ └── youtube.svg │ │ ├── kraken.jpg │ │ ├── profile.jpg │ │ └── projects │ │ │ └── 1.png │ └── style.styl ├── README.md ├── article │ └── README.md ├── guide │ ├── README.md │ ├── advanced.md │ ├── customize.md │ └── getting-started.md └── projects │ ├── README.md │ └── old.md ├── images ├── 01.jpg └── 02.jpg └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | *.log 4 | .temp 5 | vuepress 6 | TODOs.md 7 | dist 8 | deploy 9 | package-lock.json 10 | yarn.lock 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Fing 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Nice HomePage 2 | 3 | ### DEMO is [here](https://nordicgiant2.github.io/vue-nice-homepage-page/) 4 | 5 | ![img](https://github.com/nordicgiant2/vue-nice-homepage/blob/master/images/01.jpg?raw=true) 6 | 7 | ## About [`particles-bg-vue`](https://github.com/lindelof/particles-bg-vue) library 8 | #### This project uses the react particle background component library [https://github.com/lindelof/particles-bg-vue](https://github.com/lindelof/particles-bg-vue). It's very simple. Anyone can be a Musketeer with it. 9 | 10 | ![img](https://github.com/lindelof/particles-bg-vue/raw/master/images/02.jpg?raw=true) 11 | 12 | ## Description 13 | This project forks from [https://github.com/mtobeiyf/vuepress-homepage](https://github.com/mtobeiyf/vuepress-homepage), I made some modifications and adjustments, thanks to the [author](https://github.com/mtobeiyf). 14 | 15 |

16 | 17 | Getting Started 18 | 19 |

20 | 21 | Check the full documentation here :point_right: [Guide](https://vuepress-homepage.netlify.com/guide/) 22 | 23 | Make sure you have [Node.js](https://nodejs.org) and [yarn](https://yarnpkg.com) installed. 24 | 25 | ```bash 26 | # Clone the repo 27 | $ git clone https://github.com/mtobeiyf/vuepress-homepage.git 28 | $ cd vuepress-homepage 29 | 30 | # Install dependencies 31 | $ yarn # or npm install 32 | 33 | # Run 34 | $ yarn dev # or npm run dev 35 | ``` 36 | 37 | Check your site at `http://127.0.0.1:8080/` 38 | 39 | ## Features 40 | 41 | - Markdown and emoji supported :smiley: 42 | - Elegant and minimalistic 43 | - Customizable and mobile-friendly 44 | - Multi-language support 45 | - Powered by [VuePress](https://vuepress.vuejs.org/) and [Vue.js](https://vuejs.org/) 46 | 47 | It's **static**, which means once generated, your site could be deployed anywhere, like [Netlify](https://www.netlify.com/) or [GitHub Pages]() 48 | 49 | ## License 50 | 51 | Released under the [MIT License](https://opensource.org/licenses/MIT). -------------------------------------------------------------------------------- /docs/.vuepress/components/Homepage.vue: -------------------------------------------------------------------------------- 1 | 45 | 46 | 70 | 71 | 183 | -------------------------------------------------------------------------------- /docs/.vuepress/components/MContent.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 34 | 35 | -------------------------------------------------------------------------------- /docs/.vuepress/components/MarkdownCard.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | 18 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Projects.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 33 | 34 | -------------------------------------------------------------------------------- /docs/.vuepress/components/styles/config.styl: -------------------------------------------------------------------------------- 1 | // layout 2 | $navbarHeight = 3.6rem 3 | $sidebarWidth = 20rem 4 | $contentWidth = 740px 5 | 6 | // responsive breakpoints 7 | $MQNarrow = 959px 8 | $MQMobile = 719px 9 | $MQMobileNarrow = 419px 10 | 11 | // my colors 12 | // $bgColor = #ecf0f1 13 | $homeBgColor = #e6ecf0 14 | $frontColor = #ffffff 15 | $btnBgColor = #1d3d26 16 | $btnHvColor = #34495e 17 | $footColor = #7f8c8d 18 | $projBgColor = #fafbfc -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | title: "Hello Kraken", 3 | description: "The description of the site.", 4 | head: [["link", { rel: "icon", href: `/logo.png` }]], 5 | dest: "./dist", 6 | base: "/vue-nice-homepage-page/", 7 | themeConfig: { 8 | nav: [ 9 | { text: "Home", link: "/" }, 10 | { text: "Projects", link: "/projects/" }, 11 | { text: "Guide", link: "/guide/" }, 12 | { text: "GitHub", link: "https://github.com/nordicgiant2/vue-nice-homepage" } 13 | ], 14 | sidebar: { 15 | '/guide/': genSidebarConfig('Guide') 16 | }, 17 | lastUpdated: 'Last Updated' 18 | }, 19 | 20 | markdown: { 21 | anchor: { permalink: false }, 22 | config: md => { 23 | md.use(require("markdown-it-katex")); 24 | } 25 | } 26 | }; 27 | 28 | function genSidebarConfig (title) { 29 | return [ 30 | { 31 | title, 32 | collapsable: false, 33 | children: [ 34 | '', 35 | 'getting-started', 36 | 'customize', 37 | 'advanced', 38 | ] 39 | } 40 | ] 41 | } 42 | 43 | -------------------------------------------------------------------------------- /docs/.vuepress/override.styl: -------------------------------------------------------------------------------- 1 | // colors 2 | $accentColor = #1d3d26 3 | $borderColor = #eaecef -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/email.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 11 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/instagram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /docs/.vuepress/public/icons/youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /docs/.vuepress/public/kraken.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nordicgiant2/vue-nice-homepage/3ce43056f67f114a72bf550b8358899c4c8e3829/docs/.vuepress/public/kraken.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nordicgiant2/vue-nice-homepage/3ce43056f67f114a72bf550b8358899c4c8e3829/docs/.vuepress/public/profile.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/projects/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nordicgiant2/vue-nice-homepage/3ce43056f67f114a72bf550b8358899c4c8e3829/docs/.vuepress/public/projects/1.png -------------------------------------------------------------------------------- /docs/.vuepress/style.styl: -------------------------------------------------------------------------------- 1 | // disable the search box 2 | .search-box 3 | display none 4 | 5 | // disable outbound link icon 6 | .icon.outbound 7 | display none -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: Homepage 3 | description: 'The biography and information about me.' 4 | avatar: /profile.jpg 5 | face: /kraken.jpg 6 | head: 'Hello Kraken' 7 | info: 'The kraken is a legendary' 8 | interests: 'The address of this project is here. If you are interested, please star. Thank you very much.' 9 | socials: 10 | - title: github 11 | link: https://github.com/nordicgiant2/vue-nice-homepage 12 | - title: linkedin 13 | link: https://www.linkedin.com 14 | - title: instagram 15 | link: https://www.instagram.com 16 | - title: email 17 | link: 'mailto:harry[at]gmail.com' 18 | actions: 19 | - text: Projects 20 | link: /projects/ 21 | - text: Github 22 | link: https://github.com/nordicgiant2/vue-nice-homepage 23 | --- 24 | 25 | The kraken is a legendary cephalopod-like sea monster of giant size in Scandinavian folklore. According to the Norse sagas, the kraken dwells off the coasts of Norway and Greenland and terrorizes nearby sailors. Authors over the years have postulated that the legend may have originated from sightings of giant squids that may grow to 13–15 meters in length. :dizzy: 26 | -------------------------------------------------------------------------------- /docs/article/README.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | 6 | 7 | ## Inline Math 8 | 9 | $J \left( \theta_0, \theta_1 \right) = \frac{1}{2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}$ 10 | 11 | + Create a list by starting a line with `+`, `-`, or `*` 12 | + Sub-lists are made by indenting 2 spaces: 13 | - Marker character change forces new list start: 14 | * Ac tristique libero volutpat at 15 | + Facilisis in pretium nisl aliquet 16 | - Nulla volutpat aliquam velit 17 | + Very easy! 18 | 19 | ``` js 20 | var foo = function (bar) { 21 | return bar++; 22 | }; 23 | 24 | console.log(foo(5)); 25 | ``` 26 | 27 | 28 | # h1 Heading 8-) 29 | ## h2 Heading 30 | ### h3 Heading 31 | #### h4 Heading 32 | ##### h5 Heading 33 | ###### h6 Heading 34 | 35 | 36 | ## Horizontal Rules 37 | 38 | ___ 39 | 40 | --- 41 | 42 | *** 43 | 44 | 45 | ## Typographic replacements 46 | 47 | Enable typographer option to see result. 48 | 49 | (c) (C) (r) (R) (tm) (TM) (p) (P) +- 50 | 51 | test.. test... test..... test?..... test!.... 52 | 53 | !!!!!! ???? ,, -- --- 54 | 55 | "Smartypants, double quotes" and 'single quotes' 56 | 57 | 58 | ## Emphasis 59 | 60 | **This is bold text** 61 | 62 | __This is bold text__ 63 | 64 | *This is italic text* 65 | 66 | _This is italic text_ 67 | 68 | ~~Strikethrough~~ 69 | 70 | 71 | ## Blockquotes 72 | 73 | 74 | > Blockquotes can also be nested... 75 | >> ...by using additional greater-than signs right next to each other... 76 | > > > ...or with spaces between arrows. 77 | 78 | 79 | ## Lists 80 | 81 | Unordered 82 | 83 | + Create a list by starting a line with `+`, `-`, or `*` 84 | + Sub-lists are made by indenting 2 spaces: 85 | - Marker character change forces new list start: 86 | * Ac tristique libero volutpat at 87 | + Facilisis in pretium nisl aliquet 88 | - Nulla volutpat aliquam velit 89 | + Very easy! 90 | 91 | Ordered 92 | 93 | 1. Lorem ipsum dolor sit amet 94 | 2. Consectetur adipiscing elit 95 | 3. Integer molestie lorem at massa 96 | 97 | 98 | 1. You can use sequential numbers... 99 | 1. ...or keep all the numbers as `1.` 100 | 101 | Start numbering with offset: 102 | 103 | 57. foo 104 | 1. bar 105 | 106 | 107 | ## Code 108 | 109 | Inline `code` 110 | 111 | Indented code 112 | 113 | // Some comments 114 | line 1 of code 115 | line 2 of code 116 | line 3 of code 117 | 118 | 119 | Block code "fences" 120 | 121 | ``` 122 | Sample text here... 123 | ``` 124 | 125 | Syntax highlighting 126 | 127 | ``` js 128 | var foo = function (bar) { 129 | return bar++; 130 | }; 131 | 132 | console.log(foo(5)); 133 | ``` 134 | 135 | ## Tables 136 | 137 | | Option | Description | 138 | | ------ | ----------- | 139 | | data | path to data files to supply the data that will be passed into templates. | 140 | | engine | engine to be used for processing templates. Handlebars is the default. | 141 | | ext | extension to be used for dest files. | 142 | 143 | Right aligned columns 144 | 145 | | Option | Description | 146 | | ------:| -----------:| 147 | | data | path to data files to supply the data that will be passed into templates. | 148 | | engine | engine to be used for processing templates. Handlebars is the default. | 149 | | ext | extension to be used for dest files. | 150 | 151 | 152 | ## Links 153 | 154 | [link text](http://dev.nodeca.com) 155 | 156 | [link with title](http://nodeca.github.io/pica/demo/ "title text!") 157 | 158 | Autoconverted link https://github.com/nodeca/pica (enable linkify to see) 159 | 160 | 161 | ## Images 162 | 163 | ![Minion](https://octodex.github.com/images/minion.png) 164 | ![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat") 165 | 166 | Like links, Images also have a footnote style syntax 167 | 168 | ![Alt text][id] 169 | 170 | With a reference later in the document defining the URL location: 171 | 172 | [id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" 173 | -------------------------------------------------------------------------------- /docs/guide/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | This is a skeleton built for generating static site for yourself, especially helpful and friendly to students, teachers, developers, researchers and so on. 4 | 5 | It's suitable for building your personal homepage with: 6 | - About me :raising_hand: 7 | - Projects, publications, portfolio :books: 8 | - Biography, timeline, resume(CV) :page_with_curl: 9 | 10 | ## Features 11 | - Markdown and emoji supported :smiley: 12 | - Elegant and minimalistic 13 | - Customizable and mobile-friendly 14 | - Multi-language support 15 | - Powered by [VuePress](https://vuepress.vuejs.org/) and [Vue.js](https://vuejs.org/) 16 | 17 | Now, let's try it :point_right: -------------------------------------------------------------------------------- /docs/guide/advanced.md: -------------------------------------------------------------------------------- 1 | # Advanced 2 | 3 | If my template can't meet your requirement, you can further create your own template. 4 | 5 | ## Vue and VuePress 6 | 7 | Before you start building your own template, you should gather some knowledge. 8 | 9 | - [Vue.js](https://vuejs.org/) 10 | - [VuePress](https://vuepress.vuejs.org/) 11 | 12 | Actually, you don't have to learn the whole Vue.js. Html and CSS are more essential. 13 | 14 | By looking at the `.vue` files I provided, you should understand how the `.vue` file works. 15 | 16 | Read [VuePress Guide](https://vuepress.vuejs.org/guide/) and understand how VuePress is capable of. 17 | 18 | ## Components 19 | 20 | The components, which are the templates used in this site, are separate `.vue` files under `.vuepress/components` directory. 21 | 22 | For example, the `MarkdownCard.vue` is a widget used in the projects page. The `Homepage.vue` is a layout that could be further customized. 23 | 24 | For more information, check VuePress doc on [Custom Layout for Specific Pages](https://vuepress.vuejs.org/default-theme-config/#custom-layout-for-specific-pages). 25 | 26 | 27 | ## Override Styles 28 | 29 | You can override styles with `.vuepress/override.styl`. Adding simple CSS rules to control how the elements appear on your site. 30 | 31 | Check [Simple CSS Override](https://vuepress.vuejs.org/default-theme-config/#simple-css-override) for more help. 32 | 33 | ## Beyond 34 | 35 | You need to know more about Vue and Javascript. :smile: 36 | 37 | Learn and create! :muscle: 38 | -------------------------------------------------------------------------------- /docs/guide/customize.md: -------------------------------------------------------------------------------- 1 | # Customize 2 | 3 | We'll take this repo as an example to show you how to make this site as you like. 4 | 5 | Don't forget to refer to official [VuePress Guide](https://vuepress.vuejs.org/guide/) to find out more. 6 | 7 | ## Structure 8 | 9 | Now, we care about the **docs** directory which includes: 10 | 11 | ``` 12 | docs 13 | ├── guide 14 | ├── projects 15 | ├── README.md 16 | └── .vuepress 17 | ├── components 18 | │   ├── Homepage.vue 19 | │   ├── MContent.vue 20 | │   ├── Projects.vue 21 | │   └── styles 22 | │   └── config.styl 23 | ├── config.js 24 | ├── override.styl 25 | └── public 26 | ├── icons 27 | ├── profile.jpg 28 | └── projects 29 | ``` 30 | 31 | ### The documents 32 | 33 | The entry page is `README.md`, followed by sub-pages under the directories `guide` and `projects`. 34 | 35 | You can modify, delete and create your own directory and `README.md` files according to your needs. 36 | 37 | You should have basic idea of [Markdown](https://guides.github.com/features/mastering-markdown/) and YAML Front Matter. 38 | 39 | ### config.js 40 | 41 | The config files of this site are all placed under `.vuepress` directory. The only two you need to concern is `config.js` and `public` folder. 42 | 43 | ### public 44 | 45 | You need to place your images under `docs/.vuepress/public` directory, so that you can access them using `/profile.jpg` in the yaml section of the `README.md` file. 46 | 47 | ## Modification 48 | 49 | ### Title 50 | 51 | The title of the site and the navbar is in the `docs/.vuepress/config.js` 52 | 53 | ### Navbar links 54 | 55 | Still in the `config.js`, under the `themeConfig` key. 56 | 57 | ### Homepage 58 | 59 | If you don't like the homepage, simply modify the `docs/README.md` file to switch to another layout or just Markdown page. 60 | 61 | ### Sidebar 62 | 63 | There are two different types of sidebars: routing between multiple Markdown files and TOC of a single page. 64 | 65 | This **Guide** contains separate files under `docs/guide`. To enable sidebar, you have to manually set this in the `config.js`. 66 | 67 | ## Pages 68 | 69 | ### Homepage 70 | 71 | As you can see in the `docs/README.md`, most of the contents are written in the YAML front matter. Just modify the corresponding section and you should get yours. 72 | 73 | ### Projects 74 | 75 | Actually, it's a pure Markdown file. You can use the inline widget `` to show your project, publication or portfolio. Check the example at `docs/projects/README.md`. 76 | 77 | You can even add some more sections with Markdown to make this page a resume for you. 78 | 79 | ### Customize Page 80 | 81 | Adding a page is simple, create `docs/Foo/README.md` and you can access it with link `/Foo/` in the context. 82 | 83 | To automatically generate the sidebar of the current page, add `sidebar: auto` in the front matter section. 84 | 85 | You can even tune the styles with `