diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000000..567609b123 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/docs/static/.htaccess b/docs/assets/siteRoot/.htaccess similarity index 100% rename from docs/static/.htaccess rename to docs/assets/siteRoot/.htaccess diff --git a/docs/static/favicon.ico b/docs/assets/siteRoot/favicon.ico similarity index 100% rename from docs/static/favicon.ico rename to docs/assets/siteRoot/favicon.ico diff --git a/docs/static/images/bg.gif b/docs/assets/siteRoot/images/bg.gif similarity index 100% rename from docs/static/images/bg.gif rename to docs/assets/siteRoot/images/bg.gif diff --git a/docs/static/images/bgdark.png b/docs/assets/siteRoot/images/bgdark.png similarity index 100% rename from docs/static/images/bgdark.png rename to docs/assets/siteRoot/images/bgdark.png diff --git a/docs/static/images/button-donate.png b/docs/assets/siteRoot/images/button-donate.png similarity index 100% rename from docs/static/images/button-donate.png rename to docs/assets/siteRoot/images/button-donate.png diff --git a/docs/static/images/button-download.png b/docs/assets/siteRoot/images/button-download.png similarity index 100% rename from docs/static/images/button-download.png rename to docs/assets/siteRoot/images/button-download.png diff --git a/docs/static/images/f-droid.svg b/docs/assets/siteRoot/images/f-droid.svg similarity index 100% rename from docs/static/images/f-droid.svg rename to docs/assets/siteRoot/images/f-droid.svg diff --git a/docs/static/images/git.png b/docs/assets/siteRoot/images/git.png similarity index 100% rename from docs/static/images/git.png rename to docs/assets/siteRoot/images/git.png diff --git a/docs/static/images/justupdated.png b/docs/assets/siteRoot/images/justupdated.png similarity index 100% rename from docs/static/images/justupdated.png rename to docs/assets/siteRoot/images/justupdated.png diff --git a/docs/static/images/logo.png b/docs/assets/siteRoot/images/logo.png similarity index 100% rename from docs/static/images/logo.png rename to docs/assets/siteRoot/images/logo.png diff --git a/docs/static/images/name.png b/docs/assets/siteRoot/images/name.png similarity index 100% rename from docs/static/images/name.png rename to docs/assets/siteRoot/images/name.png diff --git a/docs/static/images/screenshot1.png b/docs/assets/siteRoot/images/screenshot1.png similarity index 100% rename from docs/static/images/screenshot1.png rename to docs/assets/siteRoot/images/screenshot1.png diff --git a/docs/static/images/screenshot1_thumb.png b/docs/assets/siteRoot/images/screenshot1_thumb.png similarity index 100% rename from docs/static/images/screenshot1_thumb.png rename to docs/assets/siteRoot/images/screenshot1_thumb.png diff --git a/docs/static/images/screenshot2.png b/docs/assets/siteRoot/images/screenshot2.png similarity index 100% rename from docs/static/images/screenshot2.png rename to docs/assets/siteRoot/images/screenshot2.png diff --git a/docs/static/images/screenshot2_thumb.png b/docs/assets/siteRoot/images/screenshot2_thumb.png similarity index 100% rename from docs/static/images/screenshot2_thumb.png rename to docs/assets/siteRoot/images/screenshot2_thumb.png diff --git a/docs/static/images/screenshot3.png b/docs/assets/siteRoot/images/screenshot3.png similarity index 100% rename from docs/static/images/screenshot3.png rename to docs/assets/siteRoot/images/screenshot3.png diff --git a/docs/static/images/screenshot3_thumb.png b/docs/assets/siteRoot/images/screenshot3_thumb.png similarity index 100% rename from docs/static/images/screenshot3_thumb.png rename to docs/assets/siteRoot/images/screenshot3_thumb.png diff --git a/docs/static/images/tooltipp-donate.png b/docs/assets/siteRoot/images/tooltipp-donate.png similarity index 100% rename from docs/static/images/tooltipp-donate.png rename to docs/assets/siteRoot/images/tooltipp-donate.png diff --git a/docs/static/images/uml.png b/docs/assets/siteRoot/images/uml.png similarity index 100% rename from docs/static/images/uml.png rename to docs/assets/siteRoot/images/uml.png diff --git a/docs/static/javascript/base.js b/docs/assets/siteRoot/javascript/base.js similarity index 100% rename from docs/static/javascript/base.js rename to docs/assets/siteRoot/javascript/base.js diff --git a/docs/static/javascript/jquery-3.2.1.min.js b/docs/assets/siteRoot/javascript/jquery-3.2.1.min.js similarity index 100% rename from docs/static/javascript/jquery-3.2.1.min.js rename to docs/assets/siteRoot/javascript/jquery-3.2.1.min.js diff --git a/docs/static/javascript/jquery.fancybox.min.css b/docs/assets/siteRoot/javascript/jquery.fancybox.min.css similarity index 100% rename from docs/static/javascript/jquery.fancybox.min.css rename to docs/assets/siteRoot/javascript/jquery.fancybox.min.css diff --git a/docs/static/javascript/jquery.fancybox.min.js b/docs/assets/siteRoot/javascript/jquery.fancybox.min.js similarity index 100% rename from docs/static/javascript/jquery.fancybox.min.js rename to docs/assets/siteRoot/javascript/jquery.fancybox.min.js diff --git a/docs/sass/style.scss b/docs/assets/style.css similarity index 92% rename from docs/sass/style.scss rename to docs/assets/style.css index 51a58c9f91..fc3543d8ad 100644 --- a/docs/sass/style.scss +++ b/docs/assets/style.css @@ -1,5 +1,7 @@ +@import 'siteRoot/javascript/jquery.fancybox.min.css'; + body { - background: url("images/bg.gif"); + background: url("/images/bg.gif"); font-family: Verdana, Arial, Helvetica, sans-serif; color: #3e3e3e; margin: 0; @@ -74,7 +76,7 @@ aside { } .wrapper-dark { - background: url("images/bgdark.png"); + background: url("/images/bgdark.png"); color: #ffffff; } @@ -129,7 +131,7 @@ nav .active { } #header-name { display: inline-block; - background: url("images/name.png"); + background: url("/images/name.png"); background-size: contain; margin-left: 1em; width: 84px; @@ -185,7 +187,7 @@ nav .active { left: 100%; margin-left: -149px; top: 0; - background: url("images/git.png"); + background: url("/images/git.png"); width: 149px; height: 149px; } @@ -193,7 +195,7 @@ nav .active { #header-logo { position: absolute; display: block; - background: url("images/logo.png"); + background: url("/images/logo.png"); width: 177px; height: 209px; left: 50%; @@ -203,7 +205,7 @@ nav .active { #header-just-updated { position: absolute; - background: url("images/justupdated.png"); + background: url("/images/justupdated.png"); width: 138px; height: 52px; left: 50%; @@ -215,7 +217,7 @@ nav .active { #header-donate, #header-download { position: absolute; display: block; - background: url("images/button-download.png"); + background: url("/images/button-download.png"); width: 211px; height: 42px; left: 50%; @@ -235,14 +237,14 @@ nav .active { } #header-donate { - background: url("images/button-donate.png"); + background: url("/images/button-donate.png"); top: 500px; } #header-donate-tooltipp { position: absolute; display: none; - background: url("images/tooltipp-donate.png"); + background: url("/images/tooltipp-donate.png"); width: 271px; height: 81px; top: 485px; @@ -402,7 +404,7 @@ kbd { } } -// Footnotes from pulldown-cmark +/* Footnotes from pulldown-cmark */ .footnote-definition { display: flex; font-size: 0.95em; diff --git a/docs/components/a.js b/docs/components/a.js new file mode 100644 index 0000000000..5cc5be8beb --- /dev/null +++ b/docs/components/a.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { getUrl } from '../helpers/url'; + +function a(props) { + return ( + + ); +} + +module.exports = a; diff --git a/docs/components/blocks.jsx b/docs/components/blocks.jsx new file mode 100644 index 0000000000..5e5f048c84 --- /dev/null +++ b/docs/components/blocks.jsx @@ -0,0 +1,39 @@ +import React from 'react'; + +function DocSection({ children }) { + return ( +
+ {children} +
+ ); +} + +function Deprecation({ deprecated, children }) { + if (deprecated) { + return ( + + {children} (deprecated) + + ); + } else { + return children; + } +} + +function Option({ children, name, deprecated = false }) { + return ( +
+

+ + {name} + +

+ {children} +
+ ); +} + +module.exports = { + DocSection, + Option, +}; diff --git a/docs/components/h2.js b/docs/components/h2.js new file mode 100644 index 0000000000..899b8e9ddd --- /dev/null +++ b/docs/components/h2.js @@ -0,0 +1,10 @@ +import React from 'react'; +import Heading from './heading'; + +function h2(props) { + return ( + + ); +} + +module.exports = h2; diff --git a/docs/components/heading.js b/docs/components/heading.js new file mode 100644 index 0000000000..d06dcff55a --- /dev/null +++ b/docs/components/heading.js @@ -0,0 +1,23 @@ +import React from 'react'; + +function Heading(props) { + let { name, children, id, ...remainingProps } = props; + + if (typeof children === 'string') { + const matches = children.match(/^(.*)\s+\{#(.+)\}$/); + if (matches !== null) { + [, children, id] = matches; + } + } + + return React.createElement( + name, + { + ...remainingProps, + id, + }, + children, + ); +} + +module.exports = Heading; diff --git a/docs/config.toml b/docs/config.toml deleted file mode 100644 index fe4da6c41d..0000000000 --- a/docs/config.toml +++ /dev/null @@ -1,12 +0,0 @@ -title = "selfoss" -description = "Open source web based RSS reader and multi-source mashup aggregator." -base_url = "https://selfoss.aditu.de" - -compile_sass = true - -sort_by = "weight" - -[extra] -author = "Tobias Zeising" -author_address = "tobias.zeising@aditu.de" -current_version = "2.19-SNAPSHOT" diff --git a/docs/content/docs/_index.md b/docs/content/docs/_index.md deleted file mode 100644 index 894cb8af14..0000000000 --- a/docs/content/docs/_index.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Documentation" -redirect_to = "docs/administration/installation" -+++ diff --git a/docs/content/docs/administration/_index.md b/docs/content/docs/administration/_index.md deleted file mode 100644 index 635ecd1bf6..0000000000 --- a/docs/content/docs/administration/_index.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Administration" -weight = 10 -+++ diff --git a/docs/content/docs/customization/_index.md b/docs/content/docs/customization/_index.md deleted file mode 100644 index d3ceda7e5e..0000000000 --- a/docs/content/docs/customization/_index.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Customization" -weight = 40 -+++ diff --git a/docs/content/docs/development/_index.md b/docs/content/docs/development/_index.md deleted file mode 100644 index bb0fac0d0c..0000000000 --- a/docs/content/docs/development/_index.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Development" -weight = 40 -redirect_to = "docs/development/setting-up/" -+++ diff --git a/docs/content/docs/project/_index.md b/docs/content/docs/project/_index.md deleted file mode 100644 index 5324fb646a..0000000000 --- a/docs/content/docs/project/_index.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Project" -weight = 50 -+++ diff --git a/docs/content/docs/usage/_index.md b/docs/content/docs/usage/_index.md deleted file mode 100644 index 9425826d66..0000000000 --- a/docs/content/docs/usage/_index.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Usage" -weight = 20 -+++ diff --git a/docs/helpers/url.js b/docs/helpers/url.js new file mode 100644 index 0000000000..b292e20998 --- /dev/null +++ b/docs/helpers/url.js @@ -0,0 +1,13 @@ +function getUrl(path) { + if (path.startsWith('@')) { + const url = new URL(path.substr(1), 'http://localhost/'); + const newPath = url.pathname.replace(/\/index\.mdx$/, '/').replace(/\.mdx$/, '/'); + return newPath + url.search + url.hash; + } + + return path; +} + +module.exports = { + getUrl, +}; diff --git a/docs/index.js b/docs/index.js new file mode 100644 index 0000000000..c6bde13fff --- /dev/null +++ b/docs/index.js @@ -0,0 +1,36 @@ +'use strict'; + +import shayu from 'shayu'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +import postcssImport from 'postcss-import'; +import autoprefixer from 'postcss-import'; + +const config = { + basePath: path.dirname(fileURLToPath(import.meta.url)), + defaultMeta: { + title: 'selfoss', + description: 'Open source web based RSS reader and multi-source mashup aggregator.', + baseUrl: 'https://selfoss.aditu.de', + author: 'Tobias Zeising', + authorAddress: 'tobias.zeising@aditu.de', + currentVersion: '2.19-SNAPSHOT', + + layout: './page', + }, + assets: { + postcssModules: [ + postcssImport(), + autoprefixer(), + ], + }, + livereload: 'env', + HTMLcomponents: { + a: './components/a', + // TODO: allow sharing single component for multiple headings + h2: './components/h2', + }, +}; + +shayu(config); diff --git a/docs/layouts/default.jsx b/docs/layouts/default.jsx new file mode 100644 index 0000000000..01355e195c --- /dev/null +++ b/docs/layouts/default.jsx @@ -0,0 +1,106 @@ +'use strict'; + +import React from 'react'; +import { getUrl } from '../helpers/url'; + +function Layout({ + title, + postHeader, + side, + scripts, + mdxContent, + meta, +}) { + return ( + + + {title ?? meta.title} + + + + + + + + + + + + + + + + {/* header */} +
+ + {postHeader} + + {/* Documentations */} +
+ {meta.url !== '/' && ( + + )} + +
+ {mdxContent} +
+
+ + + + + {scripts} + + + + + + {/* Piwik */} + -{% endif %} -{{ super() }} -{% endblock scripts %} diff --git a/docs/templates/layout.html b/docs/templates/layout.html deleted file mode 100644 index 690d970447..0000000000 --- a/docs/templates/layout.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - {% block title %}{{ config.title }}{% endblock title %} - - - - - - - - - - - - - - - - - - - - {% block post_header %} - {% endblock post_header %} - - -
- {% if current_path != '/' %} - - {% endif %} - -
- {% block content %} - {% endblock content %} -
-
- - - - - {% block scripts %} - - - - - - - - - {% endblock scripts %} - - diff --git a/docs/templates/page.html b/docs/templates/page.html deleted file mode 100644 index 241b57f5c8..0000000000 --- a/docs/templates/page.html +++ /dev/null @@ -1,25 +0,0 @@ -{% extends "layout.html" %} - -{% block title %}{{ page.title }}{% endblock title %} - -{% block side %} - -{% endblock side %} - -{% block content %} -

{{ page.title }}

-{{ page.content | safe }} -{% endblock content %} diff --git a/utils/bump-version.js b/utils/bump-version.js index e2aea4d4be..7ae73a5e4e 100755 --- a/utils/bump-version.js +++ b/utils/bump-version.js @@ -17,7 +17,7 @@ const sources = [ 'package.json', 'README.md', 'src/constants.php', - 'docs/config.toml' + 'docs/index.js' ]; const replacements = [ @@ -39,10 +39,10 @@ const replacements = [ to: "SELFOSS_VERSION = '" + newVersion + "'" }, - // rule for docs/config.toml + // rule for docs/index.js { - from: /current_version = "\d+\.\d+(\-SNAPSHOT|\-[0-9a-f]+)?"/g, - to: `current_version = "${newVersion}"` + from: /currentVersion: '\d+\.\d+(\-SNAPSHOT|\-[0-9a-f]+)?'/g, + to: `currentVersion: '${newVersion}'` }, ];