From d055720b4e685ee94a32f2f87fcb4048490e2ee8 Mon Sep 17 00:00:00 2001 From: Michael Currin <18750745+MichaelCurrin@users.noreply.github.com> Date: Wed, 1 Sep 2021 14:45:59 +0200 Subject: [PATCH 01/11] docs: fix typo (#449) Merge pull request 449 --- lib/jekyll-seo-tag/url_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll-seo-tag/url_helper.rb b/lib/jekyll-seo-tag/url_helper.rb index 68246cd..42bc803 100644 --- a/lib/jekyll-seo-tag/url_helper.rb +++ b/lib/jekyll-seo-tag/url_helper.rb @@ -8,8 +8,8 @@ module Jekyll # Determines if the given string is an absolute URL # - # Returns true if an absolute URL. - # Retruns false if it's a relative URL + # Returns true if an absolute URL + # Returns false if it's a relative URL # Returns nil if it is not a string or can't be parsed as a URL def absolute_url?(string) return unless string From 01fcf38c8b776655dd7d7d09009f5a4b06bca422 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Wed, 1 Sep 2021 08:46:00 -0400 Subject: [PATCH 02/11] Update history to reflect merge of #449 [ci skip] --- History.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/History.markdown b/History.markdown index 2c1b440..2b6643c 100644 --- a/History.markdown +++ b/History.markdown @@ -4,6 +4,10 @@ * Allow to set type for author (#427) +### Development Fixes + + * Fix typo in source code comment (#449) + ## 2.7.1 / 2020-10-18 ### Development Fixes From e3d0542ce6860bd6a6f348602d11131c372513bc Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Wed, 1 Sep 2021 20:17:50 +0530 Subject: [PATCH 03/11] Set up Continuous Integration via GH Actions (#450) Merge pull request 450 --- .github/workflows/ci.yml | 103 +++++++++++++++++++++++++++++++++++++++ .travis.yml | 18 ------- 2 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..75291c8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,103 @@ +name: Continuous Integration + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + j4: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: "Jekyll ${{ matrix.jekyll_version }} (Ruby ${{ matrix.ruby_version }})" + runs-on: 'ubuntu-latest' + env: + JEKYLL_VERSION: ${{ matrix.jekyll_version }} + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + - 2.7 + - 3.0 + jekyll_version: + - "~> 4.0" + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Execute tests + run: bundle exec rspec + j3: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: "Jekyll ${{ matrix.jekyll_version }} (Ruby ${{ matrix.ruby_version }})" + runs-on: 'ubuntu-latest' + env: + JEKYLL_VERSION: ${{ matrix.jekyll_version }} + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + jekyll_version: + - "~> 3.9" + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Execute tests + run: bundle exec rspec + + style_check: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: "Code Style Check (Ruby ${{ matrix.ruby_version }})" + runs-on: 'ubuntu-latest' + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Check Style Offenses + run: bundle exec rubocop -S -D + + gem_build: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: "Test Gem build (Ruby ${{ matrix.ruby_version }})" + runs-on: 'ubuntu-latest' + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Test Gem build + run: bundle exec gem build jekyll-seo-tag.gemspec diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d5ffa5c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: ruby -cache: bundler -rvm: - - 2.5 - - 2.7 - -before_install: - - gem update --system - - gem install bundler - -script: script/cibuild - -env: - global: - - NOKOGIRI_USE_SYSTEM_LIBRARIES=true - matrix: - - JEKYLL_VERSION="~> 3.9" - - JEKYLL_VERSION="~> 4.0" From 7b5478a24972d74a633513610802d13da225bc64 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Wed, 1 Sep 2021 10:47:51 -0400 Subject: [PATCH 04/11] Update history to reflect merge of #450 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 2b6643c..0840522 100644 --- a/History.markdown +++ b/History.markdown @@ -7,6 +7,7 @@ ### Development Fixes * Fix typo in source code comment (#449) + * Set up Continuous Integration via GH Actions (#450) ## 2.7.1 / 2020-10-18 From e1a60e2fdf38fa8a345dd87ee10a220201fb4713 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Fri, 17 Sep 2021 12:54:01 +0530 Subject: [PATCH 05/11] Update third-party repo profile workflow config * Set ruby_version via `strategy.matrix`. * Migrate to `ruby/setup-ruby` action. * Use double-quoted strings consistently. --- .github/workflows/third-party.yml | 38 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/.github/workflows/third-party.yml b/.github/workflows/third-party.yml index e450e8a..0348108 100644 --- a/.github/workflows/third-party.yml +++ b/.github/workflows/third-party.yml @@ -10,7 +10,18 @@ on: jobs: build_n_profile: if: "!contains(github.event.commits[0].message, '[ci skip]')" - runs-on: 'ubuntu-latest' + name: "Third-Party Repo Profile (Ruby ${{ matrix.ruby_version }})" + runs-on: "ubuntu-latest" + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.7 + env: + BUNDLE_GEMFILE: "sandbox/Gemfile" + BUNDLE_PATH: "vendor/bundle" + BUNDLE_JOBS: 4 + BUNDLE_RETRY: 3 steps: - name: Checkout Jekyll SEO Tag uses: actions/checkout@v2 @@ -21,32 +32,19 @@ jobs: uses: actions/checkout@v2 with: repository: ashmaroli/tomjoht.github.io - ref: 'no-seo-tag' + ref: "no-seo-tag" path: alpha-sandbox - name: Checkout Same Third-Party Repository (WITH SEO Tag) uses: actions/checkout@v2 with: repository: ashmaroli/tomjoht.github.io - ref: 'seo-tag' + ref: "seo-tag" path: sandbox - - name: Set up Ruby - uses: actions/setup-ruby@v1 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 with: - ruby-version: 2.6.x - - name: Set up Dependencies Cache - uses: actions/cache@v1 - with: - path: sandbox/vendor/bundle - key: ubuntu-latest-gems- - restore-keys: | - ubuntu-latest-gems- - - name: Set up Dependencies - run: | - gem update --system --no-document - gem update bundler --no-document - bundle config gemfile sandbox/Gemfile - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true - name: Run Jekyll Build (WITHOUT SEO Tag) 3 times run: | bundle exec jekyll build -s alpha-sandbox -d alpha-sandbox/_site --trace From 6c387eaeb4e6e86ec19ca84f1dbdbc7411b1d523 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Fri, 17 Sep 2021 19:49:57 +0530 Subject: [PATCH 06/11] Bump RuboCop to v1.18.x (#452) Merge pull request 452 --- .rubocop.yml | 25 +++++++++++++++++- .rubocop_todo.yml | 35 ++++++++++++++++++++++++- jekyll-seo-tag.gemspec | 4 +-- lib/jekyll-seo-tag/author_drop.rb | 8 +++--- lib/jekyll-seo-tag/image_drop.rb | 8 +++--- lib/jekyll-seo-tag/json_ld_drop.rb | 7 +++-- spec/jekyll_seo_tag_integration_spec.rb | 3 ++- 7 files changed, 73 insertions(+), 17 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 7c33120..6688e6d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -5,15 +5,38 @@ inherit_gem: rubocop-jekyll: .rubocop.yml AllCops: - TargetRubyVersion: 2.4 + TargetRubyVersion: 2.5 + SuggestExtensions: false Exclude: - vendor/**/* +Layout/LineEndStringConcatenationIndentation: + Enabled: true Layout/LineLength: Exclude: - spec/**/* - jekyll-seo-tag.gemspec +Lint/EmptyInPattern: + Enabled: false + Metrics/BlockLength: Exclude: - spec/**/* + +Naming/InclusiveLanguage: + Enabled: false + +Performance/MapCompact: + Enabled: true +Performance/RedundantEqualityComparisonBlock: + Enabled: true +Performance/RedundantSplitRegexpArgument: + Enabled: true + +Style/InPatternThen: + Enabled: false +Style/MultilineInPatternThen: + Enabled: false +Style/QuotedSymbols: + Enabled: true diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index cb469c1..59fd59b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,13 +1,46 @@ # This configuration was generated by # `rubocop --auto-gen-config --auto-gen-only-exclude` -# on 2020-03-20 11:41:46 +0100 using RuboCop version 0.80.1. +# on 2021-09-17 06:40:32 UTC using RuboCop version 1.18.4. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. +# Offense count: 1 +# Configuration parameters: AllowComments. +Lint/EmptyClass: + Exclude: + - 'lib/jekyll-seo-tag/version.rb' + +# Offense count: 3 +Lint/NoReturnInBeginEndBlocks: + Exclude: + - 'lib/jekyll-seo-tag/author_drop.rb' + - 'lib/jekyll-seo-tag/drop.rb' + # Offense count: 1 # Cop supports --auto-correct. Lint/ToJSON: Exclude: - 'lib/jekyll-seo-tag/json_ld_drop.rb' + +# Offense count: 1 +# Configuration parameters: IgnoredMethods, Max. +Metrics/PerceivedComplexity: + Exclude: + - 'lib/jekyll-seo-tag/drop.rb' + +# Offense count: 1 +# Configuration parameters: MinSize. +Performance/CollectionLiteralInLoop: + Exclude: + - 'spec/jekyll_seo_tag/author_drop_spec.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +Style/RedundantBegin: + Exclude: + - 'lib/jekyll-seo-tag.rb' + - 'lib/jekyll-seo-tag/author_drop.rb' + - 'lib/jekyll-seo-tag/drop.rb' + - 'lib/jekyll-seo-tag/image_drop.rb' diff --git a/jekyll-seo-tag.gemspec b/jekyll-seo-tag.gemspec index 17eb92d..487444b 100644 --- a/jekyll-seo-tag.gemspec +++ b/jekyll-seo-tag.gemspec @@ -19,7 +19,7 @@ Gem::Specification.new do |spec| raise "RubyGems 2.0 or newer is required to protect against public gem pushes." end - spec.required_ruby_version = ">= 2.4.0" + spec.required_ruby_version = ">= 2.5.0" spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|spec|features)/!) } spec.bindir = "exe" @@ -30,5 +30,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "bundler", ">= 1.15" spec.add_development_dependency "html-proofer", "~> 3.7" spec.add_development_dependency "rspec", "~> 3.5" - spec.add_development_dependency "rubocop-jekyll", "~> 0.11" + spec.add_development_dependency "rubocop-jekyll", "~> 0.12.0" end diff --git a/lib/jekyll-seo-tag/author_drop.rb b/lib/jekyll-seo-tag/author_drop.rb index 2baa95e..9d534cb 100644 --- a/lib/jekyll-seo-tag/author_drop.rb +++ b/lib/jekyll-seo-tag/author_drop.rb @@ -41,8 +41,7 @@ module Jekyll private - attr_reader :page - attr_reader :site + attr_reader :site, :page # Finds the page author in the page.author, page.authors, or site.author # @@ -75,9 +74,10 @@ module Jekyll # or an empty hash, if the author cannot be resolved def author_hash @author_hash ||= begin - if resolved_author.is_a? Hash + case resolved_author + when Hash resolved_author - elsif resolved_author.is_a? String + when String { "name" => resolved_author }.merge!(site_data_hash) else {} diff --git a/lib/jekyll-seo-tag/image_drop.rb b/lib/jekyll-seo-tag/image_drop.rb index 5427353..43367a4 100644 --- a/lib/jekyll-seo-tag/image_drop.rb +++ b/lib/jekyll-seo-tag/image_drop.rb @@ -34,17 +34,17 @@ module Jekyll private - attr_accessor :page - attr_accessor :context + attr_accessor :page, :context # The normalized image hash with a `path` key (which may be nil) def image_hash @image_hash ||= begin image_meta = page["image"] - if image_meta.is_a?(Hash) + case image_meta + when Hash { "path" => nil }.merge!(image_meta) - elsif image_meta.is_a?(String) + when String { "path" => image_meta } else { "path" => nil } diff --git a/lib/jekyll-seo-tag/json_ld_drop.rb b/lib/jekyll-seo-tag/json_ld_drop.rb index 88bb0e0..11d04e3 100644 --- a/lib/jekyll-seo-tag/json_ld_drop.rb +++ b/lib/jekyll-seo-tag/json_ld_drop.rb @@ -16,9 +16,8 @@ module Jekyll def_delegator :page_drop, :type, :type # Expose #type and #logo as private methods and #@type as a public method - alias_method :"@type", :type - private :type - private :logo + alias_method :@type, :type + private :type, :logo VALID_ENTITY_TYPES = %w(BlogPosting CreativeWork).freeze VALID_AUTHOR_TYPES = %w(Organization Person).freeze @@ -84,7 +83,7 @@ module Jekyll private :main_entity def to_json - to_h.reject { |_k, v| v.nil? }.to_json + to_h.compact.to_json end private diff --git a/spec/jekyll_seo_tag_integration_spec.rb b/spec/jekyll_seo_tag_integration_spec.rb index df2ebac..b0b9d26 100755 --- a/spec/jekyll_seo_tag_integration_spec.rb +++ b/spec/jekyll_seo_tag_integration_spec.rb @@ -26,7 +26,8 @@ RSpec.describe Jekyll::SeoTag do end it "outputs meta generator" do - expect(output).to match(%r!Jekyll v#{Jekyll::VERSION}!i) + version = Jekyll::VERSION + expect(output).to match(%r!Jekyll v#{version}!i) end it "outputs valid HTML" do From 7c0d75a29b9f48af44657a17cce29e386f370cf2 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Fri, 17 Sep 2021 10:19:58 -0400 Subject: [PATCH 07/11] Update history to reflect merge of #452 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 0840522..5e94420 100644 --- a/History.markdown +++ b/History.markdown @@ -8,6 +8,7 @@ * Fix typo in source code comment (#449) * Set up Continuous Integration via GH Actions (#450) + * Bump RuboCop to v1.18.x (#452) ## 2.7.1 / 2020-10-18 From b5c53de8f04520b8807baca28830ceb908641dd7 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Thu, 7 Oct 2021 22:53:32 +0530 Subject: [PATCH 08/11] Profile with multiple Jekyll versions --- .github/workflows/third-party.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/third-party.yml b/.github/workflows/third-party.yml index 0348108..1a67494 100644 --- a/.github/workflows/third-party.yml +++ b/.github/workflows/third-party.yml @@ -9,19 +9,22 @@ on: - master jobs: build_n_profile: - if: "!contains(github.event.commits[0].message, '[ci skip]')" - name: "Third-Party Repo Profile (Ruby ${{ matrix.ruby_version }})" + name: "Third-Party Repo Profile with Jekyll ${{ matrix.jekyll_version }} (Ruby ${{ matrix.ruby_version }})" runs-on: "ubuntu-latest" strategy: fail-fast: false matrix: ruby_version: - 2.7 + jekyll_version: + - "~> 4.0" + - "~> 3.9" env: BUNDLE_GEMFILE: "sandbox/Gemfile" BUNDLE_PATH: "vendor/bundle" BUNDLE_JOBS: 4 BUNDLE_RETRY: 3 + JEKYLL_VERSION: ${{ matrix.jekyll_version }} steps: - name: Checkout Jekyll SEO Tag uses: actions/checkout@v2 From be9ce5d13e35f5560bd43853cac0f0f5a48ce1c2 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Thu, 7 Oct 2021 23:18:54 +0530 Subject: [PATCH 09/11] Profile using an intermediate shell script --- .github/workflows/scripts/memprof | 4 ++++ .github/workflows/{actions => scripts}/memprof.rb | 0 .github/workflows/third-party.yml | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/scripts/memprof rename .github/workflows/{actions => scripts}/memprof.rb (100%) diff --git a/.github/workflows/scripts/memprof b/.github/workflows/scripts/memprof new file mode 100644 index 0000000..2f06786 --- /dev/null +++ b/.github/workflows/scripts/memprof @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +bundle exec ruby jekyll-seo-tag/.github/workflows/scripts/memprof.rb sandbox +exit 0 diff --git a/.github/workflows/actions/memprof.rb b/.github/workflows/scripts/memprof.rb similarity index 100% rename from .github/workflows/actions/memprof.rb rename to .github/workflows/scripts/memprof.rb diff --git a/.github/workflows/third-party.yml b/.github/workflows/third-party.yml index 1a67494..aa773f3 100644 --- a/.github/workflows/third-party.yml +++ b/.github/workflows/third-party.yml @@ -59,4 +59,4 @@ jobs: bundle exec jekyll build -s sandbox -d sandbox/_site --trace bundle exec jekyll build -s sandbox -d sandbox/_site --trace - name: Memory Analysis of Jekyll Build (WITH SEO Tag) - run: bundle exec ruby jekyll-seo-tag/.github/workflows/actions/memprof.rb sandbox + run: bash jekyll-seo-tag/.github/workflows/scripts/memprof From 8b5d2901c262c6f9e97dcb1bfc473bd4250c5ea8 Mon Sep 17 00:00:00 2001 From: Ilgiz Mustafin Date: Fri, 8 Oct 2021 08:50:06 +0300 Subject: [PATCH 10/11] Allow setting `author.url` (#453) Merge pull request 453 --- docs/advanced-usage.md | 12 ++++++++++++ lib/jekyll-seo-tag/json_ld_drop.rb | 7 ++++++- spec/jekyll_seo_tag/json_ld_drop_spec.rb | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index a0d0a57..e534abd 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -68,6 +68,18 @@ There are several ways to convey this author-specific information. Author inform author: benbalter ``` +#### Setting author url + +Starting from August 6, 2021 [Google recommends](https://developers.google.com/search/updates) to set the `author.url` property. This property helps Google to disambiguate the correct author of the article. + +You can set it the same way as the other author properties. For example, you can put it in an `author` object, in the site's `_config.yml`, e.g.: + + ```yml + author: + name: My Name + url: https://example.com/ + ``` + ### Customizing JSON-LD output The following options can be set for any particular page. While the default options are meant to serve most users in the most common circumstances, there may be situations where more precise control is necessary. diff --git a/lib/jekyll-seo-tag/json_ld_drop.rb b/lib/jekyll-seo-tag/json_ld_drop.rb index 11d04e3..c892895 100644 --- a/lib/jekyll-seo-tag/json_ld_drop.rb +++ b/lib/jekyll-seo-tag/json_ld_drop.rb @@ -41,10 +41,15 @@ module Jekyll author_type = page_drop.author["type"] return if author_type && !VALID_AUTHOR_TYPES.include?(author_type) - { + hash = { "@type" => author_type || "Person", "name" => page_drop.author["name"], } + + author_url = page_drop.author["url"] + hash["url"] = author_url if author_url + + hash end def image diff --git a/spec/jekyll_seo_tag/json_ld_drop_spec.rb b/spec/jekyll_seo_tag/json_ld_drop_spec.rb index c40f4ed..3f1b5ff 100644 --- a/spec/jekyll_seo_tag/json_ld_drop_spec.rb +++ b/spec/jekyll_seo_tag/json_ld_drop_spec.rb @@ -69,6 +69,7 @@ RSpec.describe Jekyll::SeoTag::JSONLDDrop do expect(subject["author"]).to have_key("name") expect(subject["author"]["name"]).to be_a(String) expect(subject["author"]["name"]).to eql("author") + expect(subject["author"]["url"]).to be nil end end end @@ -95,6 +96,20 @@ RSpec.describe Jekyll::SeoTag::JSONLDDrop do expect(subject["author"]).to be nil end end + + context "when url is present" do + let(:author) { { "name" => "author", "url" => "https://example.com" } } + + it "returns the author with url" do + expect(subject).to have_key("author") + expect(subject["author"]).to be_a(Hash) + expect(subject["author"]).to have_key("url") + expect(subject["author"]["url"]).to eql("https://example.com") + expect(subject["author"]).to have_key("name") + expect(subject["author"]["name"]).to be_a(String) + expect(subject["author"]["name"]).to eql("author") + end + end end context "image" do From dff018c347d81c26d61a3270cb175c37231a5301 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Fri, 8 Oct 2021 01:50:07 -0400 Subject: [PATCH 11/11] Update history to reflect merge of #453 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 5e94420..5f13ab2 100644 --- a/History.markdown +++ b/History.markdown @@ -3,6 +3,7 @@ ### Minor Enhancements * Allow to set type for author (#427) + * Allow setting `author.url` (#453) ### Development Fixes