Compare commits
2 Commits
3eef5993c2
...
f6d731b520
Author | SHA1 | Date |
---|---|---|
|
f6d731b520 | |
|
9f8bce4cbc |
|
@ -1,37 +0,0 @@
|
|||
module.exports = {
|
||||
parserPreset: 'conventional-changelog-conventionalcommits',
|
||||
rules: {
|
||||
'body-leading-blank': [1, 'always'],
|
||||
'footer-leading-blank': [1, 'always'],
|
||||
'header-max-length': [2, 'always', 72],
|
||||
'scope-case': [2, 'always', 'lower-case'],
|
||||
'subject-case': [
|
||||
2,
|
||||
'never',
|
||||
['sentence-case', 'start-case', 'pascal-case', 'upper-case']
|
||||
],
|
||||
'subject-empty': [2, 'never'],
|
||||
'subject-full-stop': [2, 'never', '.'],
|
||||
'type-case': [2, 'always', 'lower-case'],
|
||||
'type-empty': [2, 'never'],
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
[
|
||||
'build',
|
||||
'chore',
|
||||
'ci',
|
||||
'docs',
|
||||
'feat',
|
||||
'fix',
|
||||
'improvement',
|
||||
'perf',
|
||||
'refactor',
|
||||
'release',
|
||||
'revert',
|
||||
'style',
|
||||
'test'
|
||||
]
|
||||
]
|
||||
}
|
||||
};
|
|
@ -1,11 +1,13 @@
|
|||
# http://editorconfig.org
|
||||
# editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
max_line_length = 80
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = false
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
|
20
.eslintrc
20
.eslintrc
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"jquery": true,
|
||||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
"no-console": "error",
|
||||
"semi": ["error", "always"],
|
||||
"quotes": ["error", "single"],
|
||||
"comma-dangle": ["error", "never"],
|
||||
"block-scoped-var": "error",
|
||||
"default-case": "error",
|
||||
"no-extra-bind": "error",
|
||||
"camelcase": "error",
|
||||
"indent": ["error", 2, { "SwitchCase": 1 }],
|
||||
"eol-last": ["error", "always"]
|
||||
},
|
||||
"extends": ["eslint:recommended"]
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
assets/fonts/* linguist-vendored
|
||||
assets/js/main.min.js linguist-vendored
|
||||
assets/js/lunr/* linguist-vendored
|
||||
assets/js/plugins/* linguist-vendored
|
||||
assets/js/vendor/* linguist-vendored
|
||||
_sass/minimal-mistakes/vendor/* linguist-vendored
|
||||
CHANGELOG.md text merge=union
|
||||
docs/_docs/18-history.md text merge=union
|
||||
|
||||
*.md text
|
|
@ -1,28 +1,32 @@
|
|||
# Vim
|
||||
*~
|
||||
~*
|
||||
*.diff
|
||||
*.patch
|
||||
*.bak
|
||||
.DS_Store
|
||||
*.swp
|
||||
*.swo
|
||||
*.log
|
||||
*.log.*
|
||||
*.sw[p_]
|
||||
|
||||
/.vscode/
|
||||
build/
|
||||
# IntelliJ IDEA
|
||||
*.idea
|
||||
|
||||
node_modules/
|
||||
.sass-cache/
|
||||
# Sublime Text
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
|
||||
/.bundle/
|
||||
/vendor/bundle
|
||||
# Ruby Gem
|
||||
*.gem
|
||||
|
||||
yarn.lock
|
||||
package-lock.json
|
||||
.bundle
|
||||
Gemfile.lock
|
||||
**/vendor/bundle
|
||||
|
||||
_site/
|
||||
# Node.js and NPM
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
package-lock.json
|
||||
codekit-config.json
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
# Jekyll generated files
|
||||
.jekyll-cache
|
||||
.jekyll-metadata
|
||||
.jekyll-cache/
|
||||
.sass-cache
|
||||
_asset_bundler_cache
|
||||
_site
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"MD033": false,
|
||||
"MD013": false,
|
||||
"MD041": false
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
/node_modules/
|
||||
/_gh_pages/
|
||||
**/dist/
|
||||
**/*.min.css
|
||||
**/vendor/
|
276
.stylelintrc
276
.stylelintrc
|
@ -1,276 +0,0 @@
|
|||
|
||||
{
|
||||
"extends": ["stylelint-config-standard", "stylelint-config-recommended-scss"],
|
||||
"plugins": [
|
||||
"stylelint-order"
|
||||
],
|
||||
"rules": {
|
||||
"at-rule-empty-line-before": null,
|
||||
"at-rule-name-space-after": "always",
|
||||
"at-rule-no-vendor-prefix": true,
|
||||
"at-rule-semicolon-space-before": "never",
|
||||
"block-closing-brace-empty-line-before": null,
|
||||
"block-closing-brace-newline-after": null,
|
||||
"block-opening-brace-space-before": null,
|
||||
"color-named": "never",
|
||||
"color-hex-case": "lower",
|
||||
"color-hex-length": "short",
|
||||
"declaration-block-semicolon-newline-after": "always-multi-line",
|
||||
"declaration-block-semicolon-newline-before": "never-multi-line",
|
||||
"declaration-block-semicolon-space-after": "always-single-line",
|
||||
"declaration-empty-line-before": null,
|
||||
"declaration-no-important": true,
|
||||
"font-family-name-quotes": "always-where-recommended",
|
||||
"font-weight-notation": null,
|
||||
"function-url-no-scheme-relative": true,
|
||||
"function-url-quotes": "always",
|
||||
"length-zero-no-unit": true,
|
||||
"max-empty-lines": 2,
|
||||
"max-line-length": null,
|
||||
"media-feature-name-no-vendor-prefix": true,
|
||||
"media-feature-parentheses-space-inside": "never",
|
||||
"media-feature-range-operator-space-after": "always",
|
||||
"media-feature-range-operator-space-before": "never",
|
||||
"no-descending-specificity": null,
|
||||
"no-duplicate-selectors": true,
|
||||
"number-leading-zero": "never",
|
||||
"media-feature-name-no-unknown": [true, {
|
||||
"ignoreMediaFeatureNames": ["prefers-reduced-motion"]
|
||||
}],
|
||||
"order/properties-order": [
|
||||
"position",
|
||||
"top",
|
||||
"right",
|
||||
"bottom",
|
||||
"left",
|
||||
"z-index",
|
||||
"box-sizing",
|
||||
"display",
|
||||
"flex",
|
||||
"flex-align",
|
||||
"flex-basis",
|
||||
"flex-direction",
|
||||
"flex-wrap",
|
||||
"flex-flow",
|
||||
"flex-shrink",
|
||||
"flex-grow",
|
||||
"flex-order",
|
||||
"flex-pack",
|
||||
"align-content",
|
||||
"align-items",
|
||||
"align-self",
|
||||
"justify-content",
|
||||
"order",
|
||||
"float",
|
||||
"width",
|
||||
"min-width",
|
||||
"max-width",
|
||||
"height",
|
||||
"min-height",
|
||||
"max-height",
|
||||
"padding",
|
||||
"padding-top",
|
||||
"padding-right",
|
||||
"padding-bottom",
|
||||
"padding-left",
|
||||
"margin",
|
||||
"margin-top",
|
||||
"margin-right",
|
||||
"margin-bottom",
|
||||
"margin-left",
|
||||
"overflow",
|
||||
"overflow-x",
|
||||
"overflow-y",
|
||||
"-webkit-overflow-scrolling",
|
||||
"-ms-overflow-x",
|
||||
"-ms-overflow-y",
|
||||
"-ms-overflow-style",
|
||||
"columns",
|
||||
"column-count",
|
||||
"column-fill",
|
||||
"column-gap",
|
||||
"column-rule",
|
||||
"column-rule-width",
|
||||
"column-rule-style",
|
||||
"column-rule-color",
|
||||
"column-span",
|
||||
"column-width",
|
||||
"orphans",
|
||||
"widows",
|
||||
"clip",
|
||||
"clear",
|
||||
"font",
|
||||
"font-family",
|
||||
"font-size",
|
||||
"font-style",
|
||||
"font-weight",
|
||||
"font-variant",
|
||||
"font-size-adjust",
|
||||
"font-stretch",
|
||||
"font-effect",
|
||||
"font-emphasize",
|
||||
"font-emphasize-position",
|
||||
"font-emphasize-style",
|
||||
"font-smooth",
|
||||
"src",
|
||||
"hyphens",
|
||||
"line-height",
|
||||
"color",
|
||||
"text-align",
|
||||
"text-align-last",
|
||||
"text-emphasis",
|
||||
"text-emphasis-color",
|
||||
"text-emphasis-style",
|
||||
"text-emphasis-position",
|
||||
"text-decoration",
|
||||
"text-indent",
|
||||
"text-justify",
|
||||
"text-outline",
|
||||
"-ms-text-overflow",
|
||||
"text-overflow",
|
||||
"text-overflow-ellipsis",
|
||||
"text-overflow-mode",
|
||||
"text-shadow",
|
||||
"text-transform",
|
||||
"text-wrap",
|
||||
"-webkit-text-size-adjust",
|
||||
"-ms-text-size-adjust",
|
||||
"letter-spacing",
|
||||
"-ms-word-break",
|
||||
"word-break",
|
||||
"word-spacing",
|
||||
"-ms-word-wrap",
|
||||
"word-wrap",
|
||||
"overflow-wrap",
|
||||
"tab-size",
|
||||
"white-space",
|
||||
"vertical-align",
|
||||
"direction",
|
||||
"unicode-bidi",
|
||||
"list-style",
|
||||
"list-style-position",
|
||||
"list-style-type",
|
||||
"list-style-image",
|
||||
"pointer-events",
|
||||
"-ms-touch-action",
|
||||
"touch-action",
|
||||
"cursor",
|
||||
"visibility",
|
||||
"zoom",
|
||||
"table-layout",
|
||||
"empty-cells",
|
||||
"caption-side",
|
||||
"border-spacing",
|
||||
"border-collapse",
|
||||
"content",
|
||||
"quotes",
|
||||
"counter-reset",
|
||||
"counter-increment",
|
||||
"resize",
|
||||
"user-select",
|
||||
"nav-index",
|
||||
"nav-up",
|
||||
"nav-right",
|
||||
"nav-down",
|
||||
"nav-left",
|
||||
"background",
|
||||
"background-color",
|
||||
"background-image",
|
||||
"filter",
|
||||
"background-repeat",
|
||||
"background-attachment",
|
||||
"background-position",
|
||||
"background-position-x",
|
||||
"background-position-y",
|
||||
"background-clip",
|
||||
"background-origin",
|
||||
"background-size",
|
||||
"border",
|
||||
"border-color",
|
||||
"border-style",
|
||||
"border-width",
|
||||
"border-top",
|
||||
"border-top-color",
|
||||
"border-top-style",
|
||||
"border-top-width",
|
||||
"border-right",
|
||||
"border-right-color",
|
||||
"border-right-style",
|
||||
"border-right-width",
|
||||
"border-bottom",
|
||||
"border-bottom-color",
|
||||
"border-bottom-style",
|
||||
"border-bottom-width",
|
||||
"border-left",
|
||||
"border-left-color",
|
||||
"border-left-style",
|
||||
"border-left-width",
|
||||
"border-radius",
|
||||
"border-top-left-radius",
|
||||
"border-top-right-radius",
|
||||
"border-bottom-right-radius",
|
||||
"border-bottom-left-radius",
|
||||
"border-image",
|
||||
"border-image-source",
|
||||
"border-image-slice",
|
||||
"border-image-width",
|
||||
"border-image-outset",
|
||||
"border-image-repeat",
|
||||
"outline",
|
||||
"outline-width",
|
||||
"outline-style",
|
||||
"outline-color",
|
||||
"outline-offset",
|
||||
"box-shadow",
|
||||
"opacity",
|
||||
"-ms-interpolation-mode",
|
||||
"page-break-after",
|
||||
"page-break-before",
|
||||
"page-break-inside",
|
||||
"transition",
|
||||
"transition-delay",
|
||||
"transition-timing-function",
|
||||
"transition-duration",
|
||||
"transition-property",
|
||||
"transform",
|
||||
"transform-origin",
|
||||
"perspective",
|
||||
"appearance",
|
||||
"animation",
|
||||
"animation-name",
|
||||
"animation-duration",
|
||||
"animation-play-state",
|
||||
"animation-timing-function",
|
||||
"animation-delay",
|
||||
"animation-iteration-count",
|
||||
"animation-direction",
|
||||
"animation-fill-mode",
|
||||
"fill",
|
||||
"stroke"
|
||||
],
|
||||
"property-no-vendor-prefix": true,
|
||||
"rule-empty-line-before": null,
|
||||
"selector-attribute-quotes": "always",
|
||||
"selector-list-comma-newline-after": "always-multi-line",
|
||||
"selector-list-comma-newline-before": "never-multi-line",
|
||||
"selector-list-comma-space-after": "always-single-line",
|
||||
"selector-list-comma-space-before": "never-single-line",
|
||||
"selector-max-attribute": 2,
|
||||
"selector-max-class": 4,
|
||||
"selector-max-combinators": 4,
|
||||
"selector-max-compound-selectors": 4,
|
||||
"selector-max-empty-lines": 1,
|
||||
"selector-max-id": 0,
|
||||
"selector-max-specificity": null,
|
||||
"selector-max-type": 2,
|
||||
"selector-max-universal": 1,
|
||||
"selector-no-qualifying-type": null,
|
||||
"selector-no-vendor-prefix": true,
|
||||
"string-quotes": "double",
|
||||
"value-keyword-case": "lower",
|
||||
"value-list-comma-newline-after": "never-multi-line",
|
||||
"value-list-comma-newline-before": "never-multi-line",
|
||||
"value-list-comma-space-after": "always",
|
||||
"value-no-vendor-prefix": true
|
||||
}
|
||||
}
|
22
.travis.yml
22
.travis.yml
|
@ -1,17 +1,11 @@
|
|||
language: ruby
|
||||
rvm:
|
||||
- 2.4.1
|
||||
cache: bundler
|
||||
gemfile: docs/Gemfile
|
||||
script:
|
||||
- bundle exec jekyll algolia --source docs --destination docs/_site --config docs/_config.yml
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
before_script: cp -rfv docs/_includes .
|
||||
script: JEKYLL_ENV=production bundle exec jekyll build --config ./docs/_config.yml
|
||||
deploy:
|
||||
provider: pages
|
||||
skip_cleanup: true
|
||||
github_token: $GITHUB_TOKEN
|
||||
local_dir: _site
|
||||
keep-history: true
|
||||
on:
|
||||
branch: master
|
||||
target_branch: gh-pages
|
||||
# Change this to gh-pages if you're deploying using the gh-pages branch
|
||||
- master
|
||||
rvm:
|
||||
- 2.4
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"markdownlint.config": {
|
||||
"MD033": {
|
||||
"allowed_elements": [
|
||||
"table",
|
||||
"tr",
|
||||
"td",
|
||||
"a",
|
||||
"br",
|
||||
"img",
|
||||
"sub",
|
||||
"b",
|
||||
"kbd",
|
||||
"h1",
|
||||
"p",
|
||||
"video",
|
||||
"source"
|
||||
]
|
||||
},
|
||||
"MD041": false
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,18 +0,0 @@
|
|||
FROM ruby:2.7
|
||||
|
||||
# Set default locale for the environment
|
||||
ENV LC_ALL C.UTF-8
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US.UTF-8
|
||||
|
||||
# throw errors if Gemfile has been modified since Gemfile.lock
|
||||
RUN bundle config --global frozen 1
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
COPY Gemfile Gemfile.lock jekyll-text-theme.gemspec ./
|
||||
RUN bundle install
|
||||
|
||||
EXPOSE 4000
|
||||
|
||||
CMD ["bundle", "exec", "jekyll", "help"]
|
2
Gemfile
2
Gemfile
|
@ -1,4 +1,2 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
gemspec
|
||||
|
|
4
LICENSE
4
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Tian Qi
|
||||
Copyright (c) 2013-2024 Michael Rose and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -0,0 +1,207 @@
|
|||
require "bundler/gem_tasks"
|
||||
require "jekyll"
|
||||
require "json"
|
||||
require "listen"
|
||||
require "rake/clean"
|
||||
require "shellwords"
|
||||
require "time"
|
||||
require "yaml"
|
||||
|
||||
task :default => %i[copyright changelog js version]
|
||||
|
||||
package_json = JSON.parse(File.read("package.json"))
|
||||
|
||||
def listen_ignore_paths(base, options)
|
||||
[
|
||||
/_config\.ya?ml/,
|
||||
/_site/,
|
||||
/\.jekyll-metadata/
|
||||
]
|
||||
end
|
||||
|
||||
def listen_handler(base, options)
|
||||
site = Jekyll::Site.new(options)
|
||||
Jekyll::Command.process_site(site)
|
||||
proc do |modified, added, removed|
|
||||
t = Time.now
|
||||
c = modified + added + removed
|
||||
n = c.length
|
||||
relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
|
||||
print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
|
||||
begin
|
||||
Jekyll::Command.process_site(site)
|
||||
puts "regenerated in #{Time.now - t} seconds."
|
||||
rescue => e
|
||||
puts "error:"
|
||||
Jekyll.logger.warn "Error:", e.message
|
||||
Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task :preview do
|
||||
base = Pathname.new('.').expand_path
|
||||
options = {
|
||||
"source" => base.join('test').to_s,
|
||||
"destination" => base.join('test/_site').to_s,
|
||||
"force_polling" => false,
|
||||
"serving" => true,
|
||||
"theme" => "minimal-mistakes-jekyll"
|
||||
}
|
||||
|
||||
options = Jekyll.configuration(options)
|
||||
|
||||
ENV["LISTEN_GEM_DEBUGGING"] = "1"
|
||||
listener = Listen.to(
|
||||
base.join("_data"),
|
||||
base.join("_includes"),
|
||||
base.join("_layouts"),
|
||||
base.join("_sass"),
|
||||
base.join("assets"),
|
||||
options["source"],
|
||||
:ignore => listen_ignore_paths(base, options),
|
||||
:force_polling => options['force_polling'],
|
||||
&(listen_handler(base, options))
|
||||
)
|
||||
|
||||
begin
|
||||
listener.start
|
||||
Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
|
||||
|
||||
unless options['serving']
|
||||
trap("INT") do
|
||||
listener.stop
|
||||
puts " Halting auto-regeneration."
|
||||
exit 0
|
||||
end
|
||||
sleep
|
||||
end
|
||||
rescue ThreadError
|
||||
# You pressed Ctrl-C, oh my!
|
||||
end
|
||||
|
||||
Jekyll::Commands::Serve.process(options)
|
||||
end
|
||||
|
||||
task :history => :changelog
|
||||
task :changelog => "docs/_docs/18-history.md"
|
||||
file "docs/_docs/18-history.md" => "CHANGELOG.md" do |t|
|
||||
front_matter = {
|
||||
title: "History",
|
||||
classes: "wide",
|
||||
permalink: "/docs/history/",
|
||||
excerpt: "Change log of enhancements and bug fixes made to the theme.",
|
||||
sidebar: {
|
||||
nav: "docs",
|
||||
},
|
||||
last_modified_at: Time.now.iso8601,
|
||||
toc: false,
|
||||
}
|
||||
# https://stackoverflow.com/a/49553523/5958455
|
||||
front_matter = JSON.parse(JSON.dump(front_matter))
|
||||
File.open(t.name, "w") do |f|
|
||||
f.puts front_matter.to_yaml
|
||||
f.puts "---"
|
||||
f.puts ""
|
||||
f.puts "<!--\n Sourced from CHANGELOG.md\n See Rakefile `task :changelog` for details\n-->"
|
||||
f.puts ""
|
||||
f.puts "{% raw %}"
|
||||
# Remove H1
|
||||
changelog = File.read(t.prerequisites.first)
|
||||
.gsub(/^# [^\n]*$/m, "")
|
||||
.gsub(/\(#(\d+)\)$/m, "[#\\1](https://github.com/mmistakes/minimal-mistakes/issues/\\1)")
|
||||
.strip
|
||||
f.write changelog
|
||||
f.puts ""
|
||||
f.puts "{% endraw %}"
|
||||
end
|
||||
end
|
||||
|
||||
COPYRIGHT_LINES = [
|
||||
"Minimal Mistakes Jekyll Theme #{package_json["version"]} by Michael Rose",
|
||||
"Copyright 2013-#{Time.now.year} Michael Rose - mademistakes.com | @mmistakes",
|
||||
"Free for personal and commercial use under the MIT license",
|
||||
"https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE",
|
||||
]
|
||||
|
||||
COPYRIGHT_FILES = [
|
||||
"_includes/copyright.html",
|
||||
"_includes/copyright.js",
|
||||
"_sass/minimal-mistakes/_copyright.scss",
|
||||
]
|
||||
|
||||
def genenerate_copyright_file(filename, header, prefix, footer)
|
||||
File.open(filename, "w") do |f|
|
||||
f.puts header
|
||||
COPYRIGHT_LINES.each do |line|
|
||||
f.puts "#{prefix}#{line}"
|
||||
end
|
||||
f.puts footer
|
||||
end
|
||||
end
|
||||
|
||||
file "_includes/copyright.html" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "<!--", " ", "-->")
|
||||
end
|
||||
|
||||
file "_includes/copyright.js" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "/*!", " * ", " */")
|
||||
end
|
||||
|
||||
file "_sass/minimal-mistakes/_copyright.scss" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "/*!", " * ", " */")
|
||||
end
|
||||
|
||||
task :copyright => COPYRIGHT_FILES
|
||||
|
||||
CLEAN.include(*COPYRIGHT_FILES)
|
||||
|
||||
JS_FILES = ["assets/js/vendor/jquery/jquery-3.6.0.js"] + Dir.glob("assets/js/plugins/*.js") + ["assets/js/_main.js"]
|
||||
JS_TARGET = "assets/js/main.min.js"
|
||||
task :js => JS_TARGET
|
||||
file JS_TARGET => ["_includes/copyright.js"] + JS_FILES do |t|
|
||||
sh Shellwords.join(%w[npx uglifyjs -c --comments /@mmistakes/ --source-map -m -o] +
|
||||
[t.name] + t.prerequisites)
|
||||
end
|
||||
|
||||
task :watch_js do
|
||||
listener = Listen.to(
|
||||
"assets/js",
|
||||
ignore: /main\.min\.js$/,
|
||||
) do |modified, added, removed|
|
||||
Rake::Task[:js].invoke
|
||||
end
|
||||
|
||||
trap("INT") do
|
||||
listener.stop
|
||||
exit 0
|
||||
end
|
||||
|
||||
begin
|
||||
listener.start
|
||||
sleep
|
||||
rescue ThreadError
|
||||
end
|
||||
end
|
||||
|
||||
task :version => ["docs/_data/theme.yml", "README.md", "docs/_pages/home.md"]
|
||||
|
||||
file "docs/_data/theme.yml" => "package.json" do |t|
|
||||
theme = { "version" => package_json["version"] }
|
||||
File.open(t.name, "w") do |f|
|
||||
f.puts "# for use with in-page templates"
|
||||
f.puts theme.to_yaml
|
||||
end
|
||||
end
|
||||
|
||||
file "README.md" => "package.json" do |t|
|
||||
content = File.read(t.name)
|
||||
content = content.gsub(/(mmistakes\/minimal-mistakes@)[\d.]+/, '\1' + package_json["version"])
|
||||
File.write(t.name, content)
|
||||
end
|
||||
|
||||
file "docs/_pages/home.md" => "package.json" do |t|
|
||||
content = File.read(t.name)
|
||||
content = content.gsub(/(\breleases\/tag\/|Latest release v)[\d.]+/, '\1' + package_json["version"])
|
||||
File.write(t.name, content)
|
||||
end
|
494
_config.yml
494
_config.yml
|
@ -1,236 +1,316 @@
|
|||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your whole blog, values
|
||||
# This config file is meant for settings that affect your entire site, values
|
||||
# which you are expected to set up once and rarely need to edit after that.
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# 'jekyll serve'. If you change this file, please restart the server process.
|
||||
# `jekyll serve`. If you change this file, please restart the server process.
|
||||
|
||||
# Theme Settings
|
||||
#
|
||||
# ,--------. ,--. ,--. ,--.
|
||||
# '--. .--',---. \ `.' /,-' '-.
|
||||
# | | | .-. : .' \ '-. .-'
|
||||
# | | \ --. / .'. \ | |
|
||||
# `--' `----''--' '--' `--'
|
||||
# Review documentation to determine if you should use `theme` or `remote_theme`
|
||||
# https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/#installing-the-theme
|
||||
|
||||
# theme : "minimal-mistakes-jekyll"
|
||||
# remote_theme : "mmistakes/minimal-mistakes"
|
||||
minimal_mistakes_skin : "dark" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
|
||||
|
||||
|
||||
|
||||
## => Site Settings
|
||||
##############################
|
||||
text_skin: dark # "default" (default), "dark", "forest", "ocean", "chocolate", "orange"
|
||||
highlight_theme: tomorrow-night-eighties # "default" (default), "tomorrow", "tomorrow-night", "tomorrow-night-eighties", "tomorrow-night-blue", "tomorrow-night-bright"
|
||||
url : https://wing-summer.github.io/WingHexExplorer2 # the base hostname & protocol for your site e.g. https://www.someone.com
|
||||
baseurl : # does not include hostname
|
||||
title : WingHexExplorer2
|
||||
description: > # this means to ignore newlines until "Language & timezone"
|
||||
一个自由强大跨平台的十六进制编辑器
|
||||
|
||||
|
||||
## => Language and Timezone
|
||||
##############################
|
||||
lang: zh-Hans # the language of your site, default as "en"
|
||||
timezone: # see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for the available values
|
||||
|
||||
|
||||
## => Author and Social
|
||||
##############################
|
||||
author:
|
||||
type : # "person" (default), "organization"
|
||||
name : 寂静的羽夏
|
||||
url : https://www.cnblogs.com/wingsummer
|
||||
avatar : # path or url of avatar image (square)
|
||||
bio : 一个热爱计算机技术的菜鸟
|
||||
email :
|
||||
facebook : # "user_name" the last part of your profile url, e.g. https://www.facebook.com/user_name
|
||||
twitter : # "user_name" the last part of your profile url, e.g. https://twitter.com/user_name
|
||||
weibo : # "user_id" the last part of your profile url, e.g. https://www.weibo.com/user_id/profile?...
|
||||
googleplus: # "user_id" the last part of your profile url, e.g. https://plus.google.com/u/0/user_id
|
||||
telegram : # "user_name" the last part of your profile url, e.g. https://t.me/user_name
|
||||
medium : # "user_name" the last part of your profile url, e.g. https://medium.com/user_name
|
||||
zhihu : # "user_name" the last part of your profile url, e.g. https://www.zhihu.com/people/user_name
|
||||
douban : # "user_name" the last part of your profile url, e.g. https://www.douban.com/people/user_name
|
||||
linkedin : # "user_name" the last part of your profile url, e.g. https://www.linkedin.com/in/user_name
|
||||
github : Wing-summer
|
||||
npm : # "user_name" the last part of your profile url, e.g. https://www.npmjs.com/~user_name
|
||||
|
||||
|
||||
## => GitHub Repository (if the site is hosted by GitHub)
|
||||
##############################
|
||||
repository: wingsummer/WingHexExplorer2
|
||||
repository_tree: main
|
||||
|
||||
|
||||
## => Paths
|
||||
##############################
|
||||
paths:
|
||||
root : # title link url, "/" (default)
|
||||
home : # home layout url, "/" (default)
|
||||
archive : # "/archive.html" (default)
|
||||
rss : # "/feed.xml" (default)
|
||||
|
||||
|
||||
## => Post
|
||||
##############################
|
||||
## excerpt
|
||||
excerpt_separator: <!--more-->
|
||||
|
||||
## license
|
||||
license: BY-NC-SA-4.0 # "CC-BY-4.0", "CC-BY-SA-4.0", "CC-BY-NC-4.0", "CC-BY-ND-4.0", "BY-NC-SA-4.0"
|
||||
|
||||
## TOC
|
||||
toc:
|
||||
selectors: # "h1,h2,h3" (default)
|
||||
|
||||
## => Markdown Enhancements
|
||||
##############################
|
||||
## Mathjax
|
||||
mathjax: # false (default), true
|
||||
mathjax_autoNumber: # false (default), true
|
||||
|
||||
## Mermaid
|
||||
mermaid: true # false (default), true
|
||||
|
||||
## Chart
|
||||
chart: # false (default), true
|
||||
|
||||
|
||||
## => Paginate
|
||||
##############################
|
||||
paginate: 8
|
||||
paginate_path: /page:num # don't change this unless for special need
|
||||
|
||||
|
||||
## => Sources
|
||||
##############################
|
||||
sources: # bootcdn (default), unpkg
|
||||
|
||||
|
||||
## => Sharing
|
||||
##############################
|
||||
sharing:
|
||||
provider: false # false (default), "addtoany", "addthis", "custom"
|
||||
|
||||
## AddThis
|
||||
addthis:
|
||||
id: # AddThis pubid, e.g. ra-5xxxxxxxxxxx
|
||||
|
||||
|
||||
## => Comments
|
||||
##############################
|
||||
# Site Settings
|
||||
locale : "zh-CN"
|
||||
rtl : # true, false (default) # turns direction of the page into right to left for RTL languages
|
||||
title : "WingHexExplorer2"
|
||||
title_separator : "-"
|
||||
subtitle : "羽云十六进制编辑器2" # site tagline that appears below site title in masthead
|
||||
name : "寂静的羽夏"
|
||||
description : "一个自由强大跨平台的十六进制编辑器"
|
||||
url : https://wing-summer.github.io # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
||||
baseurl : /WingHexExplorer2 # the subpath of your site, e.g. "/blog"
|
||||
repository : wingsummer/WingHexExplorer2 # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
|
||||
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
||||
logo : "/assets/images/appicon.png" # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
|
||||
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
|
||||
breadcrumbs : # true, false (default)
|
||||
words_per_minute : 200
|
||||
enable_copy_code_button : true # true, false (default)
|
||||
copyright : "寂静的羽夏 (wingsummer)" # "copyright" name, defaults to site.title
|
||||
copyright_url : ”https://www.cnblogs.com/wingsummer“ # "copyright" URL, defaults to site.url
|
||||
comments:
|
||||
provider: false # false (default), "disqus", "gitalk", "valine", "custom"
|
||||
|
||||
## Disqus
|
||||
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "giscus", "custom"
|
||||
disqus:
|
||||
shortname: # the Disqus shortname for the site
|
||||
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
|
||||
discourse:
|
||||
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
|
||||
facebook:
|
||||
# https://developers.facebook.com/docs/plugins/comments
|
||||
appid :
|
||||
num_posts : # 5 (default)
|
||||
colorscheme : # "light" (default), "dark"
|
||||
utterances:
|
||||
theme : # "github-light" (default), "github-dark"
|
||||
issue_term : # "pathname" (default)
|
||||
giscus:
|
||||
repo_id : # Shown during giscus setup at https://giscus.app
|
||||
category_name : # Full text name of the category
|
||||
category_id : # Shown during giscus setup at https://giscus.app
|
||||
discussion_term : # "pathname" (default), "url", "title", "og:title"
|
||||
reactions_enabled : # '1' for enabled (default), '0' for disabled
|
||||
theme : # "light" (default), "dark", "dark_dimmed", "transparent_dark", "preferred_color_scheme"
|
||||
strict : # 1 for enabled, 0 for disabled (default)
|
||||
input_position : # "top", "bottom" # The comment input box will be placed above or below the comments
|
||||
emit_metadata : # 1 for enabled, 0 for disabled (default) # https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#imetadatamessage
|
||||
lang : # "en" (default)
|
||||
lazy : # true, false # Loading of the comments will be deferred until the user scrolls near the comments container.
|
||||
staticman:
|
||||
branch : # "master"
|
||||
endpoint : # "https://{your Staticman v3 API}/v3/entry/github/"
|
||||
reCaptcha:
|
||||
siteKey :
|
||||
secret :
|
||||
atom_feed:
|
||||
path : # blank (default) uses feed.xml
|
||||
hide : # true, false (default)
|
||||
search : # true, false (default)
|
||||
search_full_content : # true, false (default)
|
||||
search_provider : # lunr (default), algolia, google
|
||||
lunr:
|
||||
search_within_pages : # true, false (default)
|
||||
algolia:
|
||||
application_id : # YOUR_APPLICATION_ID
|
||||
index_name : # YOUR_INDEX_NAME
|
||||
search_only_api_key : # YOUR_SEARCH_ONLY_API_KEY
|
||||
powered_by : # true (default), false
|
||||
google:
|
||||
search_engine_id : # YOUR_SEARCH_ENGINE_ID
|
||||
instant_search : # false (default), true
|
||||
# SEO Related
|
||||
google_site_verification :
|
||||
bing_site_verification :
|
||||
naver_site_verification :
|
||||
yandex_site_verification :
|
||||
baidu_site_verification :
|
||||
|
||||
## Gitalk
|
||||
# please refer to https://github.com/gitalk/gitalk for more info.
|
||||
gitalk:
|
||||
clientID : # GitHub Application Client ID
|
||||
clientSecret: # GitHub Application Client Secret
|
||||
repository : # GitHub repo
|
||||
owner : # GitHub repo owner
|
||||
admin: # GitHub repo owner and collaborators, only these guys can initialize GitHub issues, IT IS A LIST.
|
||||
# - your GitHub Id
|
||||
# Social Sharing
|
||||
twitter:
|
||||
username :
|
||||
facebook:
|
||||
username :
|
||||
app_id :
|
||||
publisher :
|
||||
og_image : # Open Graph/Twitter default site image
|
||||
# For specifying social profiles
|
||||
# - https://developers.google.com/structured-data/customize/social-profiles
|
||||
social:
|
||||
type : # Person or Organization (defaults to Person)
|
||||
name : # If the user or organization name differs from the site's name
|
||||
links: # An array of links to social media profiles
|
||||
|
||||
## Valine
|
||||
# please refer to https://valine.js.org/en/ for more info.
|
||||
valine:
|
||||
app_id : # LeanCloud App id
|
||||
app_key : # LeanCloud App key
|
||||
placeholder : # Prompt information
|
||||
visitor : # false (default)
|
||||
meta : # "[nick, mail, link]" (default) nickname, E-mail, Personal-site
|
||||
|
||||
|
||||
## => Pageview
|
||||
##############################
|
||||
pageview:
|
||||
provider: false # false (default), "leancloud", "custom"
|
||||
|
||||
## Leancloud
|
||||
leancloud:
|
||||
app_id : # LeanCloud App id
|
||||
app_key : # LeanCloud App key
|
||||
app_class : # LeanCloud App class
|
||||
|
||||
|
||||
## => Search
|
||||
##############################
|
||||
search:
|
||||
provider: default # "default" (default), false, "google", "custom"
|
||||
|
||||
## Google Custom Search Engine
|
||||
google:
|
||||
custom_search_engine_id: # Google Custom Search Engine ID
|
||||
|
||||
|
||||
## => Analytics
|
||||
##############################
|
||||
# Analytics
|
||||
analytics:
|
||||
provider: false # false (default), "google", "custom"
|
||||
|
||||
## Google Analytics
|
||||
provider : # false (default), "google", "google-universal", "google-gtag", "custom"
|
||||
google:
|
||||
tracking_id : # Google Analytics id for the site
|
||||
anonymize_ip: false # Anonymize IP tracking for Analytics
|
||||
tracking_id :
|
||||
anonymize_ip : # true, false (default)
|
||||
|
||||
|
||||
## => Build
|
||||
##############################
|
||||
markdown : kramdown
|
||||
highlighter : rouge
|
||||
permalink : date
|
||||
# Site Author
|
||||
author:
|
||||
name : "寂静的羽夏"
|
||||
avatar : /assets/images/author.jpg # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
|
||||
bio : "一个热爱计算机技术的菜鸟"
|
||||
location :
|
||||
email :
|
||||
links:
|
||||
- label: "Email"
|
||||
icon: "fas fa-fw fa-envelope-square"
|
||||
url: "mailto:wing-summer@qq.com"
|
||||
- label: "Website"
|
||||
icon: "fas fa-fw fa-link"
|
||||
url: "https://www.cnblogs.com/wingsummer"
|
||||
- label: "GitHub"
|
||||
icon: "fab fa-fw fa-github"
|
||||
url: "https://github.com/Wing-summer"
|
||||
|
||||
# Site Footer
|
||||
footer:
|
||||
links:
|
||||
- label: "GitHub"
|
||||
icon: "fab fa-fw fa-github"
|
||||
url: "https://github.com/Wing-summer"
|
||||
|
||||
|
||||
# Reading Files
|
||||
include:
|
||||
- .htaccess
|
||||
- _pages
|
||||
exclude:
|
||||
- "*.sublime-project"
|
||||
- "*.sublime-workspace"
|
||||
- vendor
|
||||
- .asset-cache
|
||||
- .bundle
|
||||
- .jekyll-assets-cache
|
||||
- .sass-cache
|
||||
- assets/js/plugins
|
||||
- assets/js/_main.js
|
||||
- assets/js/vendor
|
||||
- Capfile
|
||||
- CHANGELOG
|
||||
- config
|
||||
- Gemfile
|
||||
- Gemfile.lock
|
||||
- LICENSE
|
||||
- README-*.md
|
||||
- README.md
|
||||
- Gruntfile.js
|
||||
- gulpfile.js
|
||||
- jekyll-text-theme.gemspec
|
||||
- package-lock.json
|
||||
- LICENSE
|
||||
- log
|
||||
- minimal-mistakes-jekyll.gemspec
|
||||
- node_modules
|
||||
- package.json
|
||||
- /node_modules
|
||||
- /screenshots
|
||||
- /vendor
|
||||
- .markdownlint.json
|
||||
- package-lock.json
|
||||
- Rakefile
|
||||
- README
|
||||
- tmp
|
||||
keep_files:
|
||||
- .git
|
||||
- .svn
|
||||
encoding: "utf-8"
|
||||
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
|
||||
|
||||
|
||||
# Conversion
|
||||
markdown: kramdown
|
||||
highlighter: rouge
|
||||
lsi: false
|
||||
excerpt_separator: "\n\n"
|
||||
incremental: false
|
||||
|
||||
|
||||
# Markdown Processing
|
||||
kramdown:
|
||||
input: GFM
|
||||
hard_wrap: false
|
||||
auto_ids: true
|
||||
footnote_nr: 1
|
||||
entity_output: as_char
|
||||
toc_levels: 1..6
|
||||
smart_quotes: lsquo,rsquo,ldquo,rdquo
|
||||
enable_coderay: false
|
||||
|
||||
|
||||
# Sass/SCSS
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: compressed # https://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
|
||||
|
||||
|
||||
# Outputting
|
||||
permalink: /:categories/:title/
|
||||
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
|
||||
# Pagination with jekyll-paginate
|
||||
paginate: 5 # amount of posts to show
|
||||
paginate_path: /page:num/
|
||||
|
||||
# Pagination with jekyll-paginate-v2
|
||||
# See https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration
|
||||
# for configuration details
|
||||
pagination:
|
||||
# Set enabled to true to use paginate v2
|
||||
# enabled: true
|
||||
debug: false
|
||||
collection: 'posts'
|
||||
per_page: 10
|
||||
permalink: '/page/:num/'
|
||||
title: ':title - page :num'
|
||||
limit: 0
|
||||
sort_field: 'date'
|
||||
sort_reverse: true
|
||||
category: 'posts'
|
||||
tag: ''
|
||||
locale: ''
|
||||
trail:
|
||||
before: 2
|
||||
after: 2
|
||||
|
||||
|
||||
# Plugins (previously gems:)
|
||||
plugins:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jekyll-include-cache
|
||||
|
||||
# mimic GitHub Pages with --safe
|
||||
whitelist:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jekyll-include-cache
|
||||
|
||||
|
||||
# Archives
|
||||
# Type
|
||||
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
|
||||
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
|
||||
# Path (examples)
|
||||
# - Archive page should exist at path when using Liquid method or you can
|
||||
# expect broken links (especially with breadcrumbs enabled)
|
||||
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
|
||||
# - <base_path>/categories/my-awesome-category/index.html ~> path: /categories/
|
||||
# - <base_path>/my-awesome-category/index.html ~> path: /
|
||||
category_archive:
|
||||
type: liquid
|
||||
path: /categories/
|
||||
tag_archive:
|
||||
type: liquid
|
||||
path: /tags/
|
||||
# https://github.com/jekyll/jekyll-archives
|
||||
# jekyll-archives:
|
||||
# enabled:
|
||||
# - categories
|
||||
# - tags
|
||||
# layouts:
|
||||
# category: archive-taxonomy
|
||||
# tag: archive-taxonomy
|
||||
# permalinks:
|
||||
# category: /categories/:name/
|
||||
# tag: /tags/:name/
|
||||
|
||||
|
||||
# HTML Compression
|
||||
# - https://jch.penibelst.de/
|
||||
compress_html:
|
||||
clippings: all
|
||||
ignore:
|
||||
envs: development
|
||||
|
||||
collections:
|
||||
docs:
|
||||
output: true
|
||||
permalink: /:collection/:path/
|
||||
|
||||
# Defaults
|
||||
defaults:
|
||||
# _posts
|
||||
- scope:
|
||||
path: ""
|
||||
type: posts
|
||||
values:
|
||||
layout: article
|
||||
sharing: true
|
||||
license: true
|
||||
aside:
|
||||
toc: true
|
||||
show_edit_on_github: true
|
||||
show_subscribe: true
|
||||
pageview: true
|
||||
layout: single
|
||||
author_profile: true
|
||||
read_time: false
|
||||
share: true
|
||||
related: false
|
||||
- scope:
|
||||
path: "docs/zh"
|
||||
path: ""
|
||||
type: docs
|
||||
values:
|
||||
layout: article
|
||||
sidebar:
|
||||
nav: docs-zh
|
||||
layout: single
|
||||
read_time: false
|
||||
author_profile: false
|
||||
share: false
|
||||
comments: false
|
||||
toc_sticky: true
|
||||
license: true
|
||||
aside:
|
||||
toc: true
|
||||
lang: zh
|
||||
title: "文档"
|
||||
show_edit_on_github: false
|
||||
show_title: false
|
||||
show_date: false
|
||||
|
||||
|
||||
|
||||
## => Plugins
|
||||
##############################
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jemoji
|
||||
sidebar:
|
||||
nav: "docs-zh"
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
CC-BY-4.0:
|
||||
name: Attribution 4.0 International
|
||||
url: https://creativecommons.org/licenses/by/4.0/
|
||||
image: https://i.creativecommons.org/l/by/4.0/88x31.png
|
||||
CC-BY-SA-4.0:
|
||||
name: Attribution-ShareAlike 4.0 International
|
||||
url: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
image: https://i.creativecommons.org/l/by-sa/4.0/88x31.png
|
||||
CC-BY-NC-4.0:
|
||||
name: Attribution-NonCommercial 4.0 International
|
||||
url: https://creativecommons.org/licenses/by-nc/4.0/
|
||||
image: https://i.creativecommons.org/l/by-nc/4.0/88x31.png
|
||||
CC-BY-ND-4.0:
|
||||
name: Attribution-NoDerivatives 4.0 International
|
||||
url: https://creativecommons.org/licenses/by-nd/4.0/
|
||||
image: https://i.creativecommons.org/l/by-nd/4.0/88x31.png
|
||||
BY-NC-SA-4.0:
|
||||
name: Attribution-NonCommercial-ShareAlike 4.0 International
|
||||
url: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
image: https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png
|
175
_data/locale.yml
175
_data/locale.yml
|
@ -1,175 +0,0 @@
|
|||
# @start locale config
|
||||
## => English
|
||||
########################
|
||||
en: &EN
|
||||
SUBSCRIBE : "Subscribe"
|
||||
READMORE : "Read more"
|
||||
SEARCH : "Search"
|
||||
CANCEL : "Cancel"
|
||||
VIEWS : "views"
|
||||
LAST_UPDATED : "Last updated"
|
||||
PREVIOUS : "PREVIOUS"
|
||||
NEXT : "NEXT"
|
||||
ARTICLE_DATE_FORMAT : "%b %d, %Y"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%b %d"
|
||||
STATISTICS : "[POST_COUNT] post articles, [PAGE_COUNT] pages."
|
||||
LICENSE_ANNOUNCE : "This work is licensed under a [LICENSE] license."
|
||||
POST_ON_GITHUB : "Edit on Github"
|
||||
FOLLOW_ME : "Follow me on [NAME]."
|
||||
FOLLOW_US : "Follow us on [NAME]."
|
||||
EMAIL_ME : "Send me an Email."
|
||||
EMAIL_US : "Send us an Email."
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DOCUMENT : "Docs"
|
||||
|
||||
en-GB:
|
||||
<<: *EN
|
||||
en-US:
|
||||
<<: *EN
|
||||
en-CA:
|
||||
<<: *EN
|
||||
en-AU:
|
||||
<<: *EN
|
||||
|
||||
## => Simplified Chinese
|
||||
########################
|
||||
zh-Hans: &ZH_HANS
|
||||
SUBSCRIBE : "订阅"
|
||||
READMORE : "阅读更多"
|
||||
SEARCH : "搜索"
|
||||
CANCEL : "取消"
|
||||
VIEWS : "阅读"
|
||||
LAST_UPDATED : "更新于"
|
||||
PREVIOUS : "上篇"
|
||||
NEXT : "下篇"
|
||||
ARTICLE_DATE_FORMAT : "%Y年 %m月%d日"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%m月%d日"
|
||||
STATISTICS : "共计 [POST_COUNT] 篇文章,[PAGE_COUNT] 页。"
|
||||
LICENSE_ANNOUNCE : "本文遵守 [LICENSE] 许可协议。"
|
||||
POST_ON_GITHUB : "在 Github 上修改"
|
||||
FOLLOW_ME : "在 [NAME] 上关注我。"
|
||||
FOLLOW_US : "在 [NAME] 上关注我们。"
|
||||
EMAIL_ME : "给我发邮件。"
|
||||
EMAIL_US : "给我们发邮件。"
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DOCUMENT : "文档"
|
||||
|
||||
zh:
|
||||
<<: *ZH_HANS
|
||||
zh-CN:
|
||||
<<: *ZH_HANS
|
||||
zh-SG:
|
||||
<<: *ZH_HANS
|
||||
|
||||
## => Traditional Chinese
|
||||
########################
|
||||
zh-Hant: &ZH_HANT
|
||||
SUBSCRIBE : "訂閱"
|
||||
READMORE : "閱讀更多"
|
||||
SEARCH : "搜索"
|
||||
CANCEL : "取消"
|
||||
VIEWS : "閱讀"
|
||||
LAST_UPDATED : "更新於"
|
||||
PREVIOUS : "上篇"
|
||||
NEXT : "下篇"
|
||||
ARTICLE_DATE_FORMAT : "%Y年 %m月%d日"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%m月%d日"
|
||||
STATISTICS : "共計 [POST_COUNT] 篇文章,[PAGE_COUNT] 頁。"
|
||||
LICENSE_ANNOUNCE : "本文遵守 [LICENSE] 許可協議。"
|
||||
POST_ON_GITHUB : "在 Github 上修改"
|
||||
FOLLOW_ME : "在 [NAME] 上關注我。"
|
||||
FOLLOW_US : "在 [NAME] 上關注我們。"
|
||||
EMAIL_ME : "給我發郵件。"
|
||||
EMAIL_US : "給我們發郵件。"
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DOCUMENT : "文檔"
|
||||
|
||||
zh-TW:
|
||||
<<: *ZH_HANT
|
||||
zh-HK:
|
||||
<<: *ZH_HANT
|
||||
|
||||
## => Korean
|
||||
########################
|
||||
ko: &KO
|
||||
SUBSCRIBE : "구독하기"
|
||||
READMORE : "더보기"
|
||||
SEARCH : "검색"
|
||||
CANCEL : "취소"
|
||||
VIEWS : "조회"
|
||||
LAST_UPDATED : "마지막 수정"
|
||||
PREVIOUS : "이전"
|
||||
NEXT : "다음"
|
||||
ARTICLE_DATE_FORMAT : "%Y년 %m월 %d일"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%m월 %d일"
|
||||
STATISTICS : "전체 글 [POST_COUNT]개, [PAGE_COUNT] 페이지"
|
||||
LICENSE_ANNOUNCE : "이 글의 저작권은 [LICENSE] 라이센스를 따릅니다."
|
||||
POST_ON_GITHUB : "Github에서 확인하기"
|
||||
FOLLOW_ME : "[NAME]에서 팔로우하기"
|
||||
FOLLOW_US : "[NAME]에서 팔로우하기"
|
||||
EMAIL_ME : "이메일 보내기"
|
||||
EMAIL_US : "이메일 보내기"
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DOCUMENT : "문서"
|
||||
|
||||
ko-KR:
|
||||
<<: *KO
|
||||
|
||||
## => French
|
||||
########################
|
||||
fr: &FR
|
||||
SUBSCRIBE : "S'abonner"
|
||||
READMORE : "Plus"
|
||||
SEARCH : "Recherche"
|
||||
CANCEL : "Annuler"
|
||||
VIEWS : "vues"
|
||||
LAST_UPDATED : "Dernière modification"
|
||||
PREVIOUS : "PRÉCÉDENT"
|
||||
NEXT : "SUIVANT"
|
||||
ARTICLE_DATE_FORMAT : "%d %b, %Y"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%d %b"
|
||||
STATISTICS : "[POST_COUNT] articles, [PAGE_COUNT] pages."
|
||||
LICENSE_ANNOUNCE : "Ce travail est sous licence [LICENSE]."
|
||||
POST_ON_GITHUB : "Modifier sur Github"
|
||||
FOLLOW_ME : "Suivez-moi sur [NAME]."
|
||||
FOLLOW_US : "Suivez-nous sur [NAME]."
|
||||
EMAIL_ME : "Envoyez-moi un courriel."
|
||||
EMAIL_US : "Envoyez-nous un courriel"
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DONATE : "Faites un don de [NAME]."
|
||||
DOCUMENT : "Docs"
|
||||
|
||||
fr-BE:
|
||||
<<: *FR
|
||||
fr-CA:
|
||||
<<: *FR
|
||||
fr-CH:
|
||||
<<: *FR
|
||||
fr-FR:
|
||||
<<: *FR
|
||||
fr-LU:
|
||||
<<: *FR
|
||||
## => Turkish
|
||||
########################
|
||||
tr: &TR
|
||||
SUBSCRIBE : "Takip et"
|
||||
READMORE : "Devamını Oku"
|
||||
SEARCH : "İçerik Ara"
|
||||
CANCEL : "İptal"
|
||||
VIEWS : "gösterim"
|
||||
LAST_UPDATED : "Son güncellenme"
|
||||
PREVIOUS : "ÖNCEKİ"
|
||||
NEXT : "SONRAKİ"
|
||||
ARTICLE_DATE_FORMAT : "%d %b, %Y"
|
||||
ARTICLE_LIST_DATE_FORMAT: "%d %b"
|
||||
STATISTICS : "Toplam [POST_COUNT] adet gönderim ve [PAGE_COUNT] adet sayfa bulunuyor."
|
||||
LICENSE_ANNOUNCE : "Bu içerik [LICENSE] ile lisanslanmıştır."
|
||||
POST_ON_GITHUB : "Github üzerinde düzenle"
|
||||
FOLLOW_ME : "Beni [NAME] üzerinden takip et."
|
||||
FOLLOW_US : "Bizi [NAME] üzerinden takip edin."
|
||||
EMAIL_ME : "Bana email ile ulaşın."
|
||||
EMAIL_US : "Bize email ile ulaşın."
|
||||
COPYRIGHT_DATES : "2021"
|
||||
DOCUMENT : "Belgeler"
|
||||
|
||||
# @end locale config
|
|
@ -1,100 +1,86 @@
|
|||
header:
|
||||
- title: GitHub
|
||||
url: https://github.com/Wing-summer/WingHexExplorer2
|
||||
|
||||
- titles:
|
||||
# @start locale config
|
||||
en : &EN Docs
|
||||
en-GB : *EN
|
||||
en-US : *EN
|
||||
en-CA : *EN
|
||||
en-AU : *EN
|
||||
zh-Hans : &ZH_HANS 文档
|
||||
zh : *ZH_HANS
|
||||
zh-CN : *ZH_HANS
|
||||
zh-SG : *ZH_HANS
|
||||
zh-Hant : &ZH_HANT 文檔
|
||||
zh-TW : *ZH_HANT
|
||||
zh-HK : *ZH_HANT
|
||||
ko : &KO 문서
|
||||
ko-KR : *KO
|
||||
fr : &FR Docs
|
||||
fr-BE : *FR
|
||||
fr-CA : *FR
|
||||
fr-CH : *FR
|
||||
fr-FR : *FR
|
||||
fr-LU : *FR
|
||||
tr : &TR Belgeler
|
||||
# @end locale config
|
||||
url: /docs/DocsIndex.html
|
||||
|
||||
- titles:
|
||||
# @start locale config
|
||||
en : &EN Archive
|
||||
en-GB : *EN
|
||||
en-US : *EN
|
||||
en-CA : *EN
|
||||
en-AU : *EN
|
||||
zh-Hans : &ZH_HANS 归档
|
||||
zh : *ZH_HANS
|
||||
zh-CN : *ZH_HANS
|
||||
zh-SG : *ZH_HANS
|
||||
zh-Hant : &ZH_HANT 歸檔
|
||||
zh-TW : *ZH_HANT
|
||||
zh-HK : *ZH_HANT
|
||||
ko : &KO 아카이브
|
||||
ko-KR : *KO
|
||||
fr : &FR Archives
|
||||
fr-BE : *FR
|
||||
fr-CA : *FR
|
||||
fr-CH : *FR
|
||||
fr-FR : *FR
|
||||
fr-LU : *FR
|
||||
tr : &TR Arşivdekiler
|
||||
# @end locale config
|
||||
url: /archive.html
|
||||
|
||||
- titles:
|
||||
# @start locale config
|
||||
en : &EN About
|
||||
en-GB : *EN
|
||||
en-US : *EN
|
||||
en-CA : *EN
|
||||
en-AU : *EN
|
||||
zh-Hans : &ZH_HANS 关于
|
||||
zh : *ZH_HANS
|
||||
zh-CN : *ZH_HANS
|
||||
zh-SG : *ZH_HANS
|
||||
zh-Hant : &ZH_HANT 關於
|
||||
zh-TW : *ZH_HANT
|
||||
zh-HK : *ZH_HANT
|
||||
ko : &KO 소개
|
||||
ko-KR : *KO
|
||||
fr : &FR À propos
|
||||
fr-BE : *FR
|
||||
fr-CA : *FR
|
||||
fr-CH : *FR
|
||||
fr-FR : *FR
|
||||
fr-LU : *FR
|
||||
tr : &TR Hakkında
|
||||
# @end locale config
|
||||
url: /about.html
|
||||
|
||||
|
||||
# main links
|
||||
main:
|
||||
- title: 主页
|
||||
url: /
|
||||
- title: 博客
|
||||
url: /posts
|
||||
- title: 文档
|
||||
url: /docs
|
||||
- title: 关于
|
||||
url: /about
|
||||
|
||||
docs-zh:
|
||||
- title: 鸣谢
|
||||
children:
|
||||
- title: 鸣谢与说明
|
||||
key: docs-credits
|
||||
url: /docs/zh/credits.html
|
||||
url: /docs/zh/credits
|
||||
- title: 入门
|
||||
children:
|
||||
- title: 简介
|
||||
key: docs-introduction
|
||||
url: /docs/zh/introduction.html
|
||||
url: /docs/zh/introduction
|
||||
- title: 基础
|
||||
key: docs-basis
|
||||
url: /docs/zh/basis.html
|
||||
url: /docs/zh/basis
|
||||
- title: 工作区
|
||||
url: /docs/zh/workspace
|
||||
- title: 文件基本操作
|
||||
url: /docs/zh/fileop-basis
|
||||
- title: 查找和跳转
|
||||
url: /docs/zh/find-replace
|
||||
- title: 标记
|
||||
url: /docs/zh/mark
|
||||
- title: 窗口
|
||||
url: /docs/zh/window
|
||||
- title: 插件使用
|
||||
url: /docs/zh/plugin-usage
|
||||
- title: 设置相关
|
||||
url: /docs/zh/settings
|
||||
- title: 脚本开发
|
||||
children:
|
||||
- title: 编辑器介绍
|
||||
url: /docs/zh/script-ide
|
||||
- title: 设置相关
|
||||
url: /docs/zh/script-setting
|
||||
- title: AngelScript 简介
|
||||
url: /docs/zh/script-angelscript
|
||||
- title: 语言基础 - 基本语法
|
||||
url: /docs/zh/script-grammar
|
||||
- title: 语言基础 - 表达式
|
||||
url: /docs/zh/script-expression
|
||||
- title: 语言基础 - 基本数据类型
|
||||
url: /docs/zh/script-data-type
|
||||
- title: 语言基础 - 类和接口
|
||||
url: /docs/zh/script-class-interface
|
||||
- title: 语言基础 - 运算优先级
|
||||
url: /docs/zh/script-pri-op
|
||||
- title: 语言基础 - 句柄
|
||||
url: /docs/zh/script-handle
|
||||
- title: 语言基础 - 对象
|
||||
url: /docs/zh/script-obj
|
||||
- title: 语言基础 - 标准库
|
||||
url: /docs/zh/script-stl
|
||||
- title: 函数包 - reader
|
||||
url: /docs/zh/script-reader
|
||||
- title: 函数包 - ctl
|
||||
url: /docs/zh/script-ctl
|
||||
- title: 函数包 - UI 相关
|
||||
url: /docs/zh/script-ui
|
||||
- title: 函数包 - 其他
|
||||
url: /docs/zh/script-other
|
||||
- title: 脚本调试
|
||||
url: /docs/zh/script-dbg
|
||||
- title: 代码格式化
|
||||
url: /docs/zh/script-clang-format
|
||||
- title: 插件开发
|
||||
- title: 其他语言
|
||||
children:
|
||||
- title: 环境配置
|
||||
url: /docs/zh/plgdev-env
|
||||
- title: 插件系统介绍
|
||||
url: /docs/zh/plgdev-plgsys
|
||||
- title: 标准插件开发
|
||||
url: /docs/zh/plgdev-stdplg
|
||||
- title: 文件设备驱动插件开发
|
||||
url: /docs/zh/plgdev-drvplg
|
||||
- title: 插件调试
|
||||
url: /docs/zh/plgdev-dbg
|
||||
- title: 插件系统实现番外
|
||||
url: /docs/zh/plgdev-impl
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,64 +0,0 @@
|
|||
default:
|
||||
text_skin: default
|
||||
highlight_theme: default
|
||||
lang: en
|
||||
paths:
|
||||
root: /
|
||||
home: /
|
||||
archive: /archive.html
|
||||
rss: /feed.xml
|
||||
mathjax: false
|
||||
mathjax_autoNumber: false
|
||||
mermaid: false
|
||||
chart: false
|
||||
toc:
|
||||
selectors: 'h1,h2,h3'
|
||||
sources: bootcdn
|
||||
|
||||
page:
|
||||
mode: normal
|
||||
type: webpage
|
||||
article_header:
|
||||
align: left
|
||||
theme: light
|
||||
articles:
|
||||
show_cover: true
|
||||
show_excerpt: false
|
||||
show_readmore: false
|
||||
show_info: false
|
||||
show_title: true
|
||||
show_edit_on_github: false
|
||||
show_date: true
|
||||
show_tags: true
|
||||
show_author_profile: false
|
||||
show_subscribe: false
|
||||
full_width: false
|
||||
sharing: false
|
||||
comment: true
|
||||
license: false
|
||||
pageview: false
|
||||
search: default
|
||||
|
||||
sources:
|
||||
bootcdn:
|
||||
font_awesome: 'https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.css'
|
||||
jquery: 'https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js'
|
||||
leancloud_js_sdk: '//cdn.jsdelivr.net/npm/leancloud-storage@3.13.2/dist/av-min.js'
|
||||
chart: 'https://cdn.bootcss.com/Chart.js/2.7.2/Chart.bundle.min.js'
|
||||
gitalk:
|
||||
js: 'https://cdn.bootcss.com/gitalk/1.2.2/gitalk.min.js'
|
||||
css: 'https://cdn.bootcss.com/gitalk/1.2.2/gitalk.min.css'
|
||||
valine: 'https://unpkg.com/valine/dist/Valine.min.js' # bootcdn not available
|
||||
mathjax: 'https://cdn.bootcss.com/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
mermaid: 'https://cdn.bootcss.com/mermaid/8.0.0-rc.8/mermaid.min.js'
|
||||
unpkg:
|
||||
font_awesome: 'https://use.fontawesome.com/releases/v5.15.1/css/all.css'
|
||||
jquery: 'https://unpkg.com/jquery@3.3.1/dist/jquery.min.js'
|
||||
leancloud_js_sdk: '//cdn.jsdelivr.net/npm/leancloud-storage@3.13.2/dist/av-min.js'
|
||||
chart: 'https://unpkg.com/chart.js@2.7.2/dist/Chart.min.js'
|
||||
gitalk:
|
||||
js: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.min.js'
|
||||
css: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.css'
|
||||
valine: 'https//unpkg.com/valine/dist/Valine.min.js'
|
||||
mathjax: 'https://unpkg.com/mathjax@2.7.4/unpacked/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
mermaid: 'https://unpkg.com/mermaid@8.0.0-rc.8/dist/mermaid.min.js'
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
title: 鸣谢与说明
|
||||
permalink: /docs/zh/credits
|
||||
key: docs-credits
|
||||
toc: true
|
||||
---
|
||||
|
||||
## 鸣谢
|
||||
|
||||
<p align="center">
|
||||
<img alt="羽云十六进制编辑器2" src="{{site.url}}/assets/images/appicon.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
🏅 如果您对本项目文档有贡献,但被忘记记录在内。首先对疏忽遗漏的情况表示抱歉,请 [联系我](https://github.com/Wing-summer) 补充。
|
||||
{:.warning}
|
||||
|
@ -37,4 +36,4 @@ key: docs-credits
|
|||
|
||||
如果您要参与该项目文档编写,则会遵守 **知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议** 。无论您是作为贡献者还是转载,都要注意这件事情,这是对我们作为用爱发电的开源作者最起码的尊重,在此表示真诚的感谢。
|
||||
|
||||
本 WIKI 是通过 PR 进行合作,当然也可以通过 issue 提出问题。一旦修改合并后,会自动推送合并到项目对应的文档区域。
|
||||
本 WIKI 是通过 PR 进行合作,当然也可以通过 issue 提出问题来进行修改采纳。
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/introduction
|
||||
key: docs-introduction
|
||||
toc: true
|
||||
---
|
||||
|
||||
## 简介
|
||||
|
@ -8,14 +9,13 @@ key: docs-introduction
|
|||
该文档提供该软件的使用说明,所有的说明都会以该图作为标注。这张图会包含了大量的信息。
|
||||
{:.info}
|
||||
|
||||
<p align="center">
|
||||
<img alt="软件截图" src="{{site.url}}/assets/images/screenshot.png" />
|
||||
<p align="center">羽云十六进制浏览器</p>
|
||||
</p>
|
||||
{: .align-center}
|
||||
羽云十六进制浏览器
|
||||
{: .text-center}
|
||||
|
||||
<p align="center">
|
||||
<img alt="wingsummer" src="{{site.url}}/assets/images/authorband.svg" />
|
||||
<img alt="AGPL-v3.0" src="{{site.url}}/assets/images/licenseband.svg" />
|
||||
<img alt="wingsummer" src="{{"/assets/images/authorband.svg" | relative_url }}" />
|
||||
<img alt="AGPL-v3.0" src="{{"/assets/images/licenseband.svg" | relative_url }}" />
|
||||
</p>
|
||||
|
||||
一个自由的强大免费的十六进制编辑器,基于 QT C++ 进行开发,作者是 [寂静的羽夏](https://www.cnblogs.com/wingsummer) 。
|
||||
|
@ -34,6 +34,9 @@ key: docs-introduction
|
|||
|
||||
对于 Qt 5 版本,仅支持 5.15.2 或更高版本,Qt 6 的话 6.6.2 或更高的版本,其他低版本由于关键库的 API 缺失和自身的一些 Bug,所以不提供支持。
|
||||
|
||||
目前 Qt5 版本已不再提供主动支持,如果特别需要,请联系我进行付费支持,非诚勿扰。如果你想通过 PR 帮忙继续 Qt5 支持,也欢迎!
|
||||
{: .notice--warning}
|
||||
|
||||
装好对应的 QT 安装包 SDK 和 CMake 之后,还需要装个依赖,这只针对 Linux 才会需要,因为`Qt-Advanced-Docking-System`,如下是原文档里面的说明(其他发行版请自行对照,也欢迎补充):
|
||||
|
||||
- Qt5 on Ubuntu 18.04 or 20.04
|
||||
|
@ -59,7 +62,7 @@ sudo apt install qt6-default qt6-base-dev qt6-base-private-dev qt6-tools-dev lib
|
|||
### 在 QtCreator 中编译
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/introduction/image-20241009012251972.png" />
|
||||
<img alt="" src="{{"/assets/docs/intro/image-20241009012251972.png" | relative_url }}" />
|
||||
</p>
|
||||
|
||||
把项目文件夹拖进去 QtCreator,点击左下角的电脑图标,选择`Debug`或者`Release`版本,然后点击最下方的锤子图标进行构建,稍等十分钟左右,即可构建完成,点击绿色三角图标运行即可。
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/basis
|
||||
key: docs-basis
|
||||
toc: true
|
||||
---
|
||||
|
||||
## 简述
|
||||
|
@ -11,37 +12,31 @@ key: docs-basis
|
|||
|
||||
当安装完毕软件后你直接打开程序时,就会得到如下界面:
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-1.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
该程序也可以在 root 权限运行,你就会看到如下的界面:
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-2.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
如果眼尖的话你就能看到区别,你可以看到图标和中间区域的图标有所不同,在颜色上色相是相反的,同时在 root 会有蓝色的骷髅:
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-3.png" />
|
||||
<p align="center">用户权限</p>
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-4.png" />
|
||||
<p align="center">root 权限</p>
|
||||
</p>
|
||||
用户权限
|
||||
{: .text-center}
|
||||
|
||||
{: .align-center}
|
||||
|
||||
root 权限
|
||||
{: .text-center}
|
||||
|
||||
这就是提醒你是否在使用 root 执行程序(在 Win 下是管理员及其以上的权限)的一个最重要最显眼的标志,除此之外没有任何显眼的了。不过在`v2.0.0`下,将会有更细节的提示尽可能的**避免**高危误操作的问题。
|
||||
|
||||
> 无论是在用户模式,还是在 root 模式,在界面上没有任何区别,只是在某些情况下,功能无法使用,比如直接读取磁盘数据需要 root 模式。在用户模式下无法将文件保存到需要 root 权限写文件的文件夹中。
|
||||
> 无论是在用户模式,还是在 root 模式,在界面上没有任何区别,只是在某些情况下,功能无法使用。在用户模式下无法将文件保存到需要 root 权限写文件的文件夹中。
|
||||
|
||||
下面我们先从全面的视角来看看这个软件的界面结构:
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-5.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
- 菜单工具栏:包含编辑文件和操作的一些工具。
|
||||
- 编辑区:当打开文件时,该区域将会是一个十六进制编辑区,这个是唯一的,也就是程序不打开文件时的空白区域。
|
||||
|
@ -52,11 +47,10 @@ key: docs-basis
|
|||
|
||||
菜单工具栏是该软件的几乎所有功能大集合体。软件自带的和插件、脚本注册的功能全都会在这里面显示。插件可以在这里面追加新的分类方便自己大量功能的集成。它默认有:**文件、编辑、视图、脚本、设置、关于** 这四个选项卡,每个选项卡都有自己负责的任务,至于每块功能的详细介绍将会分步在后面几个章节进行介绍。
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/image-20241009110510461.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
视图-工具中的各勾选对应的选项卡
|
||||
{: .text-center}
|
||||
|
||||
### 编辑区
|
||||
|
||||
|
@ -85,14 +79,12 @@ Dock 区是除编辑区、菜单工具栏、状态栏之外的贴边窗体的统
|
|||
|
||||
## 当前文档
|
||||
|
||||
当前文档是区别于`WingHexExplorer`这一个版本所不具备的概念,因为这软件只能同时编辑一个文件。而新版的`WingHexExplorer2`不同,它能同时编辑不同文件,也可以同时编辑同一个文件,那么要清楚编辑是哪个文件是十分重要的事情。
|
||||
当前文档是区别于`WingHexExplorer`这一个版本所不具备的概念。而新版的`WingHexExplorer2`不同,它能同时编辑不同文件,也可以同时编辑同一个文件,那么要清楚编辑是哪个文件是十分重要的事情。
|
||||
|
||||
目前版本,对于当前文件的判断是标签上的信息提示,对于不同主题,它的颜色是不一样的。**所以,如果你要贡献主题的话,必须包含能体现当前文档含义的设置,否则不是一个好的主题。**
|
||||
|
||||
以暗色主题为例,再把上面的图拿下来:
|
||||
|
||||
<p align="center">
|
||||
<img alt="" src="{{site.url}}/assets/markdown-pic/basis/1-5.png" />
|
||||
</p>
|
||||
{: .align-center}
|
||||
|
||||
标注为编辑区的文档不是当前文档,而当前文档是标记为 Dock 区的十六进制编辑区。首先**上边缘**的颜色**明显区别于**其他普通标签的颜色,并且**右边缘和上边缘同色**,这是判断是否为当前文档的唯一区别,也希望后面其他主题也遵循这种类似的设计。
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/workspace
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/fileop-basis
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/find-replace
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/mark
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/window
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/plugin-usage
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 入门
|
||||
permalink: /docs/zh/settings
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-ide
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-setting
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-angelscript
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-grammar
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-expression
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-data-type
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-class-interface
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-pri-op
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-handle
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-obj
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-stl
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-reader
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-ctl
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-ui
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-other
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-dbg
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 脚本开发
|
||||
permalink: /docs/zh/script-clang-format
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-env
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-plgsys
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-stdplg
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-drvplg
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-dbg
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 插件开发
|
||||
permalink: /docs/zh/plgdev-impl
|
||||
toc: true
|
||||
---
|
||||
|
||||
🚧 本页面仍在建设中,欢迎有热心的志愿者前来参与合作!🚧
|
||||
{: .notice--warning .text-center}
|
|
@ -1,3 +1,3 @@
|
|||
<!-- start custom analytics snippet -->
|
||||
|
||||
<!-- end custom analytics snippet -->
|
||||
<!-- end custom analytics snippet -->
|
|
@ -0,0 +1,9 @@
|
|||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.tracking_id }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', '{{ site.analytics.google.tracking_id }}', { 'anonymize_ip': {{ site.analytics.google.anonymize_ip | default: false }}});
|
||||
</script>
|
|
@ -0,0 +1,7 @@
|
|||
<script>
|
||||
window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
|
||||
ga('create','{{ site.analytics.google.tracking_id }}','auto');
|
||||
ga('set', 'anonymizeIp', {{ site.analytics.google.anonymize_ip | default: false }});
|
||||
ga('send','pageview')
|
||||
</script>
|
||||
<script src="https://www.google-analytics.com/analytics.js" async></script>
|
|
@ -1,14 +1,14 @@
|
|||
{%- if site.analytics.google.tracking_id -%}
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.tracking_id }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
<script>
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
|
||||
{% if site.analytics.google.anonymize_ip == true %}
|
||||
_gaq.push(['_gat._anonymizeIp']);
|
||||
{% endif %}
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
gtag('config', '{{ site.analytics.google.tracking_id }}');
|
||||
{% if site.analytics.google.anonymize_ip == true %}
|
||||
gtag('config', '{{ site.analytics.google.tracking_id }}', { 'anonymize_ip': true });
|
||||
{% endif %}
|
||||
</script>
|
||||
{%- endif -%}
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
{%- if jekyll.environment != 'development' -%}
|
||||
{%- if site.analytics.provider == 'google' -%}
|
||||
{%- include analytics-providers/google.html -%}
|
||||
{%- elsif site.analytics.provider == 'custom' -%}
|
||||
{%- include analytics-providers/custom.html -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{% if jekyll.environment == 'production' and site.analytics.provider and page.analytics != false %}
|
||||
|
||||
{% case site.analytics.provider %}
|
||||
{% when "google" %}
|
||||
{% include /analytics-providers/google.html %}
|
||||
{% when "google-universal" %}
|
||||
{% include /analytics-providers/google-universal.html %}
|
||||
{% when "google-gtag" %}
|
||||
{% include /analytics-providers/google-gtag.html %}
|
||||
{% when "custom" %}
|
||||
{% include /analytics-providers/custom.html %}
|
||||
{% endcase %}
|
||||
|
||||
{% endif %}
|
|
@ -0,0 +1,30 @@
|
|||
{% if post.header.teaser %}
|
||||
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
|
||||
{% else %}
|
||||
{% assign teaser = site.teaser %}
|
||||
{% endif %}
|
||||
|
||||
{% if post.id %}
|
||||
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
|
||||
{% else %}
|
||||
{% assign title = post.title %}
|
||||
{% endif %}
|
||||
|
||||
<div class="{{ include.type | default: 'list' }}__item">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork"{% if post.locale %} lang="{{ post.locale }}"{% endif %}>
|
||||
{% if include.type == "grid" and teaser %}
|
||||
<div class="archive__item-teaser">
|
||||
<img src="{{ teaser | relative_url }}" alt="">
|
||||
</div>
|
||||
{% endif %}
|
||||
<h2 class="archive__item-title no_toc" itemprop="headline">
|
||||
{% if post.link %}
|
||||
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | relative_url }}" rel="permalink"><i class="fas fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
|
||||
{% else %}
|
||||
<a href="{{ post.url | relative_url }}" rel="permalink">{{ title }}</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
{% include page__meta.html type=include.type %}
|
||||
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
|
||||
</article>
|
||||
</div>
|
|
@ -1,55 +0,0 @@
|
|||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_author_profile
|
||||
source0=layout.show_author_profile source1=page.show_author_profile -%}
|
||||
{%- assign _show_author_profile = __return -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_subscribe
|
||||
source0=layout.show_subscribe source1=page.show_subscribe -%}
|
||||
{%- assign _show_subscribe = __return -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.license
|
||||
source0=layout.license source1=page.license -%}
|
||||
{%- assign _license = __return -%}
|
||||
|
||||
<footer class="article__footer">
|
||||
{%- if page.modify_date -%}
|
||||
{%- include snippets/get-locale-string.html key='ARTICLE_DATE_FORMAT' -%}
|
||||
{%- assign _locale_date_format = __return -%}
|
||||
|
||||
{%- include snippets/get-locale-string.html key='LAST_UPDATED' -%}
|
||||
{%- assign _locale_last_update = __return -%}
|
||||
<span>{{ _locale_last_update }}
|
||||
<time itemprop="dateModified" datetime="{{ page.modify_date | date_to_xmlschema }}">{{ page.modify_date | date: _locale_date_format }}</time>
|
||||
</span>
|
||||
{%- elsif page.date -%}
|
||||
<meta itemprop="dateModified" content="{{ page.date | date_to_xmlschema }}">
|
||||
{%- endif -%}
|
||||
|
||||
{%- include article/footer/custom.html -%}
|
||||
|
||||
{%- if _show_author_profile -%}
|
||||
{%- if page.author -%}
|
||||
{%- assign _author = site.data.authors[page.author] -%}
|
||||
{%- else -%}
|
||||
{%- assign _author = site.author -%}
|
||||
{%- endif -%}
|
||||
{%- include article/footer/author-profile.html author=_author -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _show_subscribe -%}
|
||||
<div class="article__subscribe">{%- include article/footer/subscribe.html -%}</div>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _license != false -%}
|
||||
{%- assign _data_license = site.data.licenses-%}
|
||||
{%- if site.license -%}
|
||||
{%- assign _license_data = _data_license[site.license] -%}
|
||||
{%- endif -%}
|
||||
{%- if _license != true -%}
|
||||
{%- assign _license_data = _data_license[_license] -%}
|
||||
{%- endif -%}
|
||||
<div class="article__license">{%- include article/footer/license.html license=_license_data -%}</div>
|
||||
{%- endif -%}
|
||||
</footer>
|
|
@ -1,49 +0,0 @@
|
|||
{%- include snippets/get-article-title.html article=include.article-%}
|
||||
{%- assign _article_title = __return -%}
|
||||
|
||||
{%- if include.html != false -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_title
|
||||
source0=layout.show_title source1=include.article.show_title -%}
|
||||
{%- assign _show_title = __return -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_edit_on_github
|
||||
source0=layout.show_edit_on_github source1=include.article.show_edit_on_github -%}
|
||||
{%- assign _show_edit_on_github = __return -%}
|
||||
|
||||
{%- if _show_title or _show_edit_on_github -%}
|
||||
<div class="article__header">
|
||||
{%- if _show_title -%}
|
||||
<header><h1>{{ _article_title }}</h1></header>
|
||||
{%- endif -%}
|
||||
{%- if _show_edit_on_github -%}
|
||||
{%- if site.repository and site.repository_tree -%}
|
||||
{%- include snippets/is_collection.html page=include.article -%}
|
||||
{%- assign _is_article_collection = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='POST_ON_GITHUB' -%}
|
||||
{%- assign _locale_post_on_github = __return -%}
|
||||
{%- if _is_article_collection -%}
|
||||
{%- include snippets/prepend-path.html path=include.article.path prepend_path=site.collections_dir -%}
|
||||
{%- assign _article_path = __return -%}
|
||||
{%- else -%}
|
||||
{%- assign _article_path = include.article.path -%}
|
||||
{%- endif -%}
|
||||
{%- assign _github_path = site.repository | append: '/tree/' | append: site.repository_tree | append: '/' | append: _article_path | replace:'//','/' -%}
|
||||
<span class="split-space"> </span>
|
||||
<a class="edit-on-github"
|
||||
title="{{ _locale_post_on_github }}"
|
||||
href="https://github.com/{{ _github_path }}">
|
||||
<i class="far fa-edit"></i></a>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{%- else -%}
|
||||
<header style="display:none;"><h1>{{ _article_title }}</h1></header>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if include.semantic != false -%}
|
||||
<meta itemprop="headline" content="{{ _article_title }}">
|
||||
{%- endif -%}
|
|
@ -1,96 +0,0 @@
|
|||
{%- assign _author = site.data.authors[include.article.author] | default: site.author -%}
|
||||
|
||||
{%- if include.html != false -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_date
|
||||
source0=layout.show_date source1=include.article.show_date -%}
|
||||
{%- assign _show_date = __return -%}
|
||||
{%- if _show_date and include.article.date -%}
|
||||
{%- assign _show_date = true -%}
|
||||
{%- else -%}
|
||||
{%- assign _show_date = false -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- include snippets/assign.html
|
||||
target=site.data.variables.default.page.show_tags
|
||||
source0=layout.show_tags source1=include.article.show_tags -%}
|
||||
{%- assign _show_tags = __return -%}
|
||||
{%- if _show_tags and include.article.tags[0] -%}
|
||||
{%- assign _show_tags = true -%}
|
||||
{%- else -%}
|
||||
{%- assign _show_tags = false -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- assign _show_author = include.article.author -%}
|
||||
|
||||
{%- include snippets/assign.html target=site.data.variables.default.page.pageview
|
||||
source0=layout.pageview source1=page.pageview -%}
|
||||
{%- assign _pageview = __return -%}
|
||||
{%- if _pageview or include.show_pageview -%}
|
||||
{%- assign _pageview = true -%}
|
||||
{%- else -%}
|
||||
{%- assign _pageview = false -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- assign _paths_archive = site.paths.archive | default: site.data.variables.default.paths.archive -%}
|
||||
|
||||
{%- if _show_tags or _show_author or _show_date or _pageview -%}
|
||||
<div class="article__info clearfix">
|
||||
{%- if _show_tags -%}
|
||||
|
||||
<ul class="left-col menu">
|
||||
{%- assign _tag_path = _paths_archive | append: '?tag=' -%}
|
||||
{%- include snippets/prepend-baseurl.html path=_tag_path -%}
|
||||
|
||||
{%- for _tag in include.article.tags -%}
|
||||
{%- assign _tag_path = __return -%}
|
||||
{%- assign _tag_encode = _tag | strip | url_encode } -%}
|
||||
<li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="{{ _tag_path | append: _tag_encode | replace: '//', '/' }}">{{ _tag }}</a>
|
||||
</li>
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _show_author or _show_date or _pageview -%}
|
||||
<ul class="right-col menu">
|
||||
{%- if _show_author -%}
|
||||
<li><i class="fas fa-user"></i> <span>{{ _author.name }}</span></li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _show_date -%}
|
||||
<li>
|
||||
{%- include snippets/get-locale-string.html key='ARTICLE_DATE_FORMAT' -%}
|
||||
<i class="far fa-calendar-alt"></i> <span>{{ include.article.date | date: __return }}</span>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _pageview -%}
|
||||
{%- if site.pageview.provider -%}
|
||||
{%- include snippets/get-locale-string.html key='VIEWS' -%}
|
||||
{%- assign _locale_views = __return -%}
|
||||
<li><i class="far fa-eye"></i> <span class="js-pageview" data-page-key="{{ include.article.key }}">0</span> {{ _locale_views }}</li>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
</ul>
|
||||
{%- endif -%}
|
||||
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if include.semantic != false -%}
|
||||
{%- if _author -%}
|
||||
<meta itemprop="author" content="{{ _author.name }}"/>
|
||||
{%- endif -%}
|
||||
{%- if include.article.date -%}
|
||||
<meta itemprop="datePublished" content="{{ include.article.date | date_to_xmlschema }}">
|
||||
{%- endif -%}
|
||||
{%- if include.article.tags[0] -%}
|
||||
{%- assign _keywords = include.article.tags | join: ',' %}
|
||||
<meta itemprop="keywords" content="{{ _keywords }}">
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
|
@ -1,144 +0,0 @@
|
|||
{%- assign _excerpt_truncate = include.excerpt_truncate | default: 350 -%}
|
||||
|
||||
{%- assign _excerpt_type = include.excerpt_type -%}
|
||||
|
||||
{%- include snippets/get-locale-string.html key='READMORE' -%}
|
||||
{%- assign _locale_readmore = __return -%}
|
||||
|
||||
{%- assign _sorted_list = include.articles -%}
|
||||
{%- if include.group_by == 'year' -%}
|
||||
{%- assign _sorted_list = _sorted_list | sort: 'date' -%}
|
||||
{%- endif -%}
|
||||
{%- if include.reverse -%}
|
||||
{%- assign _sorted_list = _sorted_list | reverse -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if include.type == 'item' -%}
|
||||
<div class="article-list items items--divided">
|
||||
{%- elsif include.type == 'brief' -%}
|
||||
<div class="article-list items">
|
||||
{%- elsif include.type == 'grid' -%}
|
||||
{%- if include.size == 'sm' -%}
|
||||
<div class="article-list grid grid--sm grid--p-3">
|
||||
{%- else -%}
|
||||
<div class="article-list grid grid--p-3">
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- for _article in _sorted_list -%}
|
||||
|
||||
{%- include snippets/prepend-baseurl.html path=_article.url -%}
|
||||
{%- assign _article_url = __return -%}
|
||||
|
||||
{%- if _article.cover -%}
|
||||
{%- include snippets/get-nav-url.html path=_article.cover -%}
|
||||
{%- assign _article_cover = __return -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if include.type == 'item' -%}
|
||||
{%- if include.article_type == 'BlogPosting' -%}
|
||||
<article class="item" itemscope itemtype="http://schema.org/BlogPosting">
|
||||
{%- else -%}
|
||||
<article class="item">
|
||||
{%- endif -%}
|
||||
{%- if _article.cover and include.show_cover-%}
|
||||
{%- include snippets/get-nav-url.html path=_article.cover -%}
|
||||
{%- assign _article_cover = __return -%}
|
||||
<div class="item__image">
|
||||
{%- if include.cover_size == 'lg' -%}
|
||||
<img class="image image--lg" src="{{ _article_cover }}" />
|
||||
{%- elsif include.cover_size == 'sm' -%}
|
||||
<img class="image image--sm" src="{{ _article_cover }}" />
|
||||
{%- else -%}
|
||||
<img class="image" src="{{ _article_cover }}" />
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
<div class="item__content">
|
||||
<header><a href="{{ _article_url }}"><h2 itemprop="headline" class="item__header">{{ _article.title }}</h2></a></header>
|
||||
<div class="item__description">
|
||||
{%- if _article.excerpt and include.show_excerpt -%}
|
||||
<div class="article__content" itemprop="description articleBody">
|
||||
{%- if _excerpt_type == 'html' -%}
|
||||
{{ _article.excerpt }}
|
||||
{%- else -%}
|
||||
{{ _article.excerpt | strip_html | strip | truncate: _excerpt_truncate }}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- if include.show_readmore -%}
|
||||
<p><a href="{{ _article_url }}">{{ _locale_readmore }}</a></p>
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{%- if include.show_info -%}
|
||||
{%- include snippets/assign.html target=site.data.variables.default.page.pageview
|
||||
source0=_article.pageview -%}
|
||||
{%- assign _show_pageview = __return -%}
|
||||
{%- include article-info.html article=_article show_pageview=_show_pageview -%}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
{%- elsif include.type == 'brief' -%}
|
||||
{%- assign _tags = '' -%}
|
||||
{%- for _tag in _article.tags -%}
|
||||
{%- assign _tag_encode = _tag | strip | url_encode -%}
|
||||
{%- if forloop.last -%}
|
||||
{%- assign _tags = _tags | append: _tag_encode -%}
|
||||
{%- else -%}
|
||||
{%- assign _tags = _tags | append: _tag_encode | append: ',' -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if include.group_by == 'year' -%}
|
||||
{%- assign _currentdate = _article.date | date: '%Y' -%}
|
||||
{%- if _currentdate != _date -%}
|
||||
{%- unless forloop.first -%}</ul></section>{%- endunless -%}
|
||||
<section><h2 class="article-list__group-header">{{ _currentdate }}</h2><ul class="items">
|
||||
{%- assign _date = _currentdate -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- include snippets/get-locale-string.html key='ARTICLE_LIST_DATE_FORMAT' -%}
|
||||
<li class="item" itemscope itemtype="http://schema.org/BlogPosting" data-tags="{{ _tags }}">
|
||||
<div class="item__content">
|
||||
{%- if include.show_info -%}
|
||||
<span class="item__meta">{{ _article.date | date: __return }}</span>
|
||||
{%- endif -%}
|
||||
<a itemprop="headline" class="item__header" href="{{ _article_url }}">{{ _article.title }}</a></div>
|
||||
</li>
|
||||
|
||||
{%- elsif include.type == 'grid' -%}
|
||||
{%- if include.size == 'sm' -%}
|
||||
<div class="cell cell--12 cell--md-4 cell--lg-3">
|
||||
<div class="card card--flat">
|
||||
{%- if _article.cover -%}
|
||||
<div class="card__image">
|
||||
<img class="image" src="{{ _article_cover }}" />
|
||||
<div class="overlay overlay--bottom">
|
||||
<header>
|
||||
<a href="{{ _article_url }}"><h2 class="card__header">{{ _article.title }}</h2></a>
|
||||
</header>
|
||||
</div>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</div>
|
||||
{%- else -%}
|
||||
|
||||
<div class="cell cell--12 cell--md-6 cell--lg-4">
|
||||
<div class="card card--flat">
|
||||
{%- if _article.cover -%}
|
||||
<div class="card__image"><img src="{{ _article_cover }}" /></div>
|
||||
{%- endif -%}
|
||||
<div class="card__content">
|
||||
<header>
|
||||
<a href="{{ _article_url }}"><h2 class="card__header">{{ _article.title }}</h2></a>
|
||||
</header>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
</div>
|
|
@ -1,58 +0,0 @@
|
|||
{%- if page.sidebar.nav -%}
|
||||
{%- assign _sidebar_nav = site.data.navigation[page.sidebar.nav] -%}
|
||||
{%- if _sidebar_nav -%}
|
||||
{%- assign _find_cur = false -%}
|
||||
{%- assign _find_next = false -%}
|
||||
|
||||
{%- for _item in _sidebar_nav -%}
|
||||
{%- if _find_next -%} {%- break -%} {%- endif -%}
|
||||
{%- if _item.children -%}
|
||||
|
||||
{%- for _child in _item.children -%}
|
||||
{%- assign _nav_key = _child.key -%}
|
||||
{%- assign _page_key = page.key -%}
|
||||
|
||||
{%- if _nav_key == _page_key -%}
|
||||
{%- assign _find_cur = true -%}
|
||||
{%- elsif _find_cur and _find_next != true -%}
|
||||
{%- assign _find_next = true -%}
|
||||
{%- assign _next = _child -%}
|
||||
{%- break -%}
|
||||
{%- else -%}
|
||||
{%- assign _previous = _child -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- if _find_cur != true -%}
|
||||
{%- assign _previous = page.previous -%}
|
||||
{%- assign _next = page.next -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- endif -%}
|
||||
|
||||
{%- else -%}
|
||||
{%- assign _previous = page.previous -%}
|
||||
{%- assign _next = page.next -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _next or _previous -%}
|
||||
<div class="article__section-navigator clearfix">
|
||||
{%- if _previous -%}
|
||||
{%- include snippets/prepend-baseurl.html path=_previous.url -%}
|
||||
{%- assign _href = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='PREVIOUS' -%}
|
||||
{%- assign _locale_previous = __return -%}
|
||||
<div class="previous"><span>{{ _locale_previous }}</span><a href="{{ _href }}">{{ _previous.title }}</a></div>
|
||||
{%- endif -%}
|
||||
{%- if _next -%}
|
||||
{%- include snippets/prepend-baseurl.html path=_next.url -%}
|
||||
{%- assign _href = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='NEXT' -%}
|
||||
{%- assign _locale_next = __return -%}
|
||||
<div class="next"><span>{{ _locale_next }}</span><a href="{{ _href }}">{{ _next.title }}</a></div>
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{%- endif -%}
|
|
@ -1,47 +0,0 @@
|
|||
{%- assign _author = include.author -%}
|
||||
|
||||
{%- if _author.type == 'organization' -%}
|
||||
{%- assign _author_itemtype = 'http://schema.org/Organization' -%}
|
||||
{%- else -%}
|
||||
{%- assign _author_itemtype = 'http://schema.org/Person' -%}
|
||||
{%- endif -%}
|
||||
|
||||
<div itemscope itemtype="{{ _author_itemtype }}" class="author-profile card card--flat item">
|
||||
{%- if _author.avatar -%}
|
||||
{%- if _author.url -%}
|
||||
<a href="{{ _author.url }}" class="item__image">
|
||||
{%- endif -%}
|
||||
{%- include snippets/get-nav-url.html path=_author.avatar -%}
|
||||
{%- assign _author_avatar = __return -%}
|
||||
<img class="author-profile__avatar" itemprop="image" src="{{ _author_avatar }}" />
|
||||
{%- if _author.url -%}
|
||||
</a>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
<div class="item__content">
|
||||
|
||||
{%- if _author.name -%}
|
||||
<meta itemprop="name" content="{{ _author.name }}">
|
||||
<p class="author-profile__name">
|
||||
{%- if _author.url -%}
|
||||
<meta itemprop="url" content="{{ _author.url }}">
|
||||
<a href="{{ _author.url }}">
|
||||
{%- endif -%}
|
||||
{{ _author.name }}
|
||||
{%- if _author.url -%}
|
||||
</a>
|
||||
{%- endif -%}
|
||||
</p>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.bio -%}
|
||||
<p itemprop="description">{{ _author.bio }}</p>
|
||||
{%- endif -%}
|
||||
<div class="author-profile__links">
|
||||
{%- include author-links.html author=_author -%}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
|
@ -1,3 +0,0 @@
|
|||
<!-- start custom article footer snippet -->
|
||||
|
||||
<!-- end custom article footer snippet -->
|
|
@ -1,14 +0,0 @@
|
|||
{%- include snippets/get-locale-string.html key='LICENSE_ANNOUNCE' -%}
|
||||
{%- assign _license_announce = __return -%}
|
||||
|
||||
{%- if include.license -%}
|
||||
|
||||
{%-assign _license_name = '<a itemprop="license" rel="license" href="[URL]">[NAME]</a>' | replace: "[URL]", include.license.url | replace: "[NAME]", include.license.name -%}
|
||||
<div class="license">
|
||||
<p align="center">{{ _license_announce | replace: "[LICENSE]", _license_name }}
|
||||
<a rel="license" href="{{ include.license.url }}">
|
||||
<img alt="{{ include.license.name }}" src="{{ include.license.image }}" />
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
{%- endif -%}
|
|
@ -1,6 +0,0 @@
|
|||
{%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%}
|
||||
{%- include snippets/get-nav-url.html path=_paths_rss -%}
|
||||
{%- assign _paths_rss = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='SUBSCRIBE' -%}
|
||||
{%- assign _locale_nav_subscribe = __return -%}
|
||||
<div class="subscribe"><i class="fas fa-rss"></i> <a type="application/rss+xml" href="{{ _paths_rss }}">{{ _locale_nav_subscribe }}</a></div>
|
|
@ -1,3 +0,0 @@
|
|||
<!-- start custom article top snippet -->
|
||||
|
||||
<!-- end custom article top snippet -->
|
|
@ -1 +0,0 @@
|
|||
<div class="toc-aside js-toc-root"></div>
|
|
@ -1,120 +0,0 @@
|
|||
{%- assign _author = include.author -%}
|
||||
|
||||
<div class="author-links">
|
||||
<ul class="menu menu--nowrap menu--inline">
|
||||
|
||||
{%- if _author.url -%}
|
||||
<link itemprop="url" href="{{ _author.url }}">
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.type == 'organization' -%}
|
||||
{%- include snippets/get-locale-string.html key='EMAIL_US' -%}
|
||||
{%- assign _locale_string_email = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='FOLLOW_US' -%}
|
||||
{%- assign _locale_string_follow = __return -%}
|
||||
{%- else -%}
|
||||
{%- include snippets/get-locale-string.html key='EMAIL_ME' -%}
|
||||
{%- assign _locale_string_email = __return -%}
|
||||
{%- include snippets/get-locale-string.html key='FOLLOW_ME' -%}
|
||||
{%- assign _locale_string_follow = __return -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- include snippets/get-locale-string.html key='EMAIL_ME' -%}
|
||||
{%- if _author.email -%}
|
||||
<li title="{{ _locale_string_email }}">
|
||||
<a class="button button--circle mail-button" itemprop="email" href="mailto:{{ _author.email }}" target="_blank">
|
||||
<i class="fas fa-envelope"></i>
|
||||
</a>
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if _author.facebook -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Facebook' }}">
|
||||
<a class="button button--circle facebook-button" itemprop="sameAs" href="https://www.facebook.com/{{ _author.facebook }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/facebook.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.twitter -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Twitter' }}">
|
||||
<a class="button button--circle twitter-button" itemprop="sameAs" href="https://twitter.com/{{ _author.twitter }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/twitter.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.weibo -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Weibo' }}">
|
||||
<a class="button button--circle weibo-button" itemprop="sameAs" href="https://weibo.com/{{ _author.weibo }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/weibo.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.googleplus -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Google+' }}">
|
||||
<a class="button button--circle googlepluse-button" itemprop="sameAs" href="https://plus.google.com/u/0/{{ _author.googleplus }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/googleplus.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.telegram -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Telegram' }}">
|
||||
<a class="button button--circle telegram-button" itemprop="sameAs" href="https://t.me/{{ _author.telegram }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/telegram.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.medium -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Medium' }}">
|
||||
<a class="button button--circle medium-button" itemprop="sameAs" href="https://medium.com/{{ _author.medium }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/medium.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.zhihu -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Zhihu' }}">
|
||||
<a class="button button--circle zhihu-button" itemprop="sameAs" href="https://www.zhihu.com/people/{{ _author.zhihu }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/zhihu.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.douban -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Douban' }}">
|
||||
<a class="button button--circle douban-button" itemprop="sameAs" href="https://www.douban.com/people/{{ _author.douban }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/douban.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.linkedin -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Linkedin' }}">
|
||||
<a class="button button--circle linkedin-button" itemprop="sameAs" href="https://www.linkedin.com/in/{{ _author.linkedin }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/linkedin.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.github -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'Github' }}">
|
||||
<a class="button button--circle github-button" itemprop="sameAs" href="https://github.com/{{ _author.github }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/github.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if _author.npm -%}
|
||||
<li title="{{ _locale_string_follow | replace: '[NAME]', 'npm' }}">
|
||||
<a class="button button--circle npm-button" itemprop="sameAs" href="https://www.npmjs.com/~{{ _author.npm }}" target="_blank">
|
||||
<div class="icon">{%- include svg/icon/social/npm.svg -%}</div>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
</ul>
|
||||
</div>
|
|
@ -0,0 +1,7 @@
|
|||
<!--
|
||||
<li>
|
||||
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
|
||||
</a>
|
||||
</li>
|
||||
-->
|
|
@ -0,0 +1,246 @@
|
|||
{% assign author = page.author | default: page.authors[0] | default: site.author %}
|
||||
{% assign author = site.data.authors[author] | default: author %}
|
||||
|
||||
<div itemscope itemtype="https://schema.org/Person" class="h-card">
|
||||
|
||||
{% if author.avatar %}
|
||||
<div class="author__avatar">
|
||||
<a href="{{ author.home | default: '/' | absolute_url }}">
|
||||
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image" class="u-photo">
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="author__content">
|
||||
<h3 class="author__name p-name" itemprop="name">
|
||||
<a class="u-url" rel="me" href="{{ author.home | default: '/' | absolute_url }}" itemprop="url">{{ author.name }}</a>
|
||||
</h3>
|
||||
{% if author.bio %}
|
||||
<div class="author__bio p-note" itemprop="description">
|
||||
{{ author.bio | markdownify }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="author__urls-wrapper">
|
||||
<button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
|
||||
<ul class="author__urls social-icons">
|
||||
{% if author.location %}
|
||||
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
|
||||
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name" class="p-locality">{{ author.location }}</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.links %}
|
||||
{% for link in author.links %}
|
||||
{% if link.label and link.url %}
|
||||
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer me"{% if link.url contains 'http' %} itemprop="sameAs"{% endif %}><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i><span class="label">{{ link.label }}</span></a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.uri %}
|
||||
<li>
|
||||
<a href="{{ author.uri }}" itemprop="url" rel="me">
|
||||
<i class="fas fa-fw fa-link" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].website_label | default: "Website" }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.email %}
|
||||
<li>
|
||||
<a href="mailto:{{ author.email }}" rel="me" class="u-email">
|
||||
<meta itemprop="email" content="{{ author.email }}" />
|
||||
<i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.keybase %}
|
||||
<li>
|
||||
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-keybase" aria-hidden="true"></i><span class="label">Keybase</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.twitter %}
|
||||
<li>
|
||||
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i><span class="label">Twitter</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.facebook %}
|
||||
<li>
|
||||
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i><span class="label">Facebook</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.linkedin %}
|
||||
<li>
|
||||
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">LinkedIn</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.xing %}
|
||||
<li>
|
||||
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i><span class="label">XING</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.instagram %}
|
||||
<li>
|
||||
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i><span class="label">Instagram</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.tumblr %}
|
||||
<li>
|
||||
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i><span class="label">Tumblr</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.bitbucket %}
|
||||
<li>
|
||||
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i><span class="label">Bitbucket</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.github %}
|
||||
<li>
|
||||
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.gitlab %}
|
||||
<li>
|
||||
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i><span class="label">GitLab</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.stackoverflow %}
|
||||
<li>
|
||||
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i><span class="label">Stack Overflow</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.lastfm %}
|
||||
<li>
|
||||
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i><span class="label">Last.fm</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.dribbble %}
|
||||
<li>
|
||||
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i><span class="label">Dribbble</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.pinterest %}
|
||||
<li>
|
||||
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i><span class="label">Pinterest</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.foursquare %}
|
||||
<li>
|
||||
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i><span class="label">Foursquare</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.steam %}
|
||||
<li>
|
||||
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-steam" aria-hidden="true"></i><span class="label">Steam</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.youtube %}
|
||||
{% if author.youtube contains "://" %}
|
||||
<li>
|
||||
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
|
||||
</a>
|
||||
</li>
|
||||
{% elsif author.youtube %}
|
||||
<li>
|
||||
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.soundcloud %}
|
||||
<li>
|
||||
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i><span class="label">SoundCloud</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.weibo %}
|
||||
<li>
|
||||
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i><span class="label">Weibo</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.flickr %}
|
||||
<li>
|
||||
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i><span class="label">Flickr</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.codepen %}
|
||||
<li>
|
||||
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i><span class="label">CodePen</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.vine %}
|
||||
<li>
|
||||
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-vine" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% include author-profile-custom-links.html %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,40 @@
|
|||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if page.collection != 'posts' %}
|
||||
{% assign path_type = nil %}
|
||||
{% assign crumb_path = '/' %}
|
||||
{% else %}
|
||||
{% assign crumb_path = site.category_archive.path %}
|
||||
{% endif %}
|
||||
|
||||
<nav class="breadcrumbs">
|
||||
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
{% assign crumbs = page.url | split: '/' %}
|
||||
{% assign i = 1 %}
|
||||
{% for crumb in crumbs offset: 1 %}
|
||||
{% if forloop.first %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ '/' | relative_url }}" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
|
||||
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% if forloop.last %}
|
||||
<li class="current"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</li>
|
||||
{% else %}
|
||||
{% assign i = i | plus: 1 %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | url_decode | replace: '-', ' ' | capitalize }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</nav>
|
|
@ -0,0 +1,19 @@
|
|||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if site.category_archive.path %}
|
||||
{% assign categories_sorted = page.categories | sort_natural %}
|
||||
|
||||
<p class="page__taxonomy">
|
||||
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for category_word in categories_sorted %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
{% endif %}
|
|
@ -0,0 +1,22 @@
|
|||
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="https://schema.org/Comment">
|
||||
<div class="comment__avatar-wrapper">
|
||||
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}">
|
||||
</div>
|
||||
<div class="comment__content-wrapper">
|
||||
<h3 class="comment__author" itemprop="author" itemscope itemtype="https://schema.org/Person">
|
||||
{% unless include.url == blank %}
|
||||
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
|
||||
{% else %}
|
||||
<span itemprop="name">{{ include.name }}</span>
|
||||
{% endunless %}
|
||||
</h3>
|
||||
<p class="comment__date">
|
||||
{% if include.date %}
|
||||
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
|
||||
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %-d, %Y at %I:%M %p" }}</time>
|
||||
{% if include.index %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<div itemprop="text">{{ include.message | markdownify }}</div>
|
||||
</div>
|
||||
</article>
|
|
@ -1,3 +1,3 @@
|
|||
<!-- start custom comments snippet -->
|
||||
|
||||
<!-- end custom comments snippet -->
|
||||
<!-- end custom comments snippet -->
|
|
@ -0,0 +1,3 @@
|
|||
<!-- start custom comments scripts -->
|
||||
|
||||
<!-- end custom comments scripts -->
|
|
@ -0,0 +1,13 @@
|
|||
{% if site.comments.discourse.server %}
|
||||
{% capture canonical %}{% if site.permalink contains '.html' %}{{ page.url | absolute_url }}{% else %}{{ page.url | absolute_url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
|
||||
<script type="text/javascript">
|
||||
DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
|
||||
discourseEmbedUrl: '{{ canonical }}' };
|
||||
(function () {
|
||||
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
|
||||
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the comments powered by <a href="https://www.discourse.org/">Discourse.</a></noscript>
|
||||
{% endif %}
|
|
@ -1,22 +1,15 @@
|
|||
{%- if page.key and
|
||||
site.comments.disqus.shortname -%}
|
||||
|
||||
<div id="disqus_thread"></div>
|
||||
{% if site.comments.disqus.shortname %}
|
||||
<script>
|
||||
/**
|
||||
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
||||
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
|
||||
var disqus_config = function () {
|
||||
this.page.url = '{%- include snippets/page-url.html -%}';
|
||||
this.page.identifier = '{{ page.key }}';
|
||||
};
|
||||
(function() { // DON'T EDIT BELOW THIS LINE
|
||||
var d = document, s = d.createElement('script');
|
||||
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||
s.setAttribute('data-timestamp', +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
var disqus_config = function () {
|
||||
this.page.url = "{{ page.url | absolute_url }}"; /* Replace PAGE_URL with your page's canonical URL variable */
|
||||
this.page.identifier = "{{ page.id }}"; /* Replace PAGE_IDENTIFIER with your page's unique identifier variable */
|
||||
};
|
||||
(function() { /* DON'T EDIT BELOW THIS LINE */
|
||||
var d = document, s = d.createElement('script');
|
||||
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||
s.setAttribute('data-timestamp', +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
|
||||
{%- endif -%}
|
||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
{% endif %}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<div id="fb-root"></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
|
@ -0,0 +1,34 @@
|
|||
<script>
|
||||
'use strict';
|
||||
|
||||
(function () {
|
||||
var commentContainer = document.querySelector('#giscus-comments');
|
||||
|
||||
if (!commentContainer) {
|
||||
return;
|
||||
}
|
||||
|
||||
var script = document.createElement('script');
|
||||
|
||||
script.setAttribute('src', 'https://giscus.app/client.js');
|
||||
script.setAttribute('data-repo', '{{ site.repository | downcase }}');
|
||||
script.setAttribute('data-repo-id', '{{ site.comments.giscus.repo_id }}');
|
||||
script.setAttribute('data-category', '{{ site.comments.giscus.category_name }}');
|
||||
script.setAttribute('data-category-id', '{{ site.comments.giscus.category_id }}');
|
||||
script.setAttribute('data-mapping', '{{ site.comments.giscus.discussion_term | default: "pathname" }}');
|
||||
script.setAttribute('data-strict', '{{ site.comments.giscus.strict | default: 0 }}');
|
||||
script.setAttribute('data-reactions-enabled', '{{ site.comments.giscus.reactions_enabled | default: 1 }}');
|
||||
script.setAttribute('data-emit-metadata', '{{ site.comments.giscus.emit_metadata | default: 0 }}');
|
||||
script.setAttribute('data-input-position', '{{ site.comments.giscus.input_position | default: "top" }}');
|
||||
script.setAttribute('data-theme', '{{ site.comments.giscus.theme | default: "light" }}');
|
||||
script.setAttribute('data-lang', '{{ site.comments.giscus.lang | default: "en" }}');
|
||||
{% if site.comments.giscus.lazy %}
|
||||
script.setAttribute('data-loading', 'lazy');
|
||||
{% endif %}
|
||||
script.setAttribute('crossorigin', 'anonymous');
|
||||
|
||||
script.setAttribute('async', '');
|
||||
|
||||
commentContainer.appendChild(script);
|
||||
})();
|
||||
</script>
|
|
@ -1,39 +0,0 @@
|
|||
{%- if page.key and
|
||||
site.comments.gitalk.clientID and
|
||||
site.comments.gitalk.clientSecret and
|
||||
site.comments.gitalk.repository and
|
||||
site.comments.gitalk.owner and
|
||||
site.comments.gitalk.admin -%}
|
||||
|
||||
<!-- fix text color in the input textarea of gitalk -->
|
||||
<style type="text/css">
|
||||
.gitalk-wrapper .gt-header-textarea {
|
||||
color: #333 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
{%- include snippets/get-sources.html -%}
|
||||
{%- assign _sources = __return -%}
|
||||
<div class="gitalk-wrapper" id="js-gitalk-container"></div>
|
||||
{%- assign _admin = '' -%}
|
||||
{%- for _admin_id in site.comments.gitalk.admin -%}
|
||||
{%- assign _admin = _admin | append: ", '" | append: _admin_id | append: "'" -%}
|
||||
{%- endfor -%}
|
||||
{%- assign _last = _admin | size | minus: 1 -%}
|
||||
{%- assign _admin = _admin | slice: 2, _last -%}
|
||||
<script>
|
||||
window.Lazyload.css('{{ _sources.gitalk.css }}');
|
||||
window.Lazyload.js('{{ _sources.gitalk.js }}', function() {
|
||||
var gitalk = new Gitalk({
|
||||
clientID: '{{ site.comments.gitalk.clientID }}',
|
||||
clientSecret: '{{ site.comments.gitalk.clientSecret }}',
|
||||
repo: '{{ site.comments.gitalk.repository }}',
|
||||
owner: '{{ site.comments.gitalk.owner }}',
|
||||
admin: [{{ _admin }}],
|
||||
id: '{{ page.key }}'
|
||||
});
|
||||
gitalk.render('js-gitalk-container');
|
||||
});
|
||||
</script>
|
||||
|
||||
{%- endif -%}
|
|
@ -0,0 +1,20 @@
|
|||
{% if site.comments.provider and page.comments %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "disqus" %}
|
||||
{% include /comments-providers/disqus.html %}
|
||||
{% when "discourse" %}
|
||||
{% include /comments-providers/discourse.html %}
|
||||
{% when "facebook" %}
|
||||
{% include /comments-providers/facebook.html %}
|
||||
{% when "staticman" %}
|
||||
{% include /comments-providers/staticman.html %}
|
||||
{% when "staticman_v2" %}
|
||||
{% include /comments-providers/staticman_v2.html %}
|
||||
{% when "utterances" %}
|
||||
{% include /comments-providers/utterances.html %}
|
||||
{% when "giscus" %}
|
||||
{% include /comments-providers/giscus.html %}
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom_scripts.html %}
|
||||
{% endcase %}
|
||||
{% endif %}
|
|
@ -0,0 +1,40 @@
|
|||
{% if site.repository and site.staticman.branch %}
|
||||
<script>
|
||||
(function ($) {
|
||||
$('#new_comment').submit(function () {
|
||||
var form = this;
|
||||
|
||||
$(form).addClass('disabled');
|
||||
$('#comment-form-submit').html('<i class="fas fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
|
||||
|
||||
$.ajax({
|
||||
type: $(this).attr('method'),
|
||||
url: $(this).attr('action'),
|
||||
data: $(this).serialize(),
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
success: function (data) {
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--danger');
|
||||
$('.page__comments-form .js-notice').addClass('notice--success');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--success');
|
||||
$('.page__comments-form .js-notice').addClass('notice--danger');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
|
||||
$(form).removeClass('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function showAlert(message) {
|
||||
$('.page__comments-form .js-notice').removeClass('hidden');
|
||||
$('.page__comments-form .js-notice-text').html(message);
|
||||
}
|
||||
})(jQuery);
|
||||
</script>
|
||||
{% endif %}
|
|
@ -0,0 +1,40 @@
|
|||
{% if site.repository and site.comments.staticman.branch %}
|
||||
<script>
|
||||
(function ($) {
|
||||
$('#new_comment').submit(function () {
|
||||
var form = this;
|
||||
|
||||
$(form).addClass('disabled');
|
||||
$('#comment-form-submit').html('<i class="fas fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
|
||||
|
||||
$.ajax({
|
||||
type: $(this).attr('method'),
|
||||
url: $(this).attr('action'),
|
||||
data: $(this).serialize(),
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
success: function (data) {
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--danger');
|
||||
$('.page__comments-form .js-notice').addClass('notice--success');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--success');
|
||||
$('.page__comments-form .js-notice').addClass('notice--danger');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
|
||||
$(form).removeClass('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function showAlert(message) {
|
||||
$('.page__comments-form .js-notice').removeClass('hidden');
|
||||
$('.page__comments-form .js-notice-text').html(message);
|
||||
}
|
||||
})(jQuery);
|
||||
</script>
|
||||
{% endif %}
|
|
@ -0,0 +1,21 @@
|
|||
<script>
|
||||
'use strict';
|
||||
|
||||
(function() {
|
||||
var commentContainer = document.querySelector('#utterances-comments');
|
||||
|
||||
if (!commentContainer) {
|
||||
return;
|
||||
}
|
||||
|
||||
var script = document.createElement('script');
|
||||
script.setAttribute('src', 'https://utteranc.es/client.js');
|
||||
script.setAttribute('repo', '{{ site.repository }}');
|
||||
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term | default: "pathname" }}');
|
||||
{% if site.comments.utterances.label %}script.setAttribute('label', '{{ site.comments.utterances.label }}');{% endif %}
|
||||
script.setAttribute('theme', '{{ site.comments.utterances.theme | default: "github-light" }}');
|
||||
script.setAttribute('crossorigin', 'anonymous');
|
||||
|
||||
commentContainer.appendChild(script);
|
||||
})();
|
||||
</script>
|
|
@ -1,46 +0,0 @@
|
|||
{%- include snippets/get-sources.html -%}
|
||||
{%- assign _sources = __return -%}
|
||||
|
||||
{%- assign _VALINE_APP_ID = site.comments.valine.app_id -%}
|
||||
{%- assign _VALINE_APP_KEY = site.comments.valine.app_key -%}
|
||||
{%- assign _VALINE_PLACEHOLDER = site.comments.valine.placeholder -%}
|
||||
{%- assign _VALINE_VISITOR = site.comments.valine.visitor -%}
|
||||
{%- assign _VALINE_META = site.comments.valine.meta -%}
|
||||
|
||||
|
||||
{%- if _VALINE_APP_ID and
|
||||
_VALINE_APP_KEY -%}
|
||||
|
||||
<div id="vcomments"></div>
|
||||
|
||||
{%- if _VALINE_VISITOR -%}
|
||||
<span id="{{page.url}}" class="leancloud-visitors" data-flag-title={{page.title}}>
|
||||
</span>
|
||||
{%- endif -%}
|
||||
|
||||
<script>
|
||||
window.Lazyload.js(['{{ _sources.leancloud_js_sdk}}', '{{ _sources.valine }}'], function() {
|
||||
var _config = {
|
||||
el: '#vcomments',
|
||||
appId: '{{ _VALINE_APP_ID }}',
|
||||
appKey: '{{ _VALINE_APP_KEY }}',
|
||||
verify: true,
|
||||
};
|
||||
{%- if _VALINE_PLACEHOLDER -%}
|
||||
_config.placeholder = '{{ _VALINE_PLACEHOLDER }}';
|
||||
{%- endif -%}
|
||||
{%- assign _page_lang_slice = page.lang | slice: 0, 2 -%}
|
||||
{%- if _page_lang_slice != 'zh' -%}
|
||||
_config.lang = 'en';
|
||||
{%- endif -%}
|
||||
{%- if _VALINE_VISITOR -%}
|
||||
_config.visitor = 'true';
|
||||
{%- endif -%}
|
||||
{%- if _VALINE_META -%}
|
||||
_config.meta = {{ _VALINE_META}};
|
||||
{%- endif -%}
|
||||
new Valine(_config);
|
||||
});
|
||||
</script>
|
||||
|
||||
{%- endif -%}
|
|
@ -1,11 +1,180 @@
|
|||
{%- if jekyll.environment != 'development' -%}
|
||||
{%- if site.comments.provider == 'disqus' -%}
|
||||
{%- include comments-providers/disqus.html -%}
|
||||
{%- elsif site.comments.provider == 'gitalk' -%}
|
||||
{%- include comments-providers/gitalk.html -%}
|
||||
{%- elsif site.comments.provider == 'valine' -%}
|
||||
{%- include comments-providers/valine.html -%}
|
||||
{%- elsif site.comments.provider == 'custom' -%}
|
||||
{%- include comments-providers/custom.html -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
<div class="page__comments">
|
||||
{% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "discourse" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="discourse-comments"></section>
|
||||
{% when "disqus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="disqus_thread"></section>
|
||||
{% when "facebook" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section class="fb-comments" data-href="{{ page.url | absolute_url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
|
||||
{% when "staticman_v2" %}
|
||||
<section id="static-comments">
|
||||
{% if site.repository and site.comments.staticman.branch %}
|
||||
<!-- Start static comments -->
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] %}
|
||||
|
||||
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
|
||||
create a new array of plain comment objects and then sort by the comment date. -->
|
||||
{% assign commentObjects = '' | split: '' %}
|
||||
{% for comment in comments %}
|
||||
{% assign commentObject = comment[1] %}
|
||||
{% assign commentObjects = commentObjects | push: commentObject %}
|
||||
{% endfor %}
|
||||
{% assign comments = commentObjects | sort: "date" %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment.email %}
|
||||
{% assign name = comment.name %}
|
||||
{% assign url = comment.url %}
|
||||
{% assign date = comment.date %}
|
||||
{% assign message = comment.message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- End static comments -->
|
||||
|
||||
<!-- Start new comment form -->
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.comments.staticman.endpoint }}{{ site.repository }}/{{ site.comments.staticman.branch }}/comments">
|
||||
<div class="form__spinner">
|
||||
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
|
||||
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
|
||||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
|
||||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
|
||||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
|
||||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
|
||||
</div>
|
||||
<div class="form-group hidden" style="display: none;">
|
||||
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
|
||||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
|
||||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
|
||||
{% if site.reCaptcha.siteKey %}<input type="hidden" name="options[reCaptcha][siteKey]" value="{{ site.reCaptcha.siteKey }}">{% endif %}
|
||||
{% if site.reCaptcha.secret %}<input type="hidden" name="options[reCaptcha][secret]" value="{{ site.reCaptcha.secret }}">{% endif %}
|
||||
</div>
|
||||
<!-- Start comment form alert messaging -->
|
||||
<p class="hidden js-notice">
|
||||
<strong class="js-notice-text"></strong>
|
||||
</p>
|
||||
<!-- End comment form alert messaging -->
|
||||
{% if site.reCaptcha.siteKey %}
|
||||
<div class="form-group">
|
||||
<div class="g-recaptcha" data-sitekey="{{ site.reCaptcha.siteKey }}"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- End new comment form -->
|
||||
{% if site.reCaptcha.siteKey %}<script async src="https://www.google.com/recaptcha/api.js"></script>{% endif %}
|
||||
{% endif %}
|
||||
</section>
|
||||
{% when "staticman" %}
|
||||
<section id="static-comments">
|
||||
{% if site.repository and site.staticman.branch %}
|
||||
<!-- Start static comments -->
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] %}
|
||||
|
||||
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
|
||||
create a new array of plain comment objects and then sort by the comment date. -->
|
||||
{% assign commentObjects = '' | split: '' %}
|
||||
{% for comment in comments %}
|
||||
{% assign commentObject = comment[1] %}
|
||||
{% assign commentObjects = commentObjects | push: commentObject %}
|
||||
{% endfor %}
|
||||
{% assign comments = commentObjects | sort: "date" %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment.email %}
|
||||
{% assign name = comment.name %}
|
||||
{% assign url = comment.url %}
|
||||
{% assign date = comment.date %}
|
||||
{% assign message = comment.message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- End static comments -->
|
||||
|
||||
<!-- Start new comment form -->
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
|
||||
<div class="form__spinner">
|
||||
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
|
||||
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
|
||||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
|
||||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
|
||||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
|
||||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
|
||||
</div>
|
||||
<div class="form-group hidden" style="display: none;">
|
||||
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
|
||||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
|
||||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
|
||||
</div>
|
||||
<!-- Start comment form alert messaging -->
|
||||
<p class="hidden js-notice">
|
||||
<strong class="js-notice-text"></strong>
|
||||
</p>
|
||||
<!-- End comment form alert messaging -->
|
||||
<div class="form-group">
|
||||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- End new comment form -->
|
||||
{% endif %}
|
||||
</section>
|
||||
{% when "utterances" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="utterances-comments"></section>
|
||||
{% when "giscus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="giscus-comments"></section>
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom.html %}
|
||||
{% endcase %}
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.26.2 by Michael Rose
|
||||
Copyright 2013-2024 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* Minimal Mistakes Jekyll Theme 4.26.2 by Michael Rose
|
||||
* Copyright 2013-2024 Michael Rose - mademistakes.com | @mmistakes
|
||||
* Free for personal and commercial use under the MIT license
|
||||
* https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
*/
|
|
@ -0,0 +1,13 @@
|
|||
{% assign entries = include.entries | default: site[include.collection] | where_exp: "post", "post.hidden != true" %}
|
||||
|
||||
{% if include.sort_by %}
|
||||
{% assign entries = entries | sort: include.sort_by %}
|
||||
{% endif %}
|
||||
|
||||
{% if include.sort_order == 'reverse' %}
|
||||
{% assign entries = entries | reverse %}
|
||||
{% endif %}
|
||||
|
||||
{%- for post in entries -%}
|
||||
{% include archive-single.html type=include.type %}
|
||||
{%- endfor -%}
|
|
@ -1,5 +0,0 @@
|
|||
<div class="extensions extensions--video">
|
||||
<iframe src="//player.bilibili.com/player.html?aid={{ include.id }}&page=1"
|
||||
frameborder="no" scrolling="no" allowfullscreen="true">
|
||||
</iframe>
|
||||
</div>
|
|
@ -1,4 +0,0 @@
|
|||
<div class="extensions extensions--demo">
|
||||
<iframe src='//codepen.io/{{ include.user }}/embed/{{ include.hash }}/?theme-id=0&default-tab={{ include.default_tab | default: result }}'
|
||||
frameborder="0" scrolling="no" allowfullscreen></iframe>
|
||||
</div>
|
|
@ -1,4 +0,0 @@
|
|||
<iframe class="extensions extensions--audio" width="330" height="86"
|
||||
src="//music.163.com/outchain/player?type=2&id={{ include.id }}&auto=1&height=66"
|
||||
frameborder="no" border="0" marginwidth="0" marginheight="0">
|
||||
</iframe>
|
|
@ -1,6 +0,0 @@
|
|||
<div class="extensions extensions--slide">
|
||||
<iframe src="//www.slideshare.net/slideshow/embed_code/key/{{ include.id }}"
|
||||
width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"
|
||||
style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen>
|
||||
</iframe>
|
||||
</div>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue