Browse Source

refactor: remove old files, lazy load images

fix/enable-imgix
Thomas Osmonson 5 years ago
parent
commit
3adde9bbf7
  1. 37
      .github/workflows/deploy.yml
  2. 10
      next.config.js
  3. 6
      package.json
  4. 69
      public/assets/css/main.scss
  5. 9024
      public/assets/js/main.js
  6. 95
      public/assets/navgoco/jquery.cookie.js
  7. 71
      public/assets/navgoco/jquery.navgoco.css
  8. 314
      public/assets/navgoco/jquery.navgoco.js
  9. 5
      public/robots.txt
  10. 0
      src/common/_includes/commandline.md
  11. 34
      src/common/routes/get-routes.js
  12. 72
      src/components/cli-reference.tsx
  13. 1
      src/components/code-block/index.tsx
  14. 4
      src/components/mdx/mdx-components.tsx
  15. 2
      src/pages/android/tutorial.md
  16. 2
      src/pages/common/core_ref.md
  17. 11
      src/pages/core/smart/tutorial.md
  18. 6
      src/pages/develop/cliDocs.md
  19. 2
      src/pages/develop/overview_auth.md
  20. 2
      src/pages/ios/tutorial.md
  21. 2
      src/pages/org/secureref.md
  22. 7
      src/pages/storage/cliDocs.md
  23. 4
      src/pages/storage/gaia-admin.md
  24. 196
      yarn.lock

37
.github/workflows/deploy.yml

@ -1,5 +1,5 @@
name: Deploy preview name: Deploy preview
on: [push, pull_request] on: pull_request
jobs: jobs:
vercel-deployment: vercel-deployment:
@ -7,7 +7,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Vercel action - name: Vercel action
uses: amondnet/vercel-action@v19.0.1+1 uses: amondnet/vercel-action@master
id: vercel-deployment-preview id: vercel-deployment-preview
with: with:
vercel-token: ${{ secrets.VERCEL_TOKEN }} vercel-token: ${{ secrets.VERCEL_TOKEN }}
@ -21,34 +21,23 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
script: | script: |
const firstLine = `The Blockstack docs have been deployed with Vercel using the code from this PR!`; const firstLine = `The Blockstack docs have been deployed with Vercel using the code from this PR!`;
console.log(context);
let comment = undefined; const { data } = await github.issues.listComments({
...context.repo,
try { issue_number: context.issue.number,
const comments = await github.paginate( });
'GET /repos/:owner/:repo/issues/:issue_number/comments', const vercelPreviewURLComment = data.find((comment) =>
{ ...context.repo, issue_number: context.issue.number }, comment.body.includes(firstLine)
response => response.data.map(issue => issue.body) );
); const commentId = vercelPreviewURLComment && vercelPreviewURLComment.id || undefined;
comment = comments.find((c) =>
c.body.includes(firstLine)
);
} catch(e) {
console.log('Comment could not be made!', e)
}
const commentId = comment && comment.id || undefined;
const commentBody = ` const commentBody = `
#### Deploy preview ready! #### Deploy previews
${firstLine} ${firstLine}
- [Click here to view the deploy preview.](${{ steps.vercel-deployment-preview.outputs.preview-url }}) - [Blockstack docs](${{ steps.vercel-deployment-preview.outputs.preview-url }})
Built with commit ${context.sha}. Built with commit ${context.sha}.
`; `;
if(context.issue.number){ if(context.issue.number){
if (commentId) { if (commentId) {
await github.issues.updateComment({ await github.issues.updateComment({

10
next.config.js

@ -1,20 +1,26 @@
const { includeMarkdown } = require('@hashicorp/remark-plugins');
const withMdxEnhanced = require('next-mdx-enhanced'); const withMdxEnhanced = require('next-mdx-enhanced');
const withBundleAnalyzer = require('@next/bundle-analyzer')({ const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true', enabled: process.env.ANALYZE === 'true',
}); });
const remark = require('remark'); const remark = require('remark');
const strip = require('strip-markdown'); const strip = require('strip-markdown');
const path = require('path');
const remarkPlugins = [ const remarkPlugins = [
[includeMarkdown, { resolveFrom: path.join(__dirname, 'src/common/_includes') }],
require('remark-squeeze-paragraphs'),
require('./src/lib/remark-paragraph-alerts'), require('./src/lib/remark-paragraph-alerts'),
require('remark-external-links'), require('remark-external-links'),
require('remark-emoji'), require('remark-emoji'),
require('remark-images'), require('remark-images'),
require('remark-unwrap-images'), require('remark-unwrap-images'),
require('remark-normalize-headings'),
require('remark-slug'), require('remark-slug'),
]; ];
const processMdxContent = mdxContent => { const getHeadings = mdxContent => {
const regex = /\n(#+)(.*)/gm; const regex = /\n(#+)(.*)/gm;
const found = mdxContent.match(regex); const found = mdxContent.match(regex);
const getLevel = string => string.split('#'); const getLevel = string => string.split('#');
@ -45,7 +51,7 @@ module.exports = withBundleAnalyzer(
fileExtensions: ['mdx', 'md'], fileExtensions: ['mdx', 'md'],
remarkPlugins, remarkPlugins,
extendFrontMatter: { extendFrontMatter: {
process: processMdxContent, process: getHeadings,
}, },
})({ })({
experimental: { experimental: {

6
package.json

@ -4,6 +4,7 @@
"dependencies": { "dependencies": {
"@blockstack/ui": "^2.9.5", "@blockstack/ui": "^2.9.5",
"@docsearch/react": "^1.0.0-alpha.14", "@docsearch/react": "^1.0.0-alpha.14",
"@hashicorp/remark-plugins": "^3.0.0",
"@mdx-js/loader": "1.6.6", "@mdx-js/loader": "1.6.6",
"@mdx-js/mdx": "^1.6.6", "@mdx-js/mdx": "^1.6.6",
"@mdx-js/react": "^1.6.6", "@mdx-js/react": "^1.6.6",
@ -22,6 +23,7 @@
"fathom-client": "^3.0.0", "fathom-client": "^3.0.0",
"front-matter": "^4.0.2", "front-matter": "^4.0.2",
"fs-extra": "^9.0.1", "fs-extra": "^9.0.1",
"github-slugger": "^1.3.0",
"jsx-to-string": "^1.4.0", "jsx-to-string": "^1.4.0",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"mdi-react": "7.3.0", "mdi-react": "7.3.0",
@ -44,13 +46,17 @@
"react-is": "^16.13.1", "react-is": "^16.13.1",
"react-live": "^2.2.2", "react-live": "^2.2.2",
"react-simple-code-editor": "^0.11.0", "react-simple-code-editor": "^0.11.0",
"react-virtualized-auto-sizer": "^1.0.2",
"react-waypoint": "^9.0.3", "react-waypoint": "^9.0.3",
"react-window": "^1.8.5",
"remark": "^12.0.0", "remark": "^12.0.0",
"remark-emoji": "2.1.0", "remark-emoji": "2.1.0",
"remark-external-links": "^6.1.0", "remark-external-links": "^6.1.0",
"remark-frontmatter": "^2.0.0", "remark-frontmatter": "^2.0.0",
"remark-images": "2.0.0", "remark-images": "2.0.0",
"remark-normalize-headings": "^2.0.0",
"remark-slug": "6.0.0", "remark-slug": "6.0.0",
"remark-squeeze-paragraphs": "^4.0.0",
"remark-unwrap-images": "2.0.0", "remark-unwrap-images": "2.0.0",
"store": "^2.0.12", "store": "^2.0.12",
"strip-markdown": "^3.1.2", "strip-markdown": "^3.1.2",

69
public/assets/css/main.scss

@ -1,69 +0,0 @@
---
# Only the main Sass file needs front matter (the dashes are enough)
---
// System fonts
@import "system-font-css/_system-font";
// Custom variables and variable overwrites.
@import "theme/variables";
// Import default variables and available mixins.
@import "uikit/variables-theme";
@import "uikit/mixins-theme";
// Custom mixin overwrites.
@import "theme/mixins";
// Import UIkit.
@import "theme/uikit";
// Other vendor styles
@import "syntax-highlighting/github";
// Comment forms
@import "comments/forms";
.uk-alert-primary {
background: lighten(mix(white, #32d296, 40%), 25%);
}
/**
* https://www.bryanbraun.com/anchorjs
*/
.anchorjs-link {
display: inline-block;
height: 32px;
margin-top: 4px;
margin-left: -1.4em !important;
}
.anchorjs-link:after {
margin-left: 7px;
margin-top: -4px;
display: block;
}
/**
* Create an invisible pseudo-element and make it the height of the
* sticky navbar so the jump takes you to a location above the link
*/
:target:before {
content: "";
display: block;
margin-top: -80px;
height: 80px;
width: 1px;
}
// END: www.bryanbraun.com/anchorjs
body > div.uk-lightbox.uk-overflow-hidden.uk-lightbox-panel.uk-open > div.uk-lightbox-toolbar.uk-lightbox-caption.uk-position-bottom.uk-text-center.uk-transition-slide-bottom.uk-transition-opaque
.lb-data .lb-details {
text-align: right;
}
.uk-table th {
vertical-align: top !important;
}

9024
public/assets/js/main.js

File diff suppressed because it is too large

95
public/assets/navgoco/jquery.cookie.js

@ -1,95 +0,0 @@
/*!
* jQuery Cookie Plugin v1.3.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as anonymous module.
define(['jquery'], factory);
} else {
// Browser globals.
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g;
function raw(s) {
return s;
}
function decoded(s) {
return decodeURIComponent(s.replace(pluses, ' '));
}
function converted(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
try {
return config.json ? JSON.parse(s) : s;
} catch(er) {}
}
var config = $.cookie = function (key, value, options) {
// write
if (value !== undefined) {
options = $.extend({}, config.defaults, options);
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = config.json ? JSON.stringify(value) : String(value);
return (document.cookie = [
config.raw ? key : encodeURIComponent(key),
'=',
config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// read
var decode = config.raw ? raw : decoded;
var cookies = document.cookie.split('; ');
var result = key ? undefined : {};
for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = decode(parts.shift());
var cookie = decode(parts.join('='));
if (key && key === name) {
result = converted(cookie);
break;
}
if (!key) {
result[name] = converted(cookie);
}
}
return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
if ($.cookie(key) !== undefined) {
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return true;
}
return false;
};
}));

71
public/assets/navgoco/jquery.navgoco.css

@ -1,71 +0,0 @@
.nav, .nav ul, .nav li {
list-style: none;
}
.nav ul {
padding: 0;
margin: 0 0 0 18px;
}
.nav {
padding: 4px;
margin: 0px;
}
.nav > li {
margin: 4px 0;
}
.nav > li li {
margin: 2px 0;
}
.nav a {
color: #333;
display: block;
outline: none;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
text-decoration: none;
}
.nav li > a > span {
float: right;
font-size: 19px;
font-weight: bolder;
}
.nav li > a:hover > span {
color: #fff;
}
.nav li > a > span:after {
content: '\25be';
}
.nav li.open > a > span:after {
content: '\25b4';
}
.nav a:hover, .nav li.active > a {
background-color: #726e6e;
color: #f5f5f5;
font-weight: 500;
}
.nav > li.active > a {
background-color: #4D90FE;
}
.nav li a {
font-size: 14px;
line-height: 20px;
padding: 5px 10px;
}
.nav > li > a {
font-size: 16px;
line-height: 1.4;
padding: 5px 10px;
font-weight: 800;
}

314
public/assets/navgoco/jquery.navgoco.js

@ -1,314 +0,0 @@
/*
* jQuery Navgoco Menus Plugin v0.2.1 (2014-04-11)
* https://github.com/tefra/navgoco
*
* Copyright (c) 2014 Chris T (@tefra)
* BSD - https://github.com/tefra/navgoco/blob/master/LICENSE-BSD
*/
(function($) {
"use strict";
/**
* Plugin Constructor. Every menu must have a unique id which will either
* be the actual id attribute or its index in the page.
*
* @param {Element} el
* @param {Object} options
* @param {Integer} idx
* @returns {Object} Plugin Instance
*/
var Plugin = function(el, options, idx) {
this.el = el;
this.$el = $(el);
this.options = options;
this.uuid = this.$el.attr('id') ? this.$el.attr('id') : idx;
this.state = {};
this.init();
return this;
};
/**
* Plugin methods
*/
Plugin.prototype = {
/**
* Load cookie, assign a unique data-index attribute to
* all sub-menus and show|hide them according to cookie
* or based on the parent open class. Find all parent li > a
* links add the carent if it's on and attach the event click
* to them.
*/
init: function() {
var self = this;
self._load();
self.$el.find('ul').each(function(idx) {
var sub = $(this);
sub.attr('data-index', idx);
if (self.options.save && self.state.hasOwnProperty(idx)) {
sub.parent().addClass(self.options.openClass);
sub.show();
} else if (sub.parent().hasClass(self.options.openClass)) {
sub.show();
self.state[idx] = 1;
} else {
sub.hide();
}
});
var caret = $('<span></span>').prepend(self.options.caretHtml);
var links = self.$el.find("li > a");
self._trigger(caret, false);
self._trigger(links, true);
self.$el.find("li:has(ul) > a").prepend(caret);
},
/**
* Add the main event trigger to toggle menu items to the given sources
* @param {Element} sources
* @param {Boolean} isLink
*/
_trigger: function(sources, isLink) {
var self = this;
sources.on('click', function(event) {
event.stopPropagation();
var sub = isLink ? $(this).next() : $(this).parent().next();
var isAnchor = false;
if (isLink) {
var href = $(this).attr('href');
isAnchor = href === undefined || href === '' || href === '#';
}
sub = sub.length > 0 ? sub : false;
self.options.onClickBefore.call(this, event, sub);
if (!isLink || sub && isAnchor) {
event.preventDefault();
self._toggle(sub, sub.is(":hidden"));
self._save();
} else if (self.options.accordion) {
var allowed = self.state = self._parents($(this));
self.$el.find('ul').filter(':visible').each(function() {
var sub = $(this),
idx = sub.attr('data-index');
if (!allowed.hasOwnProperty(idx)) {
self._toggle(sub, false);
}
});
self._save();
}
self.options.onClickAfter.call(this, event, sub);
});
},
/**
* Accepts a JQuery Element and a boolean flag. If flag is false it removes the `open` css
* class from the parent li and slides up the sub-menu. If flag is open it adds the `open`
* css class to the parent li and slides down the menu. If accordion mode is on all
* sub-menus except the direct parent tree will close. Internally an object with the menus
* states is maintained for later save duty.
*
* @param {Element} sub
* @param {Boolean} open
*/
_toggle: function(sub, open) {
var self = this,
idx = sub.attr('data-index'),
parent = sub.parent();
self.options.onToggleBefore.call(this, sub, open);
if (open) {
parent.addClass(self.options.openClass);
sub.slideDown(self.options.slide);
self.state[idx] = 1;
if (self.options.accordion) {
var allowed = self.state = self._parents(sub);
allowed[idx] = self.state[idx] = 1;
self.$el.find('ul').filter(':visible').each(function() {
var sub = $(this),
idx = sub.attr('data-index');
if (!allowed.hasOwnProperty(idx)) {
self._toggle(sub, false);
}
});
}
} else {
parent.removeClass(self.options.openClass);
sub.slideUp(self.options.slide);
self.state[idx] = 0;
}
self.options.onToggleAfter.call(this, sub, open);
},
/**
* Returns all parents of a sub-menu. When obj is true It returns an object with indexes for
* keys and the elements as values, if obj is false the object is filled with the value `1`.
*
* @since v0.1.2
* @param {Element} sub
* @param {Boolean} obj
* @returns {Object}
*/
_parents: function(sub, obj) {
var result = {},
parent = sub.parent(),
parents = parent.parents('ul');
parents.each(function() {
var par = $(this),
idx = par.attr('data-index');
if (!idx) {
return false;
}
result[idx] = obj ? par : 1;
});
return result;
},
/**
* If `save` option is on the internal object that keeps track of the sub-menus states is
* saved with a cookie. For size reasons only the open sub-menus indexes are stored. *
*/
_save: function() {
if (this.options.save) {
var save = {};
for (var key in this.state) {
if (this.state[key] === 1) {
save[key] = 1;
}
}
cookie[this.uuid] = this.state = save;
$.cookie(this.options.cookie.name, JSON.stringify(cookie), this.options.cookie);
}
},
/**
* If `save` option is on it reads the cookie data. The cookie contains data for all
* navgoco menus so the read happens only once and stored in the global `cookie` var.
*/
_load: function() {
if (this.options.save) {
if (cookie === null) {
var data = $.cookie(this.options.cookie.name);
cookie = (data) ? JSON.parse(data) : {};
}
this.state = cookie.hasOwnProperty(this.uuid) ? cookie[this.uuid] : {};
}
},
/**
* Public method toggle to manually show|hide sub-menus. If no indexes are provided all
* items will be toggled. You can pass sub-menus indexes as regular params. eg:
* navgoco('toggle', true, 1, 2, 3, 4, 5);
*
* Since v0.1.2 it will also open parents when providing sub-menu indexes.
*
* @param {Boolean} open
*/
toggle: function(open) {
var self = this,
length = arguments.length;
if (length <= 1) {
self.$el.find('ul').each(function() {
var sub = $(this);
self._toggle(sub, open);
});
} else {
var idx,
list = {},
args = Array.prototype.slice.call(arguments, 1);
length--;
for (var i = 0; i < length; i++) {
idx = args[i];
var sub = self.$el.find('ul[data-index="' + idx + '"]').first();
if (sub) {
list[idx] = sub;
if (open) {
var parents = self._parents(sub, true);
for (var pIdx in parents) {
if (!list.hasOwnProperty(pIdx)) {
list[pIdx] = parents[pIdx];
}
}
}
}
}
for (idx in list) {
self._toggle(list[idx], open);
}
}
self._save();
},
/**
* Removes instance from JQuery data cache and unbinds events.
*/
destroy: function() {
$.removeData(this.$el);
this.$el.find("li:has(ul) > a").unbind('click');
this.$el.find("li:has(ul) > a > span").unbind('click');
}
};
/**
* A JQuery plugin wrapper for navgoco. It prevents from multiple instances and also handles
* public methods calls. If we attempt to call a public method on an element that doesn't have
* a navgoco instance, one will be created for it with the default options.
*
* @param {Object|String} options
*/
$.fn.navgoco = function(options) {
if (typeof options === 'string' && options.charAt(0) !== '_' && options !== 'init') {
var callback = true,
args = Array.prototype.slice.call(arguments, 1);
} else {
options = $.extend({}, $.fn.navgoco.defaults, options || {});
if (!$.cookie) {
options.save = false;
}
}
return this.each(function(idx) {
var $this = $(this),
obj = $this.data('navgoco');
if (!obj) {
obj = new Plugin(this, callback ? $.fn.navgoco.defaults : options, idx);
$this.data('navgoco', obj);
}
if (callback) {
obj[options].apply(obj, args);
}
});
};
/**
* Global var holding all navgoco menus open states
*
* @type {Object}
*/
var cookie = null;
/**
* Default navgoco options
*
* @type {Object}
*/
$.fn.navgoco.defaults = {
caretHtml: '',
accordion: false,
openClass: 'open',
save: true,
cookie: {
name: 'navgoco',
expires: false,
path: '/'
},
slide: {
duration: 400,
easing: 'swing'
},
onClickBefore: $.noop,
onClickAfter: $.noop,
onToggleBefore: $.noop,
onToggleAfter: $.noop
};
})(jQuery);

5
public/robots.txt

@ -1,5 +0,0 @@
# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: *
Sitemap: https://docs.blockstack.org/sitemap.xml

0
src/common/_includes/commandline.md

34
src/common/routes/get-routes.js

@ -27,17 +27,7 @@ const sections = [
{ path: 'develop/storage' }, { path: 'develop/storage' },
{ path: 'storage/authentication' }, { path: 'storage/authentication' },
{ path: 'storage/write-to-read' }, { path: 'storage/write-to-read' },
// { path: 'storage/hub-choice' }, // { path: 'storage/hub-choice' }, // TODO: why is this missing? missing from `master` too
],
},
{
title: 'Data Indexing',
routes: [
{ path: 'storage/overview' },
{ path: 'develop/storage' },
{ path: 'storage/authentication' },
{ path: 'storage/write-to-read' },
// { path: 'storage/hub-choice' },
], ],
}, },
{ {
@ -127,7 +117,7 @@ const sections = [
{ path: 'common/javascript_ref' }, { path: 'common/javascript_ref' },
{ path: 'common/android_ref' }, { path: 'common/android_ref' },
{ path: 'common/ios_ref' }, { path: 'common/ios_ref' },
{ path: 'develop/cliDocs' }, // { path: 'develop/cliDocs' }, Duplicate
{ path: 'common/core_ref' }, { path: 'common/core_ref' },
{ path: 'core/wire-format' }, { path: 'core/wire-format' },
{ path: 'storage/config-schema' }, { path: 'storage/config-schema' },
@ -148,14 +138,18 @@ const getHeadings = mdContent => {
const routes = sections.map(section => { const routes = sections.map(section => {
const _routes = section.routes.map(route => { const _routes = section.routes.map(route => {
const fileContent = fs.readFileSync(path.join('./src/pages/', route.path + '.md'), 'utf8'); try {
const data = fm(fileContent); const fileContent = fs.readFileSync(path.join('./src/pages/', route.path + '.md'), 'utf8');
const headings = getHeadings(data.body); const data = fm(fileContent);
return { const headings = getHeadings(data.body);
...route, return {
...data.attributes, ...route,
headings, ...data.attributes,
}; headings,
};
} catch (e) {
console.log(e);
}
}); });
return { return {
...section, ...section,

72
src/components/cli-reference.tsx

@ -1,45 +1,45 @@
import React from 'react'; import React from 'react';
import { cliReferenceData } from '@common/_data/cliRef'; import { cliReferenceData } from '@common/_data/cliRef';
import { H2, P } from '@components/mdx/mdx-components';
import { Text } from '@components/typography'; import { Text } from '@components/typography';
import MDX from '@mdx-js/runtime'; import MDX from '@mdx-js/runtime';
import { MDXComponents } from '@components/mdx/mdx-components'; import { MDXComponents } from '@components/mdx/mdx-components';
import GithubSlugger from 'github-slugger';
export const CLIReferenceTable = () => { const Item = React.memo(({ entry, index }: any) => {
return ( const slugger = new GithubSlugger();
<>
{cliReferenceData.map((entry, key) => {
return (
<React.Fragment key={key}>
<H2>{entry.command}</H2>
<P>
<Text fontWeight="bold">Group</Text>: {entry.group}
</P>
<MDX components={MDXComponents}>{entry.usage}</MDX>
<MDXComponents.h3>Arguments</MDXComponents.h3>
<MDXComponents.table> return (
<tr> <React.Fragment key={index}>
<MDXComponents.th>Name</MDXComponents.th> <MDXComponents.h2 id={slugger.slug(entry.command)}>{entry.command}</MDXComponents.h2>
<MDXComponents.th>Type</MDXComponents.th> <MDXComponents.p>
<MDXComponents.th>Value</MDXComponents.th> <Text fontWeight="bold">Group</Text>: {entry.group}
<MDXComponents.th>Format</MDXComponents.th> </MDXComponents.p>
</tr> <MDX components={MDXComponents}>{entry.usage}</MDX>
<MDXComponents.h3 id={slugger.slug(entry.command + ' Arguments')}>Arguments</MDXComponents.h3>
<MDXComponents.table>
<tr>
<MDXComponents.th>Name</MDXComponents.th>
<MDXComponents.th>Type</MDXComponents.th>
<MDXComponents.th>Value</MDXComponents.th>
<MDXComponents.th>Format</MDXComponents.th>
</tr>
{entry.args.map((arg, argKey) => ( {entry.args.map((arg, argKey) => (
<tr key={argKey}> <tr key={argKey}>
<MDXComponents.td>{arg.name}</MDXComponents.td> <MDXComponents.td>{arg.name}</MDXComponents.td>
<MDXComponents.td>{arg.type}</MDXComponents.td> <MDXComponents.td>{arg.type}</MDXComponents.td>
<MDXComponents.td>{arg.value}</MDXComponents.td> <MDXComponents.td>{arg.value}</MDXComponents.td>
<MDXComponents.td> <MDXComponents.td>
<MDXComponents.inlineCode>{arg.format}</MDXComponents.inlineCode> <MDXComponents.inlineCode>{arg.format}</MDXComponents.inlineCode>
</MDXComponents.td> </MDXComponents.td>
</tr> </tr>
))} ))}
</MDXComponents.table> </MDXComponents.table>
</React.Fragment> </React.Fragment>
);
})}
</>
); );
}; });
export const CLIReferenceTable = () =>
cliReferenceData.map((entry, key) => {
return <Item entry={entry} index={key} />;
});

1
src/components/code-block/index.tsx

@ -6,6 +6,7 @@ import 'prismjs/components/prism-tsx';
import 'prismjs/components/prism-json'; import 'prismjs/components/prism-json';
import 'prismjs/components/prism-toml'; import 'prismjs/components/prism-toml';
import 'prismjs/components/prism-python'; import 'prismjs/components/prism-python';
import 'prismjs/components/prism-kotlin';
import { SimpleCodeBlock } from '@components/code-block/components'; import { SimpleCodeBlock } from '@components/code-block/components';
import { useForceUpdate } from '@blockstack/ui'; import { useForceUpdate } from '@blockstack/ui';

4
src/components/mdx/mdx-components.tsx

@ -105,8 +105,8 @@ export const BlockQuote: React.FC<BoxProps> = ({ children, className, ...rest })
); );
}; };
export const Img: React.FC<BoxProps> = props => ( export const Img: React.FC<BoxProps & { loading?: string; src?: string; alt?: string }> = props => (
<Box display="block" mx="auto" as="img" {...props} /> <Box loading="lazy" display="block" mx="auto" as="img" {...props} />
); );
export const MDXComponents = { export const MDXComponents = {

2
src/pages/android/tutorial.md

@ -75,7 +75,7 @@ In this section, you build a Blockstack `hello-world` web application that acts
### Generate and launch your hello-blockstack application ### Generate and launch your hello-blockstack application
{% include scaffolding.md %} @include "scaffolding.md"
In this section, you build an initial React.js application called In this section, you build an initial React.js application called
`hello-blockstack`. `hello-blockstack`.

2
src/pages/common/core_ref.md

@ -15,4 +15,4 @@ The Stacks Blockchain API was built to maintain pageable materialized views of t
_Note: Using this API requires you to trust the server, but provides a faster onboarding experience. It also addresses performance issues for which querying a node itself would be too slow or difficult._ _Note: Using this API requires you to trust the server, but provides a faster onboarding experience. It also addresses performance issues for which querying a node itself would be too slow or difficult._
{% include note.html content="If you are looking for the Stacks 1.0 RPC endpoint references, please follow [this link](https://core.blockstack.org/)." %} -> If you are looking for the Stacks 1.0 RPC endpoint references, please follow [this link](https://core.blockstack.org/).

11
src/pages/core/smart/tutorial.md

@ -73,7 +73,7 @@ You will see that the program and each statement is enclosed in `()` (parenthese
On the first line, a new public function `say-hi` is declared. Public functions are callable from other smart contracts, enabling developers to break complex tasks into smaller, simpler smart contracts (an exercise in [separating concerns](https://en.wikipedia.org/wiki/Separation_of_concerns)). On the first line, a new public function `say-hi` is declared. Public functions are callable from other smart contracts, enabling developers to break complex tasks into smaller, simpler smart contracts (an exercise in [separating concerns](https://en.wikipedia.org/wiki/Separation_of_concerns)).
{% include note.html content="To create private functions, you would use the <code>define-private</code> keyword. Private functions can only be executed by the current smart contract. Only public functions can be called from other contracts." %} -> To create private functions, you would use the `define-private` keyword. Private functions can only be executed by the current smart contract. Only public functions can be called from other contracts." %}
The function doesn't take any parameters and simply returns "hello world" using the [`ok`](clarityRef.html#ok) response constructor. The function doesn't take any parameters and simply returns "hello world" using the [`ok`](clarityRef.html#ok) response constructor.
@ -89,7 +89,14 @@ The second function, `echo-number`, is a [read-only function](clarityRef.html#de
## Access the Explorer Sandbox ## Access the Explorer Sandbox
{% include note.html content="<p>This tutorial uses a developer preview release of the <a href='https://testnet-explorer.blockstack.org/'>Stacks 2.0 Explorer</a>. Please feel free to report issues or request enhancements on the <a href='https://github.com/blockstack/explorer/issues/new'>blockstack/explorer</a> repository. For more details about this release, see the <a href='https://forum.blockstack.org/t/explore-the-stacks-2-0-testnet-with-the-new-explorer-developer-preview/10889'>Explore the Stacks 2.0 Testnet</a> post in the Blockstack forums.</p><p>If you encounter trouble using the Explorer Sandbox, try falling back to <a href='#get-familiar-with-cli-optional'>the CLI instructions at the end of this page</a>.</p>" %} > This tutorial uses a developer preview release of the [Stacks 2.0 Explorer](https://testnet-explorer.blockstack.org/).
> Please feel free to report issues or request enhancements on the [blockstack/explorer](https://github.com/blockstack/explorer/issues/new)
> repository.
>
> For more details about this release, see the [Explore the Stacks 2.0 Testnet](https://forum.blockstack.org/t/explore-the-stacks-2-0-testnet-with-the-new-explorer-developer-preview/10889)
> post in the Blockstack forums.
>
> If you encounter trouble using the Explorer Sandbox, try falling back to [the CLI instructions at the end of this page](#get-familiar-with-cli-optional).
Open up the [Stacks 2.0 Explorer Sandbox view](https://testnet-explorer.blockstack.org/sandbox). The Explorer Sandbox is a web-enabled view of the Testnet blockchain, and has tools for validating contracts, testing out transactions, and generating Testnet STX tokens. Here, we will run the code from `hello-world` right in the browser and create blockchain transactions right in the browser. Open up the [Stacks 2.0 Explorer Sandbox view](https://testnet-explorer.blockstack.org/sandbox). The Explorer Sandbox is a web-enabled view of the Testnet blockchain, and has tools for validating contracts, testing out transactions, and generating Testnet STX tokens. Here, we will run the code from `hello-world` right in the browser and create blockchain transactions right in the browser.

6
src/pages/develop/cliDocs.md

@ -1,6 +0,0 @@
---
---
# Blockstack CLI Reference
{% include commandline.md %}

2
src/pages/develop/overview_auth.md

@ -7,7 +7,7 @@ Blockstack Auth provides single sign on and authentication without third parties
## Authentication flow ## Authentication flow
{% include sign_in.md %} @include "sign_in.md"
## Scopes ## Scopes

2
src/pages/ios/tutorial.md

@ -95,7 +95,7 @@ modify the `hello-world` to interact with the iOS app via a redirect.
### Generate and launch your hello-blockstack application ### Generate and launch your hello-blockstack application
{% include scaffolding.md %} @include "scaffolding.md"
In this section, you build an initial React.js application called In this section, you build an initial React.js application called
`hello-blockstack`. `hello-blockstack`.

2
src/pages/org/secureref.md

@ -21,4 +21,4 @@ You are responsible for recalling and protecting your keys. Blockstack does not
## Security terminology ## Security terminology
{% include keyphrase.md %} @include "keyphrase.md"

7
src/pages/storage/cliDocs.md

@ -1,7 +0,0 @@
---
description: 'Storing user data with Blockstack'
---
# blockstack_cli reference
{% include commandline.md %}

4
src/pages/storage/gaia-admin.md

@ -8,9 +8,7 @@ A Gaia service can run a simple administrative service co-located with your Gaia
In this section, you learn how to use the Gaia admin service with your Gaia hub. In this section, you learn how to use the Gaia admin service with your Gaia hub.
{% include note.html content=" -> The examples in this section assume that Gaia and the admin service were installed through the Configure a hub on Amazon EC2.
The examples in this section assume that Gaia and the admin service
were installed through the Configure a hub on Amazon EC2." %}
## Understand the configuration files ## Understand the configuration files

196
yarn.lock

@ -1105,7 +1105,7 @@
dependencies: dependencies:
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.10.5" version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c"
integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==
@ -1240,6 +1240,19 @@
resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.22.tgz#2a0c712e63ce4d81e15bcc4ff1f69617b2b1312e" resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.22.tgz#2a0c712e63ce4d81e15bcc4ff1f69617b2b1312e"
integrity sha512-CEl7afHU9Jvva5lNvbCcdNhg+x3U+s8wj7PQNEtcIGc3zZ+/vo6YHCKjiyn7xAGa7Hn5jUu9g+5d7aeCEFEo+Q== integrity sha512-CEl7afHU9Jvva5lNvbCcdNhg+x3U+s8wj7PQNEtcIGc3zZ+/vo6YHCKjiyn7xAGa7Hn5jUu9g+5d7aeCEFEo+Q==
"@hashicorp/remark-plugins@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@hashicorp/remark-plugins/-/remark-plugins-3.0.0.tgz#3fe86655ec05d999613c826c5db07d44cf1fbda5"
integrity sha512-K5gn2kXW8zs2MSduobwnv5hXPANXfuH3bL5Ji42UoExoUmbitbIONtsn5N8ckeUVL+Ykk8dlMsb7gZkFHalLZg==
dependencies:
github-slugger "^1.3.0"
remark "^11.0.2"
to-vfile "^6.1.0"
unist-util-flatmap "^1.0.0"
unist-util-is "^4.0.2"
unist-util-map "^2.0.1"
unist-util-visit "^2.0.2"
"@mdx-js/loader@1.6.6", "@mdx-js/loader@^1.6.1": "@mdx-js/loader@1.6.6", "@mdx-js/loader@^1.6.1":
version "1.6.6" version "1.6.6"
resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.6.tgz#de7438f3b18b097d66380f8698123a91c587a2f9" resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.6.tgz#de7438f3b18b097d66380f8698123a91c587a2f9"
@ -4297,7 +4310,7 @@ getpass@^0.1.1:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
github-slugger@^1.0.0: github-slugger@^1.0.0, github-slugger@^1.3.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9"
integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==
@ -5431,6 +5444,11 @@ markdown-escapes@^1.0.0:
resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==
markdown-table@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60"
integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==
markdown-table@^2.0.0: markdown-table@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b"
@ -5447,6 +5465,13 @@ md5.js@^1.3.4:
inherits "^2.0.1" inherits "^2.0.1"
safe-buffer "^5.1.2" safe-buffer "^5.1.2"
mdast-normalize-headings@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/mdast-normalize-headings/-/mdast-normalize-headings-2.0.0.tgz#378c8161a9f57fcf52a6fd5628507af370c7f8c5"
integrity sha512-PVuunQSsJNYiuZ56QypccTVPy8DowOkj61HtD78PSq1M8I49GwxzhdE2QmOp+j/TwaT1yq/K4b201388/ucV2g==
dependencies:
unist-util-visit "^2.0.0"
mdast-squeeze-paragraphs@^4.0.0: mdast-squeeze-paragraphs@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
@ -5454,6 +5479,13 @@ mdast-squeeze-paragraphs@^4.0.0:
dependencies: dependencies:
unist-util-remove "^2.0.0" unist-util-remove "^2.0.0"
mdast-util-compact@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593"
integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==
dependencies:
unist-util-visit "^1.1.0"
mdast-util-compact@^2.0.0: mdast-util-compact@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490" resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490"
@ -5522,6 +5554,11 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
"memoize-one@>=3.1.1 <6":
version "5.1.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
memory-fs@^0.4.1: memory-fs@^0.4.1:
version "0.4.1" version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@ -6021,7 +6058,7 @@ object-assign@^2.0.0:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo= integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@ -6211,6 +6248,18 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
pbkdf2 "^3.0.3" pbkdf2 "^3.0.3"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
parse-entities@^1.0.2, parse-entities@^1.1.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50"
integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==
dependencies:
character-entities "^1.0.0"
character-entities-legacy "^1.0.0"
character-reference-invalid "^1.0.0"
is-alphanumerical "^1.0.0"
is-decimal "^1.0.0"
is-hexadecimal "^1.0.0"
parse-entities@^2.0.0: parse-entities@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
@ -7041,6 +7090,11 @@ react-transition-group@^4.4.1:
loose-envify "^1.4.0" loose-envify "^1.4.0"
prop-types "^15.6.2" prop-types "^15.6.2"
react-virtualized-auto-sizer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.2.tgz#a61dd4f756458bbf63bd895a92379f9b70f803bd"
integrity sha512-MYXhTY1BZpdJFjUovvYHVBmkq79szK/k7V3MO+36gJkWGkrXKtyr4vCPtpphaTLRAdDNoYEYFZWE8LjN+PIHNg==
react-waypoint@^9.0.3: react-waypoint@^9.0.3:
version "9.0.3" version "9.0.3"
resolved "https://registry.yarnpkg.com/react-waypoint/-/react-waypoint-9.0.3.tgz#176aa4686b33eb40d0d48d361c468f0367167958" resolved "https://registry.yarnpkg.com/react-waypoint/-/react-waypoint-9.0.3.tgz#176aa4686b33eb40d0d48d361c468f0367167958"
@ -7050,6 +7104,14 @@ react-waypoint@^9.0.3:
prop-types "^15.0.0" prop-types "^15.0.0"
react-is "^16.6.3" react-is "^16.6.3"
react-window@^1.8.5:
version "1.8.5"
resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz#a56b39307e79979721021f5d06a67742ecca52d1"
integrity sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==
dependencies:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
react@^0.14.0: react@^0.14.0:
version "0.14.9" version "0.14.9"
resolved "https://registry.yarnpkg.com/react/-/react-0.14.9.tgz#9110a6497c49d44ba1c0edd317aec29c2e0d91d1" resolved "https://registry.yarnpkg.com/react/-/react-0.14.9.tgz#9110a6497c49d44ba1c0edd317aec29c2e0d91d1"
@ -7257,6 +7319,13 @@ remark-mdx@^1.6.7:
remark-parse "8.0.2" remark-parse "8.0.2"
unified "9.0.0" unified "9.0.0"
remark-normalize-headings@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/remark-normalize-headings/-/remark-normalize-headings-2.0.0.tgz#2e7492f4935346dc5eca96ffdb5f588196233169"
integrity sha512-nXeBQ7luKRWDcuUTnc0ffUYZ7+cO01FomSjnzpGTGCi7rcD9Wbis+z3adbNyqbYtsC+/+o1S+GLHTwh9crnZxA==
dependencies:
mdast-normalize-headings "^2.0.0"
remark-parse@8.0.2, remark-parse@^8.0.0: remark-parse@8.0.2, remark-parse@^8.0.0:
version "8.0.2" version "8.0.2"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.2.tgz#5999bc0b9c2e3edc038800a64ff103d0890b318b" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.2.tgz#5999bc0b9c2e3edc038800a64ff103d0890b318b"
@ -7279,6 +7348,27 @@ remark-parse@8.0.2, remark-parse@^8.0.0:
vfile-location "^3.0.0" vfile-location "^3.0.0"
xtend "^4.0.1" xtend "^4.0.1"
remark-parse@^7.0.0:
version "7.0.2"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf"
integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==
dependencies:
collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
is-whitespace-character "^1.0.0"
is-word-character "^1.0.0"
markdown-escapes "^1.0.0"
parse-entities "^1.1.0"
repeat-string "^1.5.4"
state-toggle "^1.0.0"
trim "0.0.1"
trim-trailing-lines "^1.0.0"
unherit "^1.0.4"
unist-util-remove-position "^1.0.0"
vfile-location "^2.0.0"
xtend "^4.0.1"
remark-slug@6.0.0: remark-slug@6.0.0:
version "6.0.0" version "6.0.0"
resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.0.0.tgz#2b54a14a7b50407a5e462ac2f376022cce263e2c" resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.0.0.tgz#2b54a14a7b50407a5e462ac2f376022cce263e2c"
@ -7288,13 +7378,33 @@ remark-slug@6.0.0:
mdast-util-to-string "^1.0.0" mdast-util-to-string "^1.0.0"
unist-util-visit "^2.0.0" unist-util-visit "^2.0.0"
remark-squeeze-paragraphs@4.0.0: remark-squeeze-paragraphs@4.0.0, remark-squeeze-paragraphs@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead"
integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==
dependencies: dependencies:
mdast-squeeze-paragraphs "^4.0.0" mdast-squeeze-paragraphs "^4.0.0"
remark-stringify@^7.0.0:
version "7.0.4"
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-7.0.4.tgz#3de1e3f93853288d3407da1cd44f2212321dd548"
integrity sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==
dependencies:
ccount "^1.0.0"
is-alphanumeric "^1.0.0"
is-decimal "^1.0.0"
is-whitespace-character "^1.0.0"
longest-streak "^2.0.1"
markdown-escapes "^1.0.0"
markdown-table "^1.1.0"
mdast-util-compact "^1.0.0"
parse-entities "^1.0.2"
repeat-string "^1.5.4"
state-toggle "^1.0.0"
stringify-entities "^2.0.0"
unherit "^1.0.4"
xtend "^4.0.1"
remark-stringify@^8.0.0: remark-stringify@^8.0.0:
version "8.1.0" version "8.1.0"
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.0.tgz#1e555f4402e445c364fb23d12fc5f5e0337ec8b7" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.0.tgz#1e555f4402e445c364fb23d12fc5f5e0337ec8b7"
@ -7323,6 +7433,15 @@ remark-unwrap-images@2.0.0:
hast-util-whitespace "^1.0.0" hast-util-whitespace "^1.0.0"
unist-util-visit "^2.0.0" unist-util-visit "^2.0.0"
remark@^11.0.2:
version "11.0.2"
resolved "https://registry.yarnpkg.com/remark/-/remark-11.0.2.tgz#12b90ea100ac3362b1976fa87a6e4e0ab5968202"
integrity sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==
dependencies:
remark-parse "^7.0.0"
remark-stringify "^7.0.0"
unified "^8.2.0"
remark@^12.0.0: remark@^12.0.0:
version "12.0.0" version "12.0.0"
resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.0.tgz#d1c145c07341c9232f93b2f8539d56da15a2548c" resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.0.tgz#d1c145c07341c9232f93b2f8539d56da15a2548c"
@ -7950,6 +8069,17 @@ string_decoder@~1.1.1:
dependencies: dependencies:
safe-buffer "~5.1.0" safe-buffer "~5.1.0"
stringify-entities@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-2.0.0.tgz#fa7ca6614b355fb6c28448140a20c4ede7462827"
integrity sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==
dependencies:
character-entities-html4 "^1.0.0"
character-entities-legacy "^1.0.0"
is-alphanumerical "^1.0.0"
is-decimal "^1.0.2"
is-hexadecimal "^1.0.0"
stringify-entities@^3.0.0: stringify-entities@^3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0" resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0"
@ -8244,6 +8374,14 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2" regex-not "^1.0.2"
safe-regex "^1.1.0" safe-regex "^1.1.0"
to-vfile@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.1.0.tgz#5f7a3f65813c2c4e34ee1f7643a5646344627699"
integrity sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==
dependencies:
is-buffer "^2.0.0"
vfile "^4.0.0"
toidentifier@1.0.0: toidentifier@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
@ -8447,6 +8585,17 @@ unified@9.0.0, unified@^9.0.0:
trough "^1.0.0" trough "^1.0.0"
vfile "^4.0.0" vfile "^4.0.0"
unified@^8.2.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1"
integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==
dependencies:
bail "^1.0.0"
extend "^3.0.0"
is-plain-obj "^2.0.0"
trough "^1.0.0"
vfile "^4.0.0"
union-value@^1.0.0: union-value@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@ -8486,6 +8635,11 @@ unist-builder@2.0.3, unist-builder@^2.0.0:
resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436"
integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==
unist-util-flatmap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unist-util-flatmap/-/unist-util-flatmap-1.0.0.tgz#f914ed6b36ff040afce938d848f379f88b94b448"
integrity sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ==
unist-util-generated@^1.0.0: unist-util-generated@^1.0.0:
version "1.1.5" version "1.1.5"
resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42"
@ -8501,11 +8655,26 @@ unist-util-is@^4.0.0, unist-util-is@^4.0.2:
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de"
integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==
unist-util-map@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unist-util-map/-/unist-util-map-2.0.1.tgz#c3fca064486d3937c4dad8b39c64974faae7c7c4"
integrity sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==
dependencies:
"@types/mdast" "^3.0.0"
object-assign "^4.0.0"
unist-util-position@^3.0.0: unist-util-position@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47"
integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==
unist-util-remove-position@^1.0.0:
version "1.1.4"
resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020"
integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==
dependencies:
unist-util-visit "^1.1.0"
unist-util-remove-position@^2.0.0: unist-util-remove-position@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc"
@ -8527,6 +8696,13 @@ unist-util-stringify-position@^2.0.0:
dependencies: dependencies:
"@types/unist" "^2.0.2" "@types/unist" "^2.0.2"
unist-util-visit-parents@^2.0.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9"
integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==
dependencies:
unist-util-is "^3.0.0"
unist-util-visit-parents@^3.0.0: unist-util-visit-parents@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz#4dd262fb9dcfe44f297d53e882fc6ff3421173d5" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz#4dd262fb9dcfe44f297d53e882fc6ff3421173d5"
@ -8544,6 +8720,13 @@ unist-util-visit@2.0.2:
unist-util-is "^4.0.0" unist-util-is "^4.0.0"
unist-util-visit-parents "^3.0.0" unist-util-visit-parents "^3.0.0"
unist-util-visit@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3"
integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==
dependencies:
unist-util-visit-parents "^2.0.0"
unist-util-visit@^2.0.0, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3: unist-util-visit@^2.0.0, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c"
@ -8707,6 +8890,11 @@ verror@1.10.0:
core-util-is "1.0.2" core-util-is "1.0.2"
extsprintf "^1.2.0" extsprintf "^1.2.0"
vfile-location@^2.0.0:
version "2.0.6"
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e"
integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==
vfile-location@^3.0.0: vfile-location@^3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3"

Loading…
Cancel
Save