@geekity/cms 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/components/button.njk +3 -2
- package/admin/components/dropdown.njk +3 -3
- package/admin/pages/dashboard/home.njk +69 -11
- package/admin/src/admin.css +1 -0
- package/admin/static/admin.css +24 -1
- package/admin/static/dashboard.js +109 -0
- package/dist/admin/dashboard.d.ts +13 -0
- package/dist/admin/dashboard.d.ts.map +1 -0
- package/dist/admin/dashboard.js +137 -0
- package/dist/admin/dashboard.js.map +1 -0
- package/dist/admin/formatting.d.ts +0 -2
- package/dist/admin/formatting.d.ts.map +1 -1
- package/dist/admin/formatting.js +0 -8
- package/dist/admin/formatting.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +5 -45
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/templates.js +1 -1
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/widget-fediverse.js +1 -1
- package/dist/admin/widget-posting.d.ts.map +1 -1
- package/dist/admin/widget-posting.js +4 -75
- package/dist/admin/widget-posting.js.map +1 -1
- package/dist/admin/widget-scheduled.js +1 -1
- package/dist/admin/widget-top-posts.js +1 -1
- package/dist/admin/widgets.d.ts +2 -0
- package/dist/admin/widgets.d.ts.map +1 -1
- package/dist/admin/widgets.js +4 -0
- package/dist/admin/widgets.js.map +1 -1
- package/dist/cms/server-error.d.ts.map +1 -1
- package/dist/cms/server-error.js +6 -6
- package/dist/cms/server-error.js.map +1 -1
- package/dist/{micropub/content.d.ts → content/html-to-markdown.d.ts} +1 -1
- package/dist/content/html-to-markdown.d.ts.map +1 -0
- package/dist/{micropub/content.js → content/html-to-markdown.js} +11 -9
- package/dist/content/html-to-markdown.js.map +1 -0
- package/dist/content/review.d.ts +14 -0
- package/dist/content/review.d.ts.map +1 -1
- package/dist/content/review.js +31 -8
- package/dist/content/review.js.map +1 -1
- package/dist/maintenance.d.ts +1 -0
- package/dist/maintenance.d.ts.map +1 -1
- package/dist/maintenance.js +1 -1
- package/dist/maintenance.js.map +1 -1
- package/dist/micropub/create.js +1 -1
- package/dist/micropub/create.js.map +1 -1
- package/dist/site/dashboard-layout.d.ts +48 -0
- package/dist/site/dashboard-layout.d.ts.map +1 -0
- package/dist/site/dashboard-layout.js +95 -0
- package/dist/site/dashboard-layout.js.map +1 -0
- package/dist/site/users.d.ts +15 -0
- package/dist/site/users.d.ts.map +1 -1
- package/dist/site/users.js +12 -0
- package/dist/site/users.js.map +1 -1
- package/dist/util/file-size.d.ts +3 -0
- package/dist/util/file-size.d.ts.map +1 -0
- package/dist/util/file-size.js +9 -0
- package/dist/util/file-size.js.map +1 -0
- package/dist/web/archive.d.ts +2 -0
- package/dist/web/archive.d.ts.map +1 -1
- package/dist/web/archive.js +6 -1
- package/dist/web/archive.js.map +1 -1
- package/dist/web/asset-routes.d.ts.map +1 -1
- package/dist/web/asset-routes.js +2 -1
- package/dist/web/asset-routes.js.map +1 -1
- package/dist/web/conversation.d.ts +15 -0
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +10 -3
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +11 -13
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/embed.d.ts.map +1 -1
- package/dist/web/embed.js +2 -1
- package/dist/web/embed.js.map +1 -1
- package/dist/web/federation-routes.d.ts.map +1 -1
- package/dist/web/federation-routes.js +2 -1
- package/dist/web/federation-routes.js.map +1 -1
- package/dist/web/feed-routes.d.ts +4 -2
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +22 -4
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +12 -14
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/maintenance.d.ts.map +1 -1
- package/dist/web/maintenance.js +7 -6
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/markdown-conversation.d.ts +72 -0
- package/dist/web/markdown-conversation.d.ts.map +1 -0
- package/dist/web/markdown-conversation.js +63 -0
- package/dist/web/markdown-conversation.js.map +1 -0
- package/dist/web/markdown-page.d.ts +44 -0
- package/dist/web/markdown-page.d.ts.map +1 -1
- package/dist/web/markdown-page.js +5 -2
- package/dist/web/markdown-page.js.map +1 -1
- package/dist/web/markdown-representation.d.ts +31 -1
- package/dist/web/markdown-representation.d.ts.map +1 -1
- package/dist/web/markdown-representation.js +163 -10
- package/dist/web/markdown-representation.js.map +1 -1
- package/dist/web/negotiate.d.ts +3 -2
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +7 -3
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/render.d.ts +46 -1
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +179 -11
- package/dist/web/render.js.map +1 -1
- package/dist/web/request.d.ts +0 -3
- package/dist/web/request.d.ts.map +1 -1
- package/dist/web/request.js +0 -7
- package/dist/web/request.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +10 -7
- package/dist/web/routes.js.map +1 -1
- package/dist/web/search.d.ts +6 -3
- package/dist/web/search.d.ts.map +1 -1
- package/dist/web/search.js +20 -5
- package/dist/web/search.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +2 -1
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/status-pages.d.ts +19 -0
- package/dist/web/status-pages.d.ts.map +1 -0
- package/dist/web/status-pages.js +44 -0
- package/dist/web/status-pages.js.map +1 -0
- package/package.json +1 -1
- package/themes/default/layouts/404.md.njk +8 -0
- package/themes/default/layouts/410.md.njk +7 -0
- package/themes/default/layouts/500.md.njk +8 -0
- package/themes/default/layouts/503.md.njk +9 -0
- package/themes/default/partials/markdown-footer.md.njk +136 -3
- package/themes/default/partials/markdown-header.md.njk +102 -0
- package/themes/default/partials/markdown-reply.md.njk +31 -0
- package/dist/micropub/content.d.ts.map +0 -1
- package/dist/micropub/content.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { archiveOf } from './listing-subject.js';
|
|
2
|
-
import { listingMarkdown } from './markdown-representation.js';
|
|
3
|
-
import { documentJson, latestModified, LISTING_REPRESENTATIONS,
|
|
2
|
+
import { listingMarkdown, searchMarkdown } from './markdown-representation.js';
|
|
3
|
+
import { documentJson, latestModified, LISTING_REPRESENTATIONS, notAcceptableResponse, representationEtag, representationResponse, } from './negotiate.js';
|
|
4
4
|
import { offsetForPage, paginate } from './pagination.js';
|
|
5
|
-
import { conditionalHeaders, drawnForSomebody,
|
|
5
|
+
import { conditionalHeaders, drawnForSomebody, queryFeedFormat, selectFromAccept, wantsFullDocuments, } from './request.js';
|
|
6
|
+
import { notFound } from './status-pages.js';
|
|
6
7
|
import { searchHref, searchJson, searchPageIndex, searchQuery, SEARCH_PAGE_PARAM, SEARCH_QUERY_PARAM, } from './search.js';
|
|
7
8
|
import { siteView } from './site-view.js';
|
|
8
9
|
import { NO_PAGE_TAGS } from '../plugins/page-tags.js';
|
|
@@ -36,7 +37,6 @@ function pagedResponse(c, page, options) {
|
|
|
36
37
|
representation,
|
|
37
38
|
href,
|
|
38
39
|
available: options.available,
|
|
39
|
-
...(options.links === undefined ? {} : { links: options.links }),
|
|
40
40
|
...(drawnForSomebody(c, representation) ? { private: true } : {}),
|
|
41
41
|
...(sendsValidators
|
|
42
42
|
? {
|
|
@@ -124,11 +124,17 @@ export function search(c, representation) {
|
|
|
124
124
|
pageNumber,
|
|
125
125
|
hrefForPage: (index) => searchHref(query, index),
|
|
126
126
|
representation,
|
|
127
|
-
available:
|
|
127
|
+
available: LISTING_REPRESENTATIONS,
|
|
128
128
|
});
|
|
129
129
|
if (page instanceof Response)
|
|
130
130
|
return page;
|
|
131
131
|
const hits = store.search(query, page.paging);
|
|
132
|
+
const documents = hits.map((hit) => hit.document);
|
|
133
|
+
const available = LISTING_REPRESENTATIONS;
|
|
134
|
+
if (page.representation === 'markdown' || page.representation === 'text') {
|
|
135
|
+
const body = searchMarkdown(c, { ...page, query, hits });
|
|
136
|
+
return pagedResponse(c, page, { body, documents, available, fingerprint: body });
|
|
137
|
+
}
|
|
132
138
|
const full = wantsFullDocuments(c);
|
|
133
139
|
const body = page.representation === 'json'
|
|
134
140
|
? searchJson({
|
|
@@ -139,14 +145,6 @@ export function search(c, representation) {
|
|
|
139
145
|
body: full,
|
|
140
146
|
})
|
|
141
147
|
: renderer.renderSearch({ query, url: page.href, hits, pagination: page.pagination });
|
|
142
|
-
return pagedResponse(c, page, {
|
|
143
|
-
body,
|
|
144
|
-
documents: hits.map((hit) => hit.document),
|
|
145
|
-
// The alternates are spelled here rather than by the negotiator, because
|
|
146
|
-
// they carry the query and a listing's never have one to carry.
|
|
147
|
-
available: [page.representation],
|
|
148
|
-
links: SEARCH_REPRESENTATIONS.filter((other) => other !== page.representation).map((other) => `<${searchHref(query, pageNumber, other)}>; rel="alternate"; type="${MEDIA_TYPES[other]}"`),
|
|
149
|
-
full,
|
|
150
|
-
});
|
|
148
|
+
return pagedResponse(c, page, { body, documents, available, full });
|
|
151
149
|
}
|
|
152
150
|
//# sourceMappingURL=listing-pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-pages.js","sourceRoot":"","sources":["../../src/web/listing-pages.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"listing-pages.js","sourceRoot":"","sources":["../../src/web/listing-pages.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAUvD,SAAS,QAAQ,CACf,CAAsB,EACtB,OAMC;IAED,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC5D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IACrF,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxF,OAAO;QACL,UAAU;QACV,IAAI;QACJ,cAAc;QACd,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,CAAsB,EACtB,IAAc,EACd,OAMC;IAED,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,eAAe,GAAG,cAAc,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IACzE,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE;YACrE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO;YACtB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ;SACzB,CAAC,CAAC;IAEL,OAAO,sBAAsB,CAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,cAAc;QACd,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,eAAe;YACjB,CAAC,CAAC;gBACE,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC;gBACrD,YAAY,EAAE,cAAc,CAAC,SAAS,CAAC;aACxC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,UAAsB,EACtB,SAA8B,EAC9B,IAAa,EACb,EAAE,OAAO,EAAE,QAAQ,EAAiD;IAEpE,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1E,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC/F,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACzB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,OAAO,CACrB,CAAsB,EACtB,OAAuB,EACvB,cAAc,GAA+B,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,CAAC;IAEzF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,6EAA6E;IAC7E,kEAAkE;IAClE,+DAA+D;IAC/D,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,cAAc;QACd,SAAS,EAAE,uBAAuB;KACnC,CAAC,CAAC;IACH,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAE1C,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GACR,IAAI,CAAC,cAAc,KAAK,MAAM;QAC5B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YACrB,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC,CAAC;IAET,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CACpB,CAAsB,EACtB,cAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE;QACvB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAC/B,UAAU;QACV,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAChD,cAAc;QACd,SAAS,EAAE,uBAAuB;KACnC,CAAC,CAAC;IACH,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAE1C,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GACR,IAAI,CAAC,cAAc,KAAK,MAAM;QAC5B,CAAC,CAAC,UAAU,CAAC;YACT,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,IAAI;SACX,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAE1F,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAIvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAIvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAgE3C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAYzD,CAAC"}
|
package/dist/web/maintenance.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ADMIN_PREFIX } from '../site/admin-paths.js';
|
|
2
2
|
import { signedInAccount } from './signed-in.js';
|
|
3
3
|
import { THEME_ASSET_PREFIX } from '../theme/assets.js';
|
|
4
|
-
import { representationOf,
|
|
4
|
+
import { representationOf, PRIVATE_CACHE_CONTROL } from './negotiate.js';
|
|
5
5
|
import { HEALTH_PATH } from './health.js';
|
|
6
6
|
import { requestPath } from './request.js';
|
|
7
|
+
import { statusMarkdownResponse } from './status-pages.js';
|
|
7
8
|
import { CHANGE_PASSWORD_WELL_KNOWN_PATH, SECURITY_TXT_PATH } from './well-known.js';
|
|
8
9
|
/**
|
|
9
10
|
* What a client is told to wait when the operator named no return time: long
|
|
@@ -26,7 +27,7 @@ const STATIC_PAGE = `<!doctype html>
|
|
|
26
27
|
</body>
|
|
27
28
|
</html>
|
|
28
29
|
`;
|
|
29
|
-
const
|
|
30
|
+
const FALLBACK_MARKDOWN = '# Down for maintenance\n\nThis site is down for maintenance and will be back shortly. Please try again later.\n';
|
|
30
31
|
const JSON_BODY = `${JSON.stringify({
|
|
31
32
|
error: 'maintenance',
|
|
32
33
|
message: 'This site is down for maintenance and will be back shortly. Try again later.',
|
|
@@ -89,10 +90,10 @@ function unavailable(c, pathname, until) {
|
|
|
89
90
|
});
|
|
90
91
|
case 'markdown':
|
|
91
92
|
case 'text':
|
|
92
|
-
return c
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
return statusMarkdownResponse(c, representation, 'maintenance', 503, {
|
|
94
|
+
until: upcoming,
|
|
95
|
+
fallback: FALLBACK_MARKDOWN,
|
|
96
|
+
headers,
|
|
96
97
|
});
|
|
97
98
|
case 'html':
|
|
98
99
|
return c.html(page(c, pathname, upcoming), 503, headers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { CommentThread, Conversation, InteractionCounts, InteractionSource } from '../comments/conversation.ts';
|
|
2
|
+
import type { RsvpValue } from '../content/rsvp.ts';
|
|
3
|
+
/** Somebody in a facepile, or a reply's author: their name, and where it links. */
|
|
4
|
+
export interface MarkdownPerson {
|
|
5
|
+
readonly label: string;
|
|
6
|
+
readonly url?: string | undefined;
|
|
7
|
+
}
|
|
8
|
+
/** A reply as the Markdown footer threads it, or the placeholder for a hidden one. */
|
|
9
|
+
export type MarkdownReply = {
|
|
10
|
+
readonly key: string;
|
|
11
|
+
readonly source: InteractionSource;
|
|
12
|
+
readonly author: MarkdownPerson;
|
|
13
|
+
readonly url?: string | undefined;
|
|
14
|
+
readonly published: Date;
|
|
15
|
+
readonly rsvp?: {
|
|
16
|
+
readonly value: RsvpValue;
|
|
17
|
+
readonly label: string;
|
|
18
|
+
} | undefined;
|
|
19
|
+
/** Its words as Markdown, empty when it has none. */
|
|
20
|
+
readonly text: string;
|
|
21
|
+
readonly replies: readonly MarkdownReply[];
|
|
22
|
+
} | {
|
|
23
|
+
readonly key: string;
|
|
24
|
+
readonly withheld: true;
|
|
25
|
+
readonly replies: readonly MarkdownReply[];
|
|
26
|
+
};
|
|
27
|
+
/** {@link Conversation} with HTML turned into Markdown and each face into a link. */
|
|
28
|
+
export interface MarkdownConversation {
|
|
29
|
+
readonly replies: readonly MarkdownReply[];
|
|
30
|
+
readonly likes: readonly MarkdownPerson[];
|
|
31
|
+
readonly boosts: readonly MarkdownPerson[];
|
|
32
|
+
readonly mentions: readonly MarkdownPerson[];
|
|
33
|
+
readonly rsvps: readonly {
|
|
34
|
+
readonly value: RsvpValue;
|
|
35
|
+
readonly label: string;
|
|
36
|
+
readonly people: readonly MarkdownPerson[];
|
|
37
|
+
}[];
|
|
38
|
+
readonly counts: InteractionCounts;
|
|
39
|
+
}
|
|
40
|
+
/** A reply a reader can see, as {@link MarkdownReply} has it. */
|
|
41
|
+
export type MarkdownSaid = Exclude<MarkdownReply, {
|
|
42
|
+
readonly withheld: true;
|
|
43
|
+
}>;
|
|
44
|
+
/** A native comment's page (TASK-318) as `layouts/comment.njk` draws it, for the Markdown partials. */
|
|
45
|
+
export interface MarkdownCommentThread {
|
|
46
|
+
readonly post: {
|
|
47
|
+
readonly label: string;
|
|
48
|
+
readonly url: string;
|
|
49
|
+
readonly author?: MarkdownPerson | undefined;
|
|
50
|
+
/** Its date as the front matter writes it, which the `date` filter reads. */
|
|
51
|
+
readonly date?: string | undefined;
|
|
52
|
+
/** Its summary as plain text, empty when it has none. */
|
|
53
|
+
readonly summary: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* What the comment answers, from the top-level comment down to its parent,
|
|
57
|
+
* each without its replies. `null` is one a reader may not see.
|
|
58
|
+
*/
|
|
59
|
+
readonly ancestors: readonly (MarkdownSaid | null)[];
|
|
60
|
+
/** The comment, with its replies threaded under it. */
|
|
61
|
+
readonly comment: MarkdownSaid;
|
|
62
|
+
readonly onPostUrl: string;
|
|
63
|
+
}
|
|
64
|
+
/** A comment's thread with HTML turned into Markdown; `post` is what the code knows of the post. */
|
|
65
|
+
export declare function markdownCommentThread(thread: CommentThread, post: MarkdownCommentThread['post'], onPostUrl: string): MarkdownCommentThread;
|
|
66
|
+
/**
|
|
67
|
+
* The conversation `conversation.njk` draws, for the Markdown partials. A
|
|
68
|
+
* like or a boost links to its person and a mention to its page, as the
|
|
69
|
+
* facepiles do.
|
|
70
|
+
*/
|
|
71
|
+
export declare function markdownConversation(conversation: Conversation): MarkdownConversation;
|
|
72
|
+
//# sourceMappingURL=markdown-conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-conversation.d.ts","sourceRoot":"","sources":["../../src/web/markdown-conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { isWithheld } from '../comments/conversation.js';
|
|
2
|
+
import { markdownFromHtml } from '../content/html-to-markdown.js';
|
|
3
|
+
import { parseHtml, textOf } from '../util/html-tree.js';
|
|
4
|
+
import { escapeMarkdown } from './markdown-page.js';
|
|
5
|
+
/** A comment's thread with HTML turned into Markdown; `post` is what the code knows of the post. */
|
|
6
|
+
export function markdownCommentThread(thread, post, onPostUrl) {
|
|
7
|
+
return {
|
|
8
|
+
post,
|
|
9
|
+
ancestors: thread.ancestors.map((step) => step === null ? null : markdownSaid({ ...step, replies: [] })),
|
|
10
|
+
comment: markdownSaid(thread.comment),
|
|
11
|
+
onPostUrl,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The conversation `conversation.njk` draws, for the Markdown partials. A
|
|
16
|
+
* like or a boost links to its person and a mention to its page, as the
|
|
17
|
+
* facepiles do.
|
|
18
|
+
*/
|
|
19
|
+
export function markdownConversation(conversation) {
|
|
20
|
+
const person = (item) => ({
|
|
21
|
+
label: item.author.name,
|
|
22
|
+
url: item.author.url ?? item.url ?? undefined,
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
replies: conversation.replies.map(markdownReply),
|
|
26
|
+
likes: conversation.likes.map(person),
|
|
27
|
+
boosts: conversation.boosts.map(person),
|
|
28
|
+
mentions: conversation.mentions.map((item) => ({
|
|
29
|
+
label: item.author.name,
|
|
30
|
+
url: item.url ?? item.author.url ?? undefined,
|
|
31
|
+
})),
|
|
32
|
+
rsvps: conversation.rsvps.map(({ value, label, people }) => ({
|
|
33
|
+
value,
|
|
34
|
+
label,
|
|
35
|
+
people: people.map(person),
|
|
36
|
+
})),
|
|
37
|
+
counts: conversation.counts,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function markdownReply(reply) {
|
|
41
|
+
if (isWithheld(reply)) {
|
|
42
|
+
return { key: reply.key, withheld: true, replies: reply.replies.map(markdownReply) };
|
|
43
|
+
}
|
|
44
|
+
return markdownSaid(reply);
|
|
45
|
+
}
|
|
46
|
+
function markdownSaid(reply) {
|
|
47
|
+
return {
|
|
48
|
+
key: reply.key,
|
|
49
|
+
source: reply.source,
|
|
50
|
+
author: { label: reply.author.name, url: reply.author.url ?? undefined },
|
|
51
|
+
url: reply.url ?? undefined,
|
|
52
|
+
published: reply.published,
|
|
53
|
+
...(reply.rsvp === undefined ? {} : { rsvp: reply.rsvp }),
|
|
54
|
+
text: markdownText(reply.content),
|
|
55
|
+
replies: reply.replies.map(markdownReply),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function markdownText(html) {
|
|
59
|
+
if (html.trim() === '')
|
|
60
|
+
return '';
|
|
61
|
+
return markdownFromHtml(html) ?? escapeMarkdown(textOf(parseHtml(html)));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=markdown-conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-conversation.js","sourceRoot":"","sources":["../../src/web/markdown-conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AuthorContext } from '../site/authors.ts';
|
|
2
|
+
import type { MarkdownCommentThread } from './markdown-conversation.ts';
|
|
2
3
|
/**
|
|
3
4
|
* The Markdown representation of a page: front matter, the theme's header, the
|
|
4
5
|
* page's own Markdown and the theme's footer.
|
|
@@ -26,10 +27,17 @@ export interface MarkdownBio {
|
|
|
26
27
|
readonly note?: string | undefined;
|
|
27
28
|
readonly links: readonly MarkdownLink[];
|
|
28
29
|
}
|
|
30
|
+
/** One feed a page advertises: its title, its URL, and which format it is in. */
|
|
31
|
+
export interface MarkdownFeed extends MarkdownLink {
|
|
32
|
+
readonly format: 'RSS' | 'Atom' | 'JSON Feed';
|
|
33
|
+
/** Its media type, as the HTML head's `<link type>` says it. */
|
|
34
|
+
readonly type: string;
|
|
35
|
+
}
|
|
29
36
|
/** What the header and footer partials are given beside `site` and `menus`. */
|
|
30
37
|
export interface MarkdownChrome {
|
|
31
38
|
/** The path the page is served at, which marks the current menu item. */
|
|
32
39
|
readonly url: string;
|
|
40
|
+
readonly type: 'post' | 'page' | 'listing' | 'comment' | 'status';
|
|
33
41
|
/** The heading the header writes, absent when the body opens with its own. */
|
|
34
42
|
readonly title?: string | undefined;
|
|
35
43
|
readonly previous?: MarkdownLink | undefined;
|
|
@@ -38,6 +46,35 @@ export interface MarkdownChrome {
|
|
|
38
46
|
readonly byline?: MarkdownLink | undefined;
|
|
39
47
|
/** On an author archive, and on a solo author site's homepage. */
|
|
40
48
|
readonly bio?: MarkdownBio | undefined;
|
|
49
|
+
/** The feeds the HTML head advertises, in its order. */
|
|
50
|
+
readonly feeds: readonly MarkdownFeed[];
|
|
51
|
+
/** On a comment's own page: the comment and its place in the thread. */
|
|
52
|
+
readonly thread?: MarkdownCommentThread | undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What a post answers or cites, as its HTML citation line names it: a reply's
|
|
56
|
+
* target, an RSVP's event, or what it likes, reposts or bookmarks.
|
|
57
|
+
*/
|
|
58
|
+
export interface MarkdownCite {
|
|
59
|
+
/** `In reply to`, an RSVP's phrase such as `Going to`, `Liked`, `Reposted` or `Bookmarked`. */
|
|
60
|
+
readonly verb: string;
|
|
61
|
+
/** The page cited: the original when the target is a silo copy of one. */
|
|
62
|
+
readonly url: string;
|
|
63
|
+
/** Its title, or what the HTML calls it without one, such as `a page on example.com`. */
|
|
64
|
+
readonly name: string;
|
|
65
|
+
/** Who wrote it, absent when the name already ends with them. */
|
|
66
|
+
readonly author?: string | undefined;
|
|
67
|
+
/** The site it is on, when it names no author. */
|
|
68
|
+
readonly site?: string | undefined;
|
|
69
|
+
/** An event's start, the instant to print, and the zone to print it in when it is not the site's. */
|
|
70
|
+
readonly startDate?: Date | undefined;
|
|
71
|
+
readonly startZone?: string | undefined;
|
|
72
|
+
/** When it was published, on a target that is no event. */
|
|
73
|
+
readonly published?: Date | undefined;
|
|
74
|
+
/** Where an event takes place. */
|
|
75
|
+
readonly location?: string | undefined;
|
|
76
|
+
/** The silo copy the post also answers, when `url` is the original. */
|
|
77
|
+
readonly copy?: string | undefined;
|
|
41
78
|
}
|
|
42
79
|
/** One post of a dated list. */
|
|
43
80
|
export interface MarkdownEntry extends MarkdownLink {
|
|
@@ -45,6 +82,11 @@ export interface MarkdownEntry extends MarkdownLink {
|
|
|
45
82
|
readonly date?: string | undefined;
|
|
46
83
|
readonly description?: string | undefined;
|
|
47
84
|
}
|
|
85
|
+
/** One month of an archive page's Markdown: its heading and its posts, newest first. */
|
|
86
|
+
export interface MarkdownArchiveMonth {
|
|
87
|
+
readonly month: string;
|
|
88
|
+
readonly posts: readonly MarkdownEntry[];
|
|
89
|
+
}
|
|
48
90
|
/** A canonical URL as the representation writes it: its `.md` when it has one. */
|
|
49
91
|
export type MarkdownUrl = (url: string) => string;
|
|
50
92
|
/** Where every page's Markdown says home is. */
|
|
@@ -73,4 +115,6 @@ export declare function linkList(links: readonly MarkdownLink[], markdownUrl: Ma
|
|
|
73
115
|
*/
|
|
74
116
|
export declare function escapeMarkdown(text: string): string;
|
|
75
117
|
export declare function oneLine(text: string): string;
|
|
118
|
+
/** Text with the characters that would open emphasis, code, a link or raw HTML escaped. */
|
|
119
|
+
export declare function escapeInline(text: string): string;
|
|
76
120
|
//# sourceMappingURL=markdown-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-page.d.ts","sourceRoot":"","sources":["../../src/web/markdown-page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-page.d.ts","sourceRoot":"","sources":["../../src/web/markdown-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,12 +68,15 @@ export function linkList(links, markdownUrl) {
|
|
|
68
68
|
* line start that would open a block escaped too.
|
|
69
69
|
*/
|
|
70
70
|
export function escapeMarkdown(text) {
|
|
71
|
-
return oneLine(text)
|
|
72
|
-
.replace(/[\\`*_[\]<>~|]/g, (character) => `\\${character}`)
|
|
71
|
+
return escapeInline(oneLine(text))
|
|
73
72
|
.replace(/^[#+-]/, '\\$&')
|
|
74
73
|
.replace(/^(\d+)([.)])/, '$1\\$2');
|
|
75
74
|
}
|
|
76
75
|
export function oneLine(text) {
|
|
77
76
|
return text.replace(/\s+/g, ' ').trim();
|
|
78
77
|
}
|
|
78
|
+
/** Text with the characters that would open emphasis, code, a link or raw HTML escaped. */
|
|
79
|
+
export function escapeInline(text) {
|
|
80
|
+
return text.replace(/[\\`*_[\]<>~|]/g, (character) => `\\${character}`);
|
|
81
|
+
}
|
|
79
82
|
//# sourceMappingURL=markdown-page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-page.js","sourceRoot":"","sources":["../../src/web/markdown-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-page.js","sourceRoot":"","sources":["../../src/web/markdown-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,45 @@
|
|
|
1
1
|
import type { Context } from 'hono';
|
|
2
|
+
import type { CommentThread } from '../comments/conversation.ts';
|
|
2
3
|
import type { Document } from '../content/document.ts';
|
|
4
|
+
import type { SearchHit } from '../content/store.ts';
|
|
3
5
|
import type { GeekityEnv } from './env.ts';
|
|
4
6
|
import type { Archive } from './listing-subject.ts';
|
|
5
7
|
import type { MarkdownUrl } from './markdown-page.ts';
|
|
6
8
|
import type { Pagination } from './pagination.ts';
|
|
7
|
-
|
|
9
|
+
import type { StatusPageName } from './render.ts';
|
|
10
|
+
/**
|
|
11
|
+
* A document's Markdown at `url`, which is its permalink everywhere but the
|
|
12
|
+
* front page. The front matter says where it is served; everything the page
|
|
13
|
+
* lists about the document, such as its comments feed, is the stored one's.
|
|
14
|
+
*/
|
|
15
|
+
export declare function documentMarkdown(c: Context<GeekityEnv>, document: Document, url: string): string;
|
|
8
16
|
export declare function listingMarkdown(c: Context<GeekityEnv>, archive: Archive, page: {
|
|
9
17
|
href: string;
|
|
10
18
|
title: string;
|
|
11
19
|
pagination: Pagination;
|
|
12
20
|
documents: readonly Document[];
|
|
13
21
|
}): string;
|
|
22
|
+
/**
|
|
23
|
+
* A native comment's page in Markdown: the post and the comments it answers
|
|
24
|
+
* above it, its own words as the body, and its replies below.
|
|
25
|
+
*/
|
|
26
|
+
export declare function commentMarkdown(c: Context<GeekityEnv>, found: CommentThread): string;
|
|
27
|
+
/**
|
|
28
|
+
* One page of search results in the listing's shape: what was asked and how
|
|
29
|
+
* much was found, the results with their snippets, and the pager. Every link
|
|
30
|
+
* to another page of the results keeps the query.
|
|
31
|
+
*/
|
|
32
|
+
export declare function searchMarkdown(c: Context<GeekityEnv>, page: {
|
|
33
|
+
href: string;
|
|
34
|
+
query: string;
|
|
35
|
+
pagination: Pagination;
|
|
36
|
+
hits: readonly SearchHit[];
|
|
37
|
+
}): string;
|
|
38
|
+
/**
|
|
39
|
+
* A 404, 410, 500 or 503 in Markdown: the theme's body for it between the
|
|
40
|
+
* header and footer every page has, with the maintenance page's back-by time
|
|
41
|
+
* in the front matter as well.
|
|
42
|
+
*/
|
|
43
|
+
export declare function statusMarkdown(c: Context<GeekityEnv>, page: StatusPageName, url: string, until?: Date): string;
|
|
14
44
|
export declare function markdownUrlFor(c: Context<GeekityEnv>, pageUrl: string): MarkdownUrl;
|
|
15
45
|
//# sourceMappingURL=markdown-representation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-representation.d.ts","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-representation.d.ts","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAapD,OAAO,KAAK,EAA8C,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA0ChG;AAED,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,GAC5F,MAAM,CAyCR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAqCpF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GACxF,MAAM,CA+CR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,IAAI,GACX,MAAM,CAmBR;AAsCD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAGnF"}
|