Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GitLab support #219

Merged
merged 42 commits into from Aug 29, 2018
Merged

Add GitLab support #219

merged 42 commits into from Aug 29, 2018

Conversation

ntsim
Copy link
Contributor

@ntsim ntsim commented Jul 22, 2018

Fixes #22

This PR primarily adds support for GitLab across Staticman's API 🚀 🎉. There is a quite a big surface area to this one @eduardoboucas, so there might be things that you might not be certain about. Let me know if there's anything that needs more work or I haven't quite covered!

This includes the following notable changes:

Staticman API config

  • githubBaseUrl added to allow URL of self-hosted GitHub API to be configured.
  • githubAccessTokenUri added to allow the OAuth access token endpoint of self-hosted GitHub instances to be configured.
  • gitlabToken added to allow configuration of Staticman's personal access token in the GitLab instance.
  • `gitlabBaseUrl added to allow URL of self-hosted GitLab API to be configured.
  • gitlabAccessTokenUri added to allow the OAuth access token endpoint of self-hosted GitLab instances to be configured.
  • The new options all default to the publicly available instances of GitHub/GitLab.

Staticman site config (staticman.yml)

  • gitlabAuth.clientId, gitlabAuth.clientSecret and gitlabAuth.redirectUri added to provide OAuth configuration when a user wishes to authenticate via GitLab.
  • githubAuth.redirectUri added for parity with the new gitlabAuth options.
  • auth.required option added to determine if any authentication is required before the user can submit a comment through Staticman.

/entry endpoint

  • New URL pattern added:
     /v3/entry/:service/:username/:repository/:branch/:property
    
  • Accepts gitlab or github as a service parameter. This will be then used as the target for the consequent API calls.
  • Functionality mostly remains the same, but with Staticman now able to submit Merge Requests (PRs) to GitLab. MRs are set to automatically close the source branch, meaning that it is not necessary to have a webhook to close the branch with GitLab.
  • If auth.required site config option is true, then options[auth-token] and options[auth-type] must be passed through as well.
  • options[auth-token] replaces option[github-token] (as this was too specific to GitHub).
  • options[auth-type] has been added to allow the user to choose which authentication provider should be used i.e. gitlab or github. Any future integrations with other authentication providers would be expected to hook into this.
  • A new User model has been implemented which abstracts the user identity models from GitHub and GitLab. This only exposes common properties such as username, email, etc, hopefully simplifying future code.
  • The v2 API functionality is still implemented for backwards compatiblity. This includes the previous authentication behaviour where options[github-token] is used.

/auth endpoint

  • New URL pattern added:
     /v3/auth/:service/:username/:repository/:branch/:property
    
  • Accepts gitlab or github as a service parameter. This will be then used as the target for the consequent API calls.
  • The site owner will have to have set the correct options in their site config e.g. gitlabAuth.clientId, etc, to enable the user to authenticate with all authentication providers.
  • As part of GitLab's OAuth flow, a redirectUri must be provided (see here). Consequently, this has also been added for GitHub to be consistent.
  • The new User model is exposed here in the response's user property to confine the scope of this model for any future consumers.
  • The v2 API functionality is still implemented for backwards compatiblity (will return the GitHub API's user model in the response).

/connect endpoint

  • URL pattern changed to:
     /v3/connect/:service/:username/:repository
    
  • Remains largely unchanged, however with the addition of a service parameter. This has been added to be consistent and future proof against more Git service providers to connect through.
  • GitLab does not have collaborator invites, so this is currently not required for Staticman to collaborate on a project. The user can just add Staticman immediately.

Other changes

  • Minimum supported NodeJS version have been bumped up to 8.11.3 (the current LTS version).
  • New class syntax has been introduced in places such as the Git service classes.
  • Tests run 4x faster by improving how the test site config is setup before tests. Bugs have also been fixed due to config being modified between tests. Config is now mostly just copied to new objects between tests.
  • Various NPM dependencies have been changed/upgraded, such as:
    • github -> @octokit/rest as the previous package was deprecated.
    • request-promise-native -> request-promise as this interops with the GitLab package's request-promise.
    • node-uuid -> uuid as the previous package was deprecated.

Sarasate and others added 30 commits July 12, 2018 15:12
Added our site gatsbycentral.com which uses staticman.
This should remove all of the `logger.info()` calls we used to track down eduardoboucas#176.
Some public APIs have been modified to expose their required parameters
e.g. `authenticateWithCode(code, clientId, clientSecret)` or renamed
in the case of `writeFileAndSendReview()`.
This class does not currently include OAuth authentication code as the
authentication API (particularly for OAuth) for the GitHub service class
also needs to be considered first.
This commit changes the GitHub class to require authentication credentials
via OAuth or a Personal Access Token upon instantiation. The previous
API required you to call an authentication method first before calling
any of the other methods (which could potentially cause issues).

As we will require authentication credentials at instantiation, there is
no longer any need to have any authentication methods on the class, with
the exception of the `requestOAuthAccessToken` method. This is a static
method which *could* be refactored out of the class (to be determined later).

Some additional polish in the tests has also been performed.
This commit replaces the deprecated `github` package with `@octokit/rest`.
One of the major change is that API response bodies are wrapped under a
`data`key (instead of being returned directly). Consequently, a large
amount of refactoring was required to get the tests passing.

Other changes include:
- `user` parameter in API requests has been replaced by `owner`. This is
  probably to make the semantics more flexible for when it is not a user
  e.g. an organisation.
The new `gitlab` package uses `request-promise` which causes method name
collisions when in the same project as `request-promise-native`. This is
due to both of these packages attempting to attach the various Promise
methods such as `then`, `catch`, etc.

Once one of the `request-promise` implementations has configured `request`
it will proceed to error if another implementation tries to attach the same
methods again. To avoid any trouble, the default `request-promise`
implementation using Bluebird will be used (as it is not possible to set
the Promise implementation to be used by the `gitlab` API).
…ig tests

This change primarily addresses the Staticman tests. It appears that most
Staticman tests had been ignored by accident via an errant `jest.only`
and were not actually running.

Some of the site config tests were also failing and logging unnecessarily
(this is due to a log statement from eduardoboucas#176 still remaining in the codebase).

The site config test helper `getConfig` has also been refactored to remove
the special handling of the `recaptcha.secret`. Upon removal there doesn't
seem to have been any notable problems and tests are passing (after some
cleanup in relevant areas).
This commit abstracts some of the raw GitHub API calls being made -
`getCurrentUser`, `deleteBranch` and `getReview` into the service class
so that they can be generalised for GitLab as well.

Notably, the `handlePR` controller current has some weird coding around
how it handles the received webhook event from GitHub. Specifically, it
seems that it would be easier to just delete the branch immediately upon
receiving the webhook, rather than retrieving the PR and *then* deleting
the branch. This requires more content before a refactor can be performed.
This commit stops credentials e.g. personal access tokens being leaked
by the GitLab service class when an error is thrown. This is due to the
underlying request errors exposing too many details, particularly from
`request-promise`.

To solve this, we just re-wrap errors with a new `ApiError` class which
only exposes minimal details.
This commit fixes the `_pullFile` method which previously did not work
correctly and simplifies the `_commitFile` method's API call.
This commit adds additional handling for the GitLab OAuth flow. As part
of this we require additional site config options:

- `githubAuth.redirectUri`
- `gitlabAuth.clientId`
- `gitlabAuth.clientSecret`
- `gitlabAuth.redirectUri`

Notably, the `githubAuth` controller has also been renamed to `auth` to
be more generic sounding.

Additional changes include:
- Various OAuth has been refactored and moved around (in general)
- Factory method for instantiating GitLab/GitHub. This is mostly just to
  remove the boilerplate of writing `switch` statements in many places.
This commit adds a `User` model to properly encapsulate what data should
be exposed from the Staticman API and specifically narrow its scope.

With the addition of the GitLab identity provider, we need to be conscious
that the GitLab user data structure will not be the same as the GitHub
user (or any future identity provider's user model). This could be
problematic as:

1. We could expose private user data unintentionally.
2. Staticman consumers will be able too much access to the internal user
   API meaning they could become too reliant on parts that we do not want
   to expose long term.
This commit re-adds support for the v2 API's `/auth` endpoint by returning
the raw GitHub user in the response `user` field. This has been removed
accidentally when the API was upgraded to v3.

Various other failing tests have also been fixed and OAuth tests have been
separated into their own file.
This commit adds new handling for when entries are processed with the
new `auth.required` config option set to true. Staticman will now check
for an `auth-token` field (instead of a `github-token`) and use this to
validate that the user is indeed authenticated already on either GitHub
or GitLab.

Backwards compatibility with the v2 API has been maintained but it should
be analyzed if this is important as the code is somewhat messy as a result.
This commit speeds up the tests by up to ~4x (from ~48s to 12s). The
slowness was due to the high cost of instantiating Convict from the site
config every time a test was run. This is mostly due to all the
validations/coercions that it must perform (such as RSA decryption)
every single time. It is much faster to just clone the site config object.

- `lodash` was used for the `cloneDeep` implementation.
VincentTam added a commit to VincentTam/slowbreathing.github.io that referenced this pull request Jul 27, 2019
See eduardoboucas/staticman#219 for info about Staticman v3 URL scheme.
sumeetmondal pushed a commit to sumeetmondal/sumeetmondal.github.io that referenced this pull request Sep 10, 2019
* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo
eigenfoo added a commit to eigenfoo/old-eigenfoo.github.io that referenced this pull request Oct 6, 2019
* Update last modified time

* Added missing ref attribute (mmistakes#1959)

As suggested by @mmistakes in mmistakes#1948 (comment)

* Use privacy aware embed options for YouTube & Vimeo (mmistakes#1964)

* Update CHANGELOG and history

* Punjabi Translation of ui-text (mmistakes#1962)

* Punjabi Translation of ui-text

There are more than 100 million native speakers of Punjabi language. I am one of them. More details about [punjabi on wikipedia](https://en.wikipedia.org/wiki/Punjabi_language).
All the punjabi translations are perfect with the following exceptions-
  - in the variable name (_config.yml and words_per_minute) which are intentionally left in english.
  - meta_label is empty

* Update CHANGELOG and history

* Add support for utterances (mmistakes#1966)

* Add support for utterances
* Add utterances config documentation
* Update CHANGELOG and history

Close mmistakes#1909

* Update localized text list

* Update README.md

* Update theme documentation

* Increase font-size

* Increase padding

* Add focus color

* Adjust navigation toggles

* Use dark syntax highlighting

* Update CHANGELOG and history

* Add Google Drive as video provider (mmistakes#1967)

* Add Google Drive provider documentation

* Update CHANGELOG and history

* Changed schema.org to secure links (https) (mmistakes#1969)

* Update CHANGELOG and history

* Prevent current post from showing in the "You may also enjoy" (related (mmistakes#1976)

posts) section

* Update CHANGELOG and history

* Change teaser image

* Disable comments

* Add hover state

* Release 4.14.0 💎

* Update CHANGELOG

* Fix closed navicon on hover

* Release 4.14.1 gem

* Update NPM dependencies

cc/ mmistakes#1977

* Change remaining schema.org markup to `https` (mmistakes#1978)

* Update CHANGELOG and history

* Update about.md (mmistakes#1981)

Just a minor addition, the word Hindi written in devnagri script (the script used for this language). Makes it easier to visually understand what script we are talking about.

* Update README.md (mmistakes#1982)

Just a minor addition, the word Hindi written in devnagri script (the script used for this language). Makes it easier to visually understand what script we are talking about.

* Fix function name for Google Custom Search (mmistakes#1983)

fbafe58 renamed the function in the
scripts file, but did not rename the call sites.

* Update CHANGELOG and history

* Allow sidebar navs with custom sidebar content

Multiple sidebar navs can also be included on a page:

```
sidebar:
  - title: Navigation 1
    nav: nav1
  - title: Navigation 2
    nav: nav2
```

Fixes mmistakes#1986

* Update test post

* Update CHANGELOG and history

* Update YAML example

* Fix broken image

Close mmistakes#1994

* Fix broken image

* HTTPS Twitter short link (mmistakes#2001)

* Fixed Netlify typo (mmistakes#2013)

* update font awesome (mmistakes#1995)

REF: https://fontawesome.com/changelog/latest

* Update CHANGELOG and history

* Remove unused variables (mmistakes#1996)

* Update CHANGELOG and history

* [Bug fix]: Added missing Staticman Spanish UI text (mmistakes#1997)

Taken from line 91 of 5d-eu/messages.php@ec56008

* Update CHANGELOG and history

* Persian Translation of UI Elements (mmistakes#2004)

* Add Persian translation to ui-text.yml
* Mention the added Persian translation in the documentation

* Update CHANGELOG and history

* shorter IE conditional statement (mmistakes#2006)

saves 5 bytes :-)

* Update CHANGELOG and history

* Fix typo

* lunr 2.3.5 update (mmistakes#2010)

* Update CHANGELOG and history

* Fix wide tables that overflow parent container

Close mmistakes#2008

* Accessibility: Add aria-label to the search button (mmistakes#2014)

* Accessibility: Add aria-label to the search button
* Update button aria text
* Add aria text to menu toggle
* Add span for search toggle
* Update span for menu label & remove aria
* Update ui-text.yml to add search_label

* Update

* Update CHANGELOG and history

* Update copyright year

* Release 4.14.2 💎

* Bump version to 4.14.2

* Clicking TOC links changes hash fragment (mmistakes#2019)

* Fix smooth scroll breaking back button mmistakes#1767
* Change URL's hash fragment when clicking on TOC
* Switch from hashchange to popstate event handler

This seems to have better behavior with the Forward button, on page load,
and always scrolls in the right direction.

Close mmistakes#1767

* Update CHANGELOG and history

* Scrollspy-style updating of hash and TOC highlighting

* Use jQuery throttle library

* Define $active-color in terms of $primary-color

* Update CHANGELOG and history

* assign canonical directly if custom value exists (mmistakes#2021)

* Update CHANGELOG, history, and `canonical_url` documentation

* Add support to customize `issue-term` (mmistakes#2022)

Current we hardcoded the `pathname` for `issue-term` when we are using utterances comment provider.

It would be better for let users customize it by setting a `site.comments.utterances.issue_term` in their `_config.yml`.

* Update

* Fix scrollspy on link clicking, and # for top of page (mmistakes#2023)

* Update CHANGELOG and history

* Add logo and title customization to the masthead (mmistakes#2026)

* Add logo and title customization to the masthead

* Adjust config description

* Add test site logo to `/test`

* Document `site.logo` and `site.masthead_title`

* Update CHANGELOG and history

* Release 4.15.0 💎

* Fix empty `<img>` when `site_logo` is not assigned

Ref: mmistakes#2026 (comment)

* Update test post

* Add empty `alt` attribute to img tag with logo (mmistakes#2035)

* Provide empty alt attribute (alt="") for logo image, because it does not provide information

* Update CHANGELOG and history

* Fix `site.logo` false positives

* Update ui-text.yml (mmistakes#2037)

Add Malayalam localized UI text strings

* Add Malayalam localized UI text strings

* Update CHANGELOG, history, and docs

* Improve Staticman v3 documentation (mmistakes#2043)

* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo

* Remove 'www' from Stack Overflow URL (mmistakes#2054)

Stack Overflow is no longer including `www` in its URLs.

* [fix] syntax error of non-english character (mmistakes#2042)

* Dear the make of one of the world's greatest jekyll theme.

[problem]
I found that
'Syntax Error' occurs when non-english character is included in some html elements(e.g h2, h3 ...) and 'toc' is generated based of that elements.

[debug]
Click the any element of auto generated 'toc' in the below link.
https://aliwo.github.io/swblog/series/principles_of_python/object/#%EA%B0%9D%EC%B2%B4%EC%99%80-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98-%EC%A0%95%EC%9D%98

[fix]
This happens because escaped url string get right in to jquery. So I fixed it with
javascript's 'decodeURI' function! :)

* rollback unnecessary changes

* Compile main.min.js

* Update CHANGELOG and history

* update Font Awesome (mmistakes#2053)

* update Font Awesome

REF: https://fontawesome.com/changelog/latest

* Update _includes/scripts.html

Co-Authored-By: coliff <christianoliff@yahoo.com>

* Update CHANGELOG and history

* Updated swedish translations. (mmistakes#2056)

* Update Swedish localized UI text strings

* Update CHANGELOG and history

* Fix bad YAML

Remove comma

* Add Staticman app endpoint to docs site

* Revert "Add Staticman app endpoint to docs site"

This reverts commit 67c08a0.

* exit search screen with Esc key (mmistakes#2055)

* exit search with esc key feature is added
* closing search screen with esc key feature is added to _main.js

* Update CHANGELOG and history

* Update history page

* Add link to issue

* Release 4.15.2 💎

* Add missing translation of chinese (mmistakes#2072)

Add missing Chinese text strings

* Update CHANGELOG and history

* Fix indendation

Close mmistakes#2078

* Fix indents

* Loosen Bundler dependency for theme gem

* Remove Google+

Google+ is being shutdown on April 2, 2019. Social sharing buttong, comment provider, and author link configs have been removed from the theme.

ref: https://support.google.com/plus/answer/9195133

* Update CHANGELOG

* Add tip on how to start a YouTube embed at a given timestamp (mmistakes#2077)

Close mmistakes#2077

* Update Google Universal Analytics to load async (mmistakes#2079)

* Update CHANGELOG and history

* Adjust wording

* Add styling for GFM task lists

Close mmistakes#2092

* Add GFM task list example to post

* Replace jQuery Smooth Scroll with Smooth Scroll + Gumshoe (mmistakes#2082)

* Replace jQuery Smooth Scroll with Smooth Scroll + Gumshoe
* Change smooth scrolling speed
* Set maximum smooth scroll duration
* Remove Font Awesome CSS Ppseudo elements attribute from JS script

Close mmistakes#2050, close mmistakes#2075

* Update CHANGELOG and history

* Fix figures when they are inside of a list (mmistakes#2094)

* Update CHANGELOG and hsitory

* Fix French translation typo (mmistakes#2096)

* Update CHANGELOG and history

* Updated vi-VN for some missing terms (mmistakes#2097)

```yml
search_placeholder_text    : "Nhập từ khóa cần tìm..."
results_found              : "Kết quả tìm được"
back_to_top                : "Về đầu trang"
```

* Update CHANGELOG and history

* Typos fix and including more words for pt-br (mmistakes#2098)

I just fixed some typos PT-BR, included translations for words that were not translated and changed some words to better describe the tag's meaning. This is how I use it in my Portuguese blog.

* Update CHANGELOG and history

* Update Font Awesome (mmistakes#2102)

REF: https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md

* Update CHANGELOG and history

* Added missing Hindi Translation of ui-text (mmistakes#2105)

Due to unknown reason, Hindi translation of ui-text was missing (mmistakes#2101)
I have added it back from a previous pull request (mmistakes#1888)

*  Added missing Hindi Translation of ui-text ( for docs folder) (mmistakes#2106)

Due to unknown reason, Hindi translation of ui-text was missing (mmistakes#2101)
I have added it back from a previous pull request (mmistakes#1888)

* Update CHANGELOG and history

* Add UI Text for Thai Language (mmistakes#2111)

* Update `/docs` text strings

* Add reference to Thai UI text strings

* Fix table of contents active link styling

* Add `max-width` Sass variable (mmistakes#2093)

* Update CHANGELOG and history

* Allow adding JavaScript files after the theme's (mmistakes#2116)

Allow adding JavaScript files after those bundled in the theme

Close mmistakes#2110

* Update CHANGELOG and history

* Improve search `input` semantics (mmistakes#2123)

* Update search_form.html

Updates Issue mmistakes#2122 by adding the correct input type and aria label.

* update search_form.html

should be area-placeholder. My mistake. Updates Issue mmistakes#2122

* fix aria-placeholder

Updates issue mmistakes#2123 with a typo found by @mmistakes for liquid syntax.

Close mmistakes#2122

* Update CHANGELOG and history

* Release 4.16.0 💎

* Made Gumshoe contingent upon a TOC being present. This prevents a console error on pages without a TOC. (mmistakes#2124)

* Update CHANGELOG and history

* Update jquery v3.3.1 to v3.4.0 (mmistakes#2129)

* Update jquery v3.3.1 to v3.4.0
* Update `main.min.js`

Close mmistakes#2127

* Update CHANGELOG and history

* Update layout compress from v3.0.2 to v3.1.0 (mmistakes#2128)

* Update CHANGELOG and history

* Add link to MM remote theme starter

* Release 4.16.1 💎

* Revert back to jQuery v3.3.1

3.4.0 causes issues with older jQuery plugins that haven't been updated to support it.

* Release 4.16.2 💎

* Update Gumshoe to v5.1.1

Fixes mmistakes#2140

* Update CHANGELOG and history

* Update jQuery to v3.4.1

ref mmistakes#2137

* Update JavaScript listing

* Update CHANGELOG and history

* Reset positioning of `rel="permalink"` anchors

* Release 4.16.3 💎

* Fix permalink stacking order

* Update CHANGELOG and history

* add www to facebook.com link (mmistakes#2160)

* Change permalink

* Fix pound symbol not displaying properly for post categories and tags

Fixes mmistakes#2156

* Add edge case

* Update CHANGELOG and history

* Create FUNDING.yml

* Fix and complete Spanish localization (mmistakes#2149)

* Update CHANGELOG and history

* update Font Awesome (mmistakes#2150)

REF: https://fontawesome.com/changelog/latest

* Update CHANGELOG and history

* Fix and improve pt-BR localization. (mmistakes#2162)

* Update CHANGELOG and history

* Arithmetic fix in _form.scss (mmistakes#2169)

* Update CHANGELOG and history

* Release 4.16.4 💎

* Remove duplicate UI text file in `/docs`

* Add skip links

Close mmistakes#2182

* Remove extra `{`

Fixes mmistakes#2192

* Low hanging fruit (mmistakes#2186)

* Update 05-configuration.md

- fix dead Twitter Dev docs url
- slight clarification re: Player Card approval
- fix Jekyll docs url

* Update 2013-01-10-markup-image-alignment.md

- fix the/re typo

* Update CHANGELOG and history

* Fix broken Flickr images

* remove unneeded  type="text/javascript" (mmistakes#2190)

REF: 
- https://google.github.io/styleguide/htmlcssguide.html#type_Attributes
- https://codeguide.co/#html-style-script
- https://developers.google.com/analytics/devguides/collection/analyticsjs/

* Update CHANGELOG and history

* Fix missing fallback title for table of contents

* Remove unecessary console.log in `lunr-en.js` and `lunr-gr.js` JavaScript

Close mmistakes#2193

* Use Font Awesome Kits to use the latest version of icons

Close mmistakes#2184

* Complete missing parts of Korean locale. (mmistakes#2209)

search_placeholder_text, results_found, and back_to_top

* Update CHANGELOG and history

* Display site subtitle in masthead (mmistakes#2205)

* Add site subtitle
* Tabs vs spaces - the ancient conflict
* updates cfr PR mmistakes#2205
* Perhaps also add the closing anchor
* Make sure we check for the right variables...
* Brown paper bag - subtitle, not description

* Use `span` instead of `div` element

* Document `site.subtitle`

* Update CHANGELOG and history

* Add site subtitle

* Fixes aria issues on search form (mmistakes#2211)

* Fixes aria issues on search form
* Swapping aria-label for <label> tag in search
* Removing background gray caused by adding <form> tag to search
* Removing redundant space
* Making form not submit if key is enter

Close mmistakes#2180

* Add localized text string

* Update CHANGELOG and history

* Updated localized text string for "Punjabi" and "Hindi" language (mmistakes#2212)

* Update CHANGELOG and history

* Release 4.16.5 💎

* Allow Markdown in author bio (mmistakes#2215)

* enable markdown in author bio

added the markdownify liquid filter

* Add markdown to bio in _config.yml

* add markdown to bio in /test/ _config.yml

* Change <p> to <div>

* Add note about allowed Markdown in `author.bio`

* Update CHANGELOG and history

* Add emphasis

* Fix overlapping links in post link type

Close mmistakes#2222

* Fix default site.author in seo.html (mmistakes#2230)

* Update CHANGELOG and history

* Complete Spanish localization (mmistakes#2229)

* Update CHANGELOG and history

* Remove fullstop in some Staticman UI text (mmistakes#2220)

In this UI text, the 2nd sentence is not finished.
comment_form_info : "Your email address will not be published. Required fields are marked"

* Update CHANGELOG and history

* Fix typos

* Harmonize `site.url` for Organization JSON-LD schema

* Fix `site.url` in Organization/Person JSON-LD schema

Close mmistakes#1906

* Update history

* Relax Jekyll dependency to allow for version 4.0

* Ignore Jekyll cache

* Remove jemoji gem

* Bump dependencies

* Remove jemoji gem

* Update documentation

* Release 4.16.6 💎

* Translate into Catalan (mmistakes#2237)

* Translate into Catalan
* Translate missing key
* Pluralize key

* Update CHANGELOG, history, and docs

* Update onchange development dependency in package.json

Close mmistakes#2241

* Fix typo in config comment (mmistakes#2243)

* Update CHANGELOG and history

* Fix http links to use https (mmistakes#2244)

Every site should support https by now. Better to link the https sites right away. Both sites do support https at the time I checked.

* Update CHANGELOG and history

* Allow per-page override of words_per_minute (mmistakes#2250)

Different languages usually have different read speeds.
This change is useful for sites with multi-lingual content

* Document `page.words_per_minute`

* Update CHANGELOG and history

* Show a permalink anchor when hovering over headings in main content (mmistakes#2251)

* Implement heading permalinks, close mmistakes#2246

Thanks to jekyll/jekyll for CSS.
Link anchor is visible when the mouse hovers over the title line.

* Build the updated _main.js

* Update CHANGELOG and history

* remove extraneous space from IE conditional statement (mmistakes#2273)

* Update CHANGELOG and history

* Release 4.17.0 (mmistakes#2275)

* Release 4.17.0 💎

* Update CHANGELOG and history

* MAINT: remove LICENSE

* BUG: remove typo

* MAINT: remove docs dir

* STY: stylistic chages

* MAINT: remove vendor/bundle
sauleh pushed a commit to sauleh/personal_website_template that referenced this pull request Oct 13, 2019
* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo
@LordAmit LordAmit mentioned this pull request Jul 23, 2020
npflueger pushed a commit to npflueger/npflueger.github.io that referenced this pull request Dec 30, 2020
* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo
chukycheese pushed a commit to chukycheese/chukycheese.github.io that referenced this pull request Sep 18, 2023
* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants