├── .github └── dependabot.yml ├── .gitignore ├── .tm_properties ├── .travis.init.yml ├── .travis.yml ├── .uncssrc ├── ATTRIBUTION.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONVENTIONS.md ├── Gemfile ├── Gemfile.lock ├── Gruntfile.coffee ├── LICENSE ├── README.md ├── _amsf.yml ├── _app ├── _data │ ├── authors.yml │ ├── curtana.yml │ └── header.yml ├── _drafts │ └── .gitkeep ├── _includes │ ├── _amsf.html │ ├── amsf │ │ ├── author │ │ ├── comment │ │ ├── core │ │ ├── css │ │ ├── dates │ │ ├── favicons │ │ ├── google_analytics │ │ ├── has_protocol │ │ ├── heading │ │ ├── hostname │ │ ├── lang │ │ ├── open_graph │ │ ├── relative_url │ │ ├── service_worker │ │ ├── site_desc │ │ ├── site_title │ │ ├── theme_color │ │ ├── thumbnail │ │ ├── type │ │ ├── urls │ │ └── word_counter │ ├── bookmarks.html │ └── themes │ │ └── curtana │ │ ├── includes │ │ ├── content.html │ │ ├── css-variables.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── open-graph.html │ │ ├── page-item.html │ │ └── top.html │ │ └── layouts │ │ ├── default.html │ │ ├── page.html │ │ └── post.html ├── _layouts │ ├── default.html │ ├── page.html │ └── post.html ├── _pages │ ├── about.md │ ├── bookmark.md │ ├── error.md │ ├── index.html │ └── open-source.html ├── _posts │ ├── 2014-09-10-hello.md │ ├── 2014-09-28-form-wordpress-to-github-pages.md │ ├── 2014-10-04-github-windows-https-error.md │ ├── 2014-10-06-php-chinese-to-pinyin.md │ ├── 2014-10-11-config-zsh-on-osx.md │ ├── 2014-10-11-mysql-performance-optimization-summary.md │ ├── 2014-10-12-mysql-explain.md │ ├── 2014-10-12-php-variable-principle.md │ ├── 2014-10-30-using-eloquent-outside-laravel.md │ ├── 2014-11-25-using-eloquent-outsite-laravel-2.md │ ├── 2014-12-25-laravel-mongodb-field-type-bug.md │ ├── 2015-01-19-how-to-deploy-project-with-git-hook.md │ ├── 2015-03-19-get-current-controller-of-laravel.md │ ├── 2015-04-17-laravel-login-event-handler.md │ ├── 2015-05-08-cannot-find-command-sudo-hu.md │ ├── 2015-05-08-install-latest-git-on-centos.md │ ├── 2015-05-18-install-phpcs-and-phpmd.md │ ├── 2015-06-09-sync-your-laravel-project.md │ ├── 2015-12-09-about-set-exception-handler.md │ ├── 2016-03-01-npm-proxy.md │ ├── 2016-04-16-about-php-trait.md │ ├── 2016-11-24-summernote-image-upload-to-server.md │ ├── 2017-08-01-about-composer-version-constraint.md │ ├── 2018-06-25-deployer-guide.md │ ├── 2018-11-01-set-expired-at-for-laravel-passport-personal-access-token.md │ ├── 2018-12-11-php-package-develop-tutorial.md │ ├── 2019-10-10-a-easy-way-to-set-laravel-morph-map.md │ ├── 2020-01-02-use-tailwindcss-in-and-design-pro.md │ └── 2021-01-20-laravel-exception-with-context.md ├── apple-touch-icon.png ├── assets │ ├── _js │ │ └── user.js │ ├── _less │ │ └── user.less │ ├── img │ │ └── heading-background-example.jpg │ ├── svg │ │ ├── amsf.svg │ │ └── heading-image-example.svg │ └── themes │ │ └── curtana │ │ ├── _js │ │ ├── app.js │ │ └── lightense.min.js │ │ └── _less │ │ ├── .csscomb.json │ │ ├── app.less │ │ ├── common.less │ │ ├── components │ │ └── randomized.less │ │ ├── mixins.less │ │ ├── plugins.less │ │ ├── print.less │ │ ├── reset.less │ │ └── variables.less ├── attachments │ └── images │ │ ├── db-demo.png │ │ └── zsh.png ├── favicon.png ├── feed-atom.xml ├── feed-json.json ├── manifest.json ├── mask-icon.svg ├── robots.txt └── sitemap.xml ├── _config.dev.yml ├── _config.init.yml ├── _config.yml ├── _deploy.yml ├── build.sh ├── package-lock.json ├── package.json ├── s3_website.example.yml └── yarn.lock /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "21:00" 8 | open-pull-requests-limit: 10 9 | ignore: 10 | - dependency-name: urijs 11 | versions: 12 | - 1.19.5 13 | - dependency-name: lodash 14 | versions: 15 | - 4.17.20 16 | - dependency-name: grunt-contrib-uglify 17 | versions: 18 | - 5.0.0 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Numerous always-ignore extensions 2 | *.diff 3 | *.err 4 | *.orig 5 | *.log 6 | *.rej 7 | *.swo 8 | *.swp 9 | *.zip 10 | *.vi 11 | *~ 12 | 13 | # OS or Editor folders 14 | .DS_Store 15 | ._* 16 | Thumbs.db 17 | .cache 18 | .project 19 | .settings 20 | .tmproj 21 | *.esproj 22 | nbproject 23 | *.sublime-project 24 | *.sublime-workspace 25 | .idea 26 | 27 | # Folders to ignore 28 | node_modules 29 | 30 | # AMSF specified 31 | .amsf-cache 32 | .jekyll-metadata 33 | _site 34 | _app/assets/**/js 35 | _app/assets/**/css 36 | 37 | # AMSF deprecated, leave them for compatibility 38 | _amsf/themes 39 | _amsf/core 40 | -------------------------------------------------------------------------------- /.tm_properties: -------------------------------------------------------------------------------- 1 | # Variables 2 | EXCLUDES = "{_amsf,_site,node_modules}" 3 | 4 | # Exclude search list 5 | excludeInFolderSearch = "$EXCLUDES" 6 | excludeInFileChooser = "$EXCLUDES" -------------------------------------------------------------------------------- /.travis.init.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | cache: 4 | - bundler 5 | node_js: 6 | - "5" 7 | - "4" 8 | - "0.12" 9 | before_install: 10 | - if [[ `npm -v` != 3* ]]; then npm i -g npm@3; fi 11 | - rvm use 2.2.2 --install --fuzzy 12 | - bundle install 13 | matrix: 14 | fast_finish: true 15 | notifications: 16 | email: false 17 | slack: 18 | secure: P/ngpvqinM/t9tdXZO2qHQvq2XCkcerKM+KwNJlQoVHnkl/Z/EtzB1yxiZZ6LGdHp+r3nShBhfW+gJVojU80EObt0iWHbFTkUUMFf6WI6c056937CksQI4atmDBiCJxMAnkd6DCLWfBexVtKDhkc5vX0bYhgoiXEzCYUhFd8pZ4= 19 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | cache: 4 | - bundler 5 | node_js: 6 | - "6" 7 | - "4" 8 | before_install: 9 | - if [[ `npm -v` != 3* ]]; then npm i -g npm@3; fi 10 | - rvm use 2.2.2 --install --fuzzy 11 | - bundle install 12 | matrix: 13 | fast_finish: true 14 | notifications: 15 | email: false 16 | slack: 17 | secure: P/ngpvqinM/t9tdXZO2qHQvq2XCkcerKM+KwNJlQoVHnkl/Z/EtzB1yxiZZ6LGdHp+r3nShBhfW+gJVojU80EObt0iWHbFTkUUMFf6WI6c056937CksQI4atmDBiCJxMAnkd6DCLWfBexVtKDhkc5vX0bYhgoiXEzCYUhFd8pZ4= 18 | -------------------------------------------------------------------------------- /.uncssrc: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /ATTRIBUTION.md: -------------------------------------------------------------------------------- 1 | # CC BY-NC-ND 3.0 License Attribution 2 | 3 | Posts inside [`./_app/_posts/`](_app/_posts/) directory and all images and icon files are licensed as [CC BY-NC-ND 3.0](http://creativecommons.org/licenses/by-nc-nd/3.0/) Tunghsiao Liu. 4 | 5 | As stated in the license: 6 | > **Attribution** — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). 7 | 8 | For any use of the posts I require a prominently placed link to . 9 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at t@sparanoid.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Help Me Improve This Site 2 | 3 | If you found bugs and you know how to solve it, please fork this project, fix them and submit them via a [Pull Request](https://help.github.com/articles/using-pull-requests). 4 | 5 | If you have typos or corrections contributions, please initiate a discussion via a new issue. -------------------------------------------------------------------------------- /CONVENTIONS.md: -------------------------------------------------------------------------------- 1 | ## Git Commit Guidelines 2 | 3 | These rules are adopted from [the AngularJS commit conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/). 4 | 5 | ### Commit Message Format 6 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: 7 | 8 | ``` 9 | (): 10 | 11 | 12 | 13 |