当前位置: 首页 > 软件库 > Web应用开发 > >

made-mistakes-jekyll

授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发
软件类型 开源软件
地区 不详
投 递 者 祁宾白
操作系统 未知
开源组织
适用人群 未知
 软件概览

Made Mistakes Source Code

This is the source code of Made Mistakes, a personal blog and portfolio builtwith Jekyll Gulp, andNetlify.

Please note: Made Mistakes hasn't been "themed" like some of my otherJekyll repos and isn't compatiblewith the "default" GitHub Pages workflow without substantial alterations.

Plugins used

Images

Made Mistakes has a lot of image assets.src/assets/images/ has been split into its own repo and included as a Git submodule.

page.image.feature should be placed in src/assets/images/feature. Thesefeature images will be converted into various sizes to be responsively servedby browsers that support the srcset attribute.

Content helpers

Notices

Call-out text. Accepts the following types: info, danger, warning, and success. See style guide for visual examples.

Default notice example:

{% notice %}
Call out some text. **Markdown** is acceptable.
{% endnotice %}

Danger notice example:

{% notice danger %}
**Danger! Danger!** Use caution.
{% endnotice %}

Figure

Easily generate figure elements with optional caption and class parameters.

Examples:

In simplest usage:

{% figure %}
![Image](/path/to/image.jpg)
{% endfigure %}
<figure>
  <img src="/path/to/image.jpg" alt="Image" />
</figure>

If a figure contains an image (or multiple images), the surrounding <p> will be stripped:

{% figure %}
![Image](/path/to/image.jpg)
{% endfigure %}
<figure>
  <img src="/path/to/image.jpg" alt="Image" />
</figure>

You can provide a caption. Any markdown will be rendered:

{% figure caption:"*Markdown* caption" %}
![Image](/path/to/image.jpg)
{% endfigure %}
<figure>
  <img src="/path/to/image.jpg" alt="Image" />
  <figcaption><em>Markdown</em> caption</figcaption>
</figure>

You can also provide a class name(es) for CSS styling:

{% figure caption:"A caption" class:"classname" %}
![Image](/path/to/image.jpg)
{% endfigure %}
<figure class="classname">
  <img src="/path/to/image.jpg" alt="Image" />
  <figcaption>A caption</figcaption>
</figure>

Finally, the caption parameter will accept liquid output markup:

{% figure caption:"{{ page.title }}" %}
![Image](/path/to/image.jpg)
{% endfigure %}
<figure>
  <img src="/path/to/image.jpg" alt="Image" />
  <figcaption>The title of my post</figcaption>
</figure>

Lazyload

Lazyload images using lazysizesuntil they're actually needed for improved page performance.

Attribute Required Description
data-src Required Full path to image eg: /assets/images/filename.jpg. Use absolute URLS for those hosted externally.
src Optional Full path to low-quality image eg: /assets/images/filename.jpg. Use absolute URLS for those hosted externally. Defaults to inline transparent .gif.
alt Optional Image alternate text.

Example:

{% lazyload data-src="/assets/images/my-image.jpg" src="/assets/images/my-image-low-quality.jpg" alt="my lazyloaded image" %}

Responsive video embed

Embed a video from YouTube or Vimeo that responsively sizes to fit the width ofits parent using /_plugins/video_embed.rb.

YouTube

To embed the following YouTube video at url https://www.youtube.com/watch?v=XsxDH4HcOWA(long version) or https://youtu.be/XsxDH4HcOWA (short version) into a post orpage's main content you'd use:

{% youtube XsxDH4HcOWA %}
Vimeo

To embed the following Vimeo video at url https://vimeo.com/97649261 into apost or page's main content you'd use:

{% vimeo 97649261 %}

Local development

Let Jekyll do what it does best and transform your content into HTML. Assetmanagement is handled by Gulp:

  • build style.css (preprocess SCSS, add vendor prefixes, concatenate, minify,hash, and gzip)
  • build critical path CSS
  • build index.js (concatenate, minify, hash, and gzip)
  • optimize images
  • optimize and resize feature images
  • optimize and combine SVG icon set
  • serve site locally for testing with Browser Sync
  • deploy site to production server via Rsync
  • submit XML sitemap to Google & Bing

Default structure (paths can be modified in gulpfile.js and _config.yml):

├── gulp                      # => gulp tasks
├── src                       # => source Jekyll files and assets
|  ├── _includes
|  ├── _layouts
|  ├── _plugins
|  ├── ...
|  ├── _posts
|  ├── assets
|  |  ├── icons
|  |  ├── images
|  |  |   └── feature
|  |  ├── javascript
|  |  |   ├── plugins
|  |  |   ├── vendor
|  |  |   └── main.js
|  |  ├── stylesheets
|  |  |   ├── vendor
|  |  |   ├── ...
|  |  |   └── style.scss
├── .editorconfig
├── .gitignore
├── _config.dev.yml
├── _config.yml
├── Gemfile
├── gulpfile.js
├── package.json
├── rsync-credentials.json
├── ...

Getting started

Dependencies:

  • Ruby: >2.1 with Bundler >1.10
  • Node: >4.2 and Yo >1.7.0
  • Yarn
  • Gulp: Since the release candidate is running Gulp 4.0 you need to installgulp-cli: npm install gulp-cli -g

Step 1: Install Bundler, then run bundle install.

Step 2. Install Node.js and Yarn,then run yarn install.

Step 3: Install node-gyp.

Step 4. To start run gulp. A development version of the site should begenerated and opened in a browser with Browser Sync at http://localhost:4000.

Usage

gulp [--prod]

This is the default command, and probably the one you'll use the most. Thiscommand will build your assets and site with development settings. You'll getsourcemaps, your drafts will be generated. As you are changing your posts, pagesand assets they will automatically update and inject into your browser viaBrowserSync.

--prod

Once you are done and want to verify that everything works with productionsettings you add the flag --prod and your assets will be optimized. Your CSS,JS and HTML will be minified and gzipped, plus the CSS and JS will be cachebusted. The images will be compressed and Jekyll will generate a site with allyour posts and no drafts.

gulp build [--prod]

This command is identical to the normal gulp [--prod] however it will notcreate a BrowserSync session in your browser.

gulp (build) [--prod] main subtasks

gulp jekyll [--prod]

Without production settings Jekyll will only create both future posts and drafts.With --prod none of that is true and it will generate all your posts.

gulp styles|scripts [--prod]

Both your CSS and JS will have sourcemaps generated for them under developmentsettings. Once you generate them with production settings sourcemap generationis disabled. Both will be minified, gzipped and cache busted with productionsettings.

gulp images:optimize

Optimizes standard images and copies to /dist folder.

gulp images:feature

Similar to the previous task but for images in src/assets/images/feature.Resizes each image into various sizes to be served responsively with <img>srcset or <picture> elements, optimizes, and then copies to /dist folder.

gulp html --prod

Does nothing without --prod. Minifies and gzips your HTML files.

gulp serve

If you just want to watch your site you can run this command. If wanted you canalso edit the serve task to allow it to tunnel via localtunnelso people outside your local network can view it as well:

// tunnel: true,

You can also change the behavior for how it opens the URL when you run gulp [--prod], you can see the options here:

// open: false,

gulp icons

SVG assets are optimized and smashed together into assets/icons/icons.svg and canbe referenced by name. To update or add new assets place appropriately named.svg files into the src/assets/icons folder.

gulp deploy

When you're done developing and have built your site with either gulp --prodor gulp build --prod you can deploy your site with Rsync.

If you need any help with configuring it, checkout the gulp-rsync repo.

gulp submit:sitemap

Submit sitemap XML file to Google and Bing.

gulp check

Builds site with production settings then tests HTML for broken links withhtml-proofer.

gulp clean

Deletes your assets from their .tmp directory as well as in dist and deletesany gzipped files. NOTE: Does not delete your images from .tmp to reducethe time to build your site due to image optimizations.

gulp rebuild

Only use this if you want to regenerate everything, this will delete everything(images, assets, your generated Jekyll site). You really shouldn't need to dothis unless you have phantom image assets floating around you want to clear.

gulp critical

Extract critical path CSS from home, archive, post, and page layoutsto inline via Jekyll _includes.

Note: Clear critical-<layout>.css includes, run gulp build, then gulp critical.

Subtasks

All of the subtasks lives in their own files in the gulp directory and arenamed after what they do. You can edit or look at any of them to see how theyactually work. They're all commented.

Inject more than one JavaScript file

If you want to split up your JavaScript files into say a index.js and avendor.js file with files from [Bower][https://bower.io/] you can do thisquite easily. Create a copy of the scripts gulp task and rename it toscripts:vendor and change thegulp.src files you need:

gulp.src([
  'bower_components/somelibrary.js/dist/somelibrary.js',
  'bower_components/otherthing.js/dist/otherthing.js'
])

and then change .pipe(concat('index.js')) into.pipe(concat('vendor.js')). Then you go to the bottom of the gulpfile andchange the assets task:

gulp.task('assets', gulp.series(
  gulp.series('clean:assets'),
  gulp.parallel('styles', 'scripts:vendor', 'scripts', 'fonts', 'images')
));

Notice the scripts:vendor task that has been added. Also be aware that thingsare injected in alphabetical order, so if you need your vendor scripts beforethe index.js file you have to either rename the index.js file or rename thevendor.js file. When you now run gulp or gulp build it will create avendor.js file and automatically inject it at the bottom of your HTML. Whenrunning with --prod it'll automatically optimize as well.

For more advanced uses, refer to the gulp-inject documentation onhow to create individual inject tags and inject specific files into them.

Gulp tasks inspired by generator-jekyllized by Sondre Nilsen.


Posts and Pages

Comments are disabled by default. To enable add comments: true to the YAMLFront Matter. Preferred method is to enable via YAML Front Matter defaults in _config.yml.

License

The MIT License (MIT)

Copyright (c) 2004-2019 Michael Rose

Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.

Made Mistakes incorporates icons from The Noun Project.Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).Home by Mahmure Alp from the Noun Project

Made Mistakes incorporates photographs from Unsplash.

Made Mistakes incorporates Breakpoint.Breakpoint is distributed under the terms of the MIT/GPL Licenses.

Made Mistakes incorporates Bigfoot,Copyright (c) 2013-2014, Chris Sauve.Bigfoot is distributed under the terms of the MIT License](http://opensource.org/licenses/MIT).

Made Mistakes incorporates Lity,Copyright (c) 2015-2016, Jan Sorgalla.Lity is distributed under the terms of the MIT License](http://opensource.org/licenses/MIT).

Made Mistakes incorporates Smooth Scroll,Copyright (c) 2019, Chris Ferdinandi.Smooth Scroll is distributed under the terms of the MIT License.

Made Mistakes incorporates Lazysizes,Copyright (c) 2015, Alexander Farkas.Lazysizes is distributed under the terms of the MIT License.

Made Mistakes incorporates SVG for Everybody,Copyright (c) Jonathan Neal.SVG for Everybody is distributed under the terms of the CC0 1.0 Universal License.

 相关资料
  • Minimal Mistakes 是一个灵活的两列 Jekyll 主题,非常适合构建个人网站、博客和投资组合。 特性: 捆绑为“theme gem”,以便于安装/升级。 与 GitHub 页面兼容。 支持 Jekyll 的内置 Sass/SCSS 预处理器。 九种不同的皮肤(颜色变化)。 几个响应式布局选项(单个、存档索引、搜索、启动和分页主页)。 针对搜索引擎进行了优化,支持Twitter Ca

  • CMS Made Simple 是一个易于使用的内容管理系统用于具有简单、稳定内容的网站。 使用 PHP,MySQL 和 Smarty 模板引擎开发。它具有:基于角色的权限管理系统,智能缓存机制(只有当需要时才会从数据库获取),基于向导的安装与更新机制,对系统资源占用少,还包含文件管理,新闻发布和 RSS 模块等。 在线 DEMO 体验

  • 我试图通过一个用Flask制作的API从我的react应用程序中添加用户。但是post请求出现了以下错误。 'http://localhost:5000/api/v1.0/add'from origin'http://localhost:3000'已被CORS策略阻止:在飞行前响应中,access-control-allog-headers不允许请求头字段access-control-allog-

  • 问题内容: 我尝试使用Jekyll新命令,但是它不起作用,并在出现错误后出现。 我正在使用Mac OS X 10.8.5 Mountain Lion。 但这对我的情况不起作用。我卸载并重新安装了json,但没有任何反应。如果您知道其他解决方案,请告诉我。自本周初以来,我一直在解决这个问题。 我的宝石清单和宝石环境如下。 请给我建议以帮助我。谢谢! 3月7日更新。 以防万一您想查看自制软件列表, 2

  • 本文向大家介绍jekyll GitHub页面,包括了jekyll GitHub页面的使用技巧和注意事项,需要的朋友参考一下 示例 GitHub为用户或组织和项目站点提供无限托管。Jekyll和静态文件均可用。 以下是在Github上托管Jekyll博客的步骤。 设定 用户或组织站点 创建一个名为username.github.io的存储库,其中username是您在GitHub上的用户名(或组织名

  • Jekyll 是最早开始流行的静态网站构建工具,使用Ruby语言开发,开源已有9个年头了,是Github Pages默认的静态网站构建工具。当前互联网上有大量基于jekyll构建的静态网站,包括现在流行的开源容器编排调度引擎kubernetes的官网。 Jekyll的理念 Jekyll网站构建的理念就是只做用户告诉它要做的事情,不多也不少: No Magic:简单易懂 It “Just Works