diff options
Diffstat (limited to 'vhosts/blog/nuldoc-src/pages')
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/AboutPage.tsx | 110 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/AtomPage.tsx | 26 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/HomePage.tsx | 53 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/NotFoundPage.tsx | 27 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/PostListPage.tsx | 54 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/PostPage.tsx | 66 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/SlideListPage.tsx | 42 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/SlidePage.tsx | 72 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/TagListPage.tsx | 57 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/TagPage.tsx | 43 |
10 files changed, 0 insertions, 550 deletions
diff --git a/vhosts/blog/nuldoc-src/pages/AboutPage.tsx b/vhosts/blog/nuldoc-src/pages/AboutPage.tsx deleted file mode 100644 index 3d6583a4..00000000 --- a/vhosts/blog/nuldoc-src/pages/AboutPage.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import StaticScript from "../components/StaticScript.tsx"; -import { Config } from "../config.ts"; -import { dateToString } from "../revision.ts"; -import { getPostPublishedDate } from "../generators/post.ts"; -import { SlidePage } from "../generators/slide.ts"; - -export default function AboutPage( - slides: SlidePage[], - config: Config, -) { - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription="このサイトの著者について" - metaTitle={`About|${config.blog.siteName}`} - config={config} - > - <body className="single"> - <GlobalHeader config={config} /> - <main className="main"> - <article className="post-single"> - <header className="post-header"> - <h1 className="post-title">nsfisis</h1> - <div className="my-icon"> - <div id="myIcon"> - <img src="/favicon.svg" /> - </div> - <StaticScript - fileName="/my-icon.js" - defer="true" - config={config} - /> - </div> - </header> - <div className="post-content"> - <section> - <h2>読み方</h2> - <p> - 読み方は決めていません。音にする必要があるときは本名である「いまむら」をお使いください。 - </p> - </section> - <section> - <h2>アカウント</h2> - <ul> - <li> - <a - href="https://twitter.com/nsfisis" - target="_blank" - rel="noreferrer" - > - Twitter (現 𝕏): @nsfisis - </a> - </li> - <li> - <a - href="https://github.com/nsfisis" - target="_blank" - rel="noreferrer" - > - GitHub: @nsfisis - </a> - </li> - </ul> - </section> - <section> - <h2>仕事</h2> - <ul> - <li> - {"2021-01~現在: "} - <a - href="https://www.dgcircus.com/" - target="_blank" - rel="noreferrer" - > - デジタルサーカス株式会社 - </a> - </li> - </ul> - </section> - <section> - <h2>登壇</h2> - <ul> - {Array.from(slides).sort((a, b) => { - const ta = dateToString(getPostPublishedDate(a)); - const tb = dateToString(getPostPublishedDate(b)); - if (ta > tb) return -1; - if (ta < tb) return 1; - return 0; - }).map((slide) => ( - <li> - <a href={slide.href}> - {`${ - dateToString(getPostPublishedDate(slide)) - }: ${slide.event} (${slide.talkType})`} - </a> - </li> - ))} - </ul> - </section> - </div> - </article> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/AtomPage.tsx b/vhosts/blog/nuldoc-src/pages/AtomPage.tsx deleted file mode 100644 index 21c3bfaf..00000000 --- a/vhosts/blog/nuldoc-src/pages/AtomPage.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Feed } from "../generators/atom.ts"; - -export default function AtomPage({ feed }: { feed: Feed }) { - return ( - <feed xmlns="http://www.w3.org/2005/Atom"> - <id>{feed.id}</id> - <title>{feed.title}</title> - <link rel="alternate" href={feed.linkToAlternate} /> - <link rel="self" href={feed.linkToSelf} /> - <author> - <name>{feed.author}</name> - </author> - <updated>{feed.updated}</updated> - {feed.entries.map((entry) => ( - <entry> - <id>{entry.id}</id> - <link rel="alternate" href={entry.linkToAlternate} /> - <title>{entry.title}</title> - <summary>{entry.summary}</summary> - <published>{entry.published}</published> - <updated>{entry.updated}</updated> - </entry> - ))} - </feed> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/HomePage.tsx b/vhosts/blog/nuldoc-src/pages/HomePage.tsx deleted file mode 100644 index 8850d039..00000000 --- a/vhosts/blog/nuldoc-src/pages/HomePage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import { Config } from "../config.ts"; - -export default function HomePage(config: Config) { - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription="nsfisis のブログサイト" - metaTitle={config.blog.siteName} - metaAtomFeedHref={`https://${config.blog.fqdn}/atom.xml`} - config={config} - > - <body className="single"> - <GlobalHeader config={config} /> - <main className="main"> - <article className="post-single"> - <article className="post-entry"> - <a href="/about/"> - <header className="entry-header"> - <h2>About</h2> - </header> - </a> - </article> - <article className="post-entry"> - <a href="/posts/"> - <header className="entry-header"> - <h2>Posts</h2> - </header> - </a> - </article> - <article className="post-entry"> - <a href="/slides/"> - <header className="entry-header"> - <h2>Slides</h2> - </header> - </a> - </article> - <article className="post-entry"> - <a href="/tags/"> - <header className="entry-header"> - <h2>Tags</h2> - </header> - </a> - </article> - </article> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/NotFoundPage.tsx b/vhosts/blog/nuldoc-src/pages/NotFoundPage.tsx deleted file mode 100644 index 9631fef2..00000000 --- a/vhosts/blog/nuldoc-src/pages/NotFoundPage.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import { Config } from "../config.ts"; - -export default function NotFoundPage( - config: Config, -) { - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription="リクエストされたページが見つかりません" - metaTitle={`Page Not Found|${config.blog.siteName}`} - config={config} - > - <body className="single"> - <GlobalHeader config={config} /> - <main className="main"> - <article> - <div className="not-found">404</div> - </article> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/PostListPage.tsx b/vhosts/blog/nuldoc-src/pages/PostListPage.tsx deleted file mode 100644 index 054955e6..00000000 --- a/vhosts/blog/nuldoc-src/pages/PostListPage.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import Pagination from "../components/Pagination.tsx"; -import PostPageEntry from "../components/PostPageEntry.tsx"; -import { Config } from "../config.ts"; -import { PostPage } from "../generators/post.ts"; - -export default function PostListPage( - posts: PostPage[], - config: Config, - currentPage: number, - totalPages: number, -) { - const pageTitle = "投稿一覧"; - - const pageInfoSuffix = ` (${currentPage}ページ目)`; - const metaTitle = `${pageTitle}${pageInfoSuffix}|${config.blog.siteName}`; - const metaDescription = `投稿した記事の一覧${pageInfoSuffix}`; - - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription={metaDescription} - metaTitle={metaTitle} - metaAtomFeedHref={`https://${config.blog.fqdn}/posts/atom.xml`} - config={config} - > - <body className="list"> - <GlobalHeader config={config} /> - <main className="main"> - <header className="page-header"> - <h1>{pageTitle}{pageInfoSuffix}</h1> - </header> - - <Pagination - currentPage={currentPage} - totalPages={totalPages} - basePath="/posts/" - /> - - {posts.map((post) => <PostPageEntry post={post} key={post.uuid} />)} - - <Pagination - currentPage={currentPage} - totalPages={totalPages} - basePath="/posts/" - /> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/PostPage.tsx b/vhosts/blog/nuldoc-src/pages/PostPage.tsx deleted file mode 100644 index 97a24048..00000000 --- a/vhosts/blog/nuldoc-src/pages/PostPage.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import { Config, getTagLabel } from "../config.ts"; -import { Element } from "../dom.ts"; -import { Document } from "../djot/document.ts"; -import { dateToString } from "../revision.ts"; -import { getPostPublishedDate } from "../generators/post.ts"; - -export default function PostPage( - doc: Document, - config: Config, -) { - return ( - <PageLayout - metaCopyrightYear={getPostPublishedDate(doc).year} - metaDescription={doc.description} - metaKeywords={doc.tags.map((slug) => getTagLabel(config, slug))} - metaTitle={`${doc.title}|${config.blog.siteName}`} - requiresSyntaxHighlight - config={config} - > - <body className="single"> - <GlobalHeader config={config} /> - <main className="main"> - <article className="post-single"> - <header className="post-header"> - <h1 className="post-title">{doc.title}</h1> - {doc.tags.length !== 0 && ( - <ul className="post-tags"> - {doc.tags.map((slug) => ( - <li className="tag"> - <a href={`/tags/${slug}/`}>{getTagLabel(config, slug)}</a> - </li> - ))} - </ul> - )} - </header> - <div className="post-content"> - <section id="changelog"> - <h2> - <a href="#changelog">更新履歴</a> - </h2> - <ol> - {doc.revisions.map((rev) => ( - <li className="revision"> - <time datetime={dateToString(rev.date)}> - {dateToString(rev.date)} - </time> - {`: ${rev.remark}`} - </li> - ))} - </ol> - </section> - { - // TODO: refactor - (doc.root.children[0] as Element).children - } - </div> - </article> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/SlideListPage.tsx b/vhosts/blog/nuldoc-src/pages/SlideListPage.tsx deleted file mode 100644 index 3d87d492..00000000 --- a/vhosts/blog/nuldoc-src/pages/SlideListPage.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import SlidePageEntry from "../components/SlidePageEntry.tsx"; -import { Config } from "../config.ts"; -import { dateToString } from "../revision.ts"; -import { getPostPublishedDate } from "../generators/post.ts"; -import { SlidePage } from "../generators/slide.ts"; - -export default function SlideListPage( - slides: SlidePage[], - config: Config, -) { - const pageTitle = "スライド一覧"; - - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription="登壇したイベントで使用したスライドの一覧" - metaTitle={`${pageTitle}|${config.blog.siteName}`} - metaAtomFeedHref={`https://${config.blog.fqdn}/slides/atom.xml`} - config={config} - > - <body className="list"> - <GlobalHeader config={config} /> - <main className="main"> - <header className="page-header"> - <h1>{pageTitle}</h1> - </header> - {Array.from(slides).sort((a, b) => { - const ta = dateToString(getPostPublishedDate(a)); - const tb = dateToString(getPostPublishedDate(b)); - if (ta > tb) return -1; - if (ta < tb) return 1; - return 0; - }).map((slide) => <SlidePageEntry slide={slide} key={slide.uuid} />)} - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/SlidePage.tsx b/vhosts/blog/nuldoc-src/pages/SlidePage.tsx deleted file mode 100644 index fc11072d..00000000 --- a/vhosts/blog/nuldoc-src/pages/SlidePage.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import StaticScript from "../components/StaticScript.tsx"; -import { Config, getTagLabel } from "../config.ts"; -import { dateToString } from "../revision.ts"; -import { Slide } from "../slide/slide.ts"; -import { getPostPublishedDate } from "../generators/post.ts"; - -export default function SlidePage( - slide: Slide, - config: Config, -) { - return ( - <PageLayout - metaCopyrightYear={getPostPublishedDate(slide).year} - metaDescription={slide.title} - metaKeywords={slide.tags.map((slug) => getTagLabel(config, slug))} - metaTitle={`${slide.event} (${slide.talkType})|${config.blog.siteName}`} - requiresSyntaxHighlight - config={config} - > - <body className="single"> - <GlobalHeader config={config} /> - <main className="main"> - <article className="post-single"> - <header className="post-header"> - <h1 className="post-title">{slide.title}</h1> - {slide.tags.length !== 0 && ( - <ul className="post-tags"> - {slide.tags.map((slug) => ( - <li className="tag"> - <a href={`/tags/${slug}/`}>{getTagLabel(config, slug)}</a> - </li> - ))} - </ul> - )} - </header> - <div className="post-content"> - <section id="changelog"> - <h2> - <a href="#changelog">更新履歴</a> - </h2> - <ol> - {slide.revisions.map((rev) => ( - <li className="revision"> - <time datetime={dateToString(rev.date)}> - {dateToString(rev.date)} - </time> - {`: ${rev.remark}`} - </li> - ))} - </ol> - </section> - <canvas id="slide" data-slide-link={slide.slideLink} /> - <div> - <button id="prev" type="button">Prev</button> - <button id="next" type="button">Next</button> - </div> - <StaticScript - fileName="/slide.js" - type="module" - config={config} - /> - </div> - </article> - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/TagListPage.tsx b/vhosts/blog/nuldoc-src/pages/TagListPage.tsx deleted file mode 100644 index cdb83ea5..00000000 --- a/vhosts/blog/nuldoc-src/pages/TagListPage.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import { Config } from "../config.ts"; -import { TagPage } from "../generators/tag.ts"; - -export default function TagListPage( - tags: TagPage[], - config: Config, -) { - const pageTitle = "タグ一覧"; - - return ( - <PageLayout - metaCopyrightYear={config.blog.siteCopyrightYear} - metaDescription="タグの一覧" - metaTitle={`${pageTitle}|${config.blog.siteName}`} - config={config} - > - <body className="list"> - <GlobalHeader config={config} /> - <main className="main"> - <header className="page-header"> - <h1>{pageTitle}</h1> - </header> - {Array.from(tags).sort((a, b) => { - const ta = a.tagSlug; - const tb = b.tagSlug; - if (ta < tb) return -1; - if (ta > tb) return 1; - return 0; - }).map((tag) => ( - <article className="post-entry"> - <a href={tag.href}> - <header className="entry-header"> - <h2>{tag.tagLabel}</h2> - </header> - <footer className="entry-footer"> - {(() => { - const posts = tag.numOfPosts === 0 - ? "" - : `${tag.numOfPosts}件の記事`; - const slides = tag.numOfSlides === 0 - ? "" - : `${tag.numOfSlides}件のスライド`; - return `${posts}${posts && slides ? "、" : ""}${slides}`; - })()} - </footer> - </a> - </article> - ))} - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} diff --git a/vhosts/blog/nuldoc-src/pages/TagPage.tsx b/vhosts/blog/nuldoc-src/pages/TagPage.tsx deleted file mode 100644 index 02c484af..00000000 --- a/vhosts/blog/nuldoc-src/pages/TagPage.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; -import PageLayout from "../components/PageLayout.tsx"; -import PostPageEntry from "../components/PostPageEntry.tsx"; -import SlidePageEntry from "../components/SlidePageEntry.tsx"; -import { Config, getTagLabel } from "../config.ts"; -import { getPostPublishedDate } from "../generators/post.ts"; -import { TaggedPage } from "../generators/tagged_page.ts"; - -export default function TagPage( - tagSlug: string, - pages: TaggedPage[], - config: Config, -) { - const tagLabel = getTagLabel(config, tagSlug); - const pageTitle = `タグ「${tagLabel}」一覧`; - - return ( - <PageLayout - metaCopyrightYear={getPostPublishedDate(pages[pages.length - 1]).year} - metaDescription={`タグ「${tagLabel}」のついた記事またはスライドの一覧`} - metaKeywords={[tagLabel]} - metaTitle={`${pageTitle}|${config.blog.siteName}`} - metaAtomFeedHref={`https://${config.blog.fqdn}/tags/${tagSlug}/atom.xml`} - config={config} - > - <body className="list"> - <GlobalHeader config={config} /> - <main className="main"> - <header className="page-header"> - <h1>{pageTitle}</h1> - </header> - {pages.map((page) => - "event" in page - ? <SlidePageEntry slide={page} key={page.uuid} /> - : <PostPageEntry post={page} key={page.uuid} /> - )} - </main> - <GlobalFooter config={config} /> - </body> - </PageLayout> - ); -} |
