Philipp Heckel 4 лет назад
Родитель
Сommit
2743c96694

+ 6 - 0
.github/workflows/test.yaml

@@ -8,12 +8,18 @@ jobs:
         uses: actions/setup-go@v2
         with:
           go-version: '1.17.x'
+      - name: Install node
+        uses: actions/setup-node@v2
+        with:
+          node-version: '16'
       - name: Checkout code
         uses: actions/checkout@v2
       - name: Install dependencies
         run: sudo apt update && sudo apt install -y python3-pip curl
       - name: Build docs (required for tests)
         run: make docs
+      - name: Build web app (required for tests)
+        run: make web
       - name: Run tests, formatting, vetting and linting
         run: make check
       - name: Run coverage

+ 2 - 1
Makefile

@@ -38,6 +38,7 @@ help:
 
 
 # Documentation
+
 docs-deps: .PHONY
 	pip3 install -r requirements.txt
 
@@ -138,7 +139,7 @@ build-simple: clean
 		"-linkmode=external -extldflags=-static -s -w -X main.version=$(VERSION) -X main.commit=$(shell git rev-parse --short HEAD) -X main.date=$(shell date +%s)"
 
 clean: .PHONY
-	rm -rf dist build server/docs
+	rm -rf dist build server/docs server/site
 
 
 # Releasing targets

+ 3 - 0
web/public/home.html

@@ -27,6 +27,9 @@
     <meta property="og:description" content="ntfy is a simple HTTP-based pub-sub notification service. It allows you to send desktop notifications via scripts from any computer, entirely without signup or cost. Made with ❤ by Philipp C. Heckel, Apache License 2.0, source at https://heckel.io/ntfy." />
     <meta property="og:image" content="/static/img/ntfy.png" />
     <meta property="og:url" content="https://ntfy.sh" />
+
+    <!-- Fonts -->
+    <link rel="stylesheet" href="static/css/fonts.css" type="text/css">
 </head>
 <body>
 

+ 2 - 2
web/public/index.html

@@ -29,8 +29,8 @@
   <!-- Never index -->
   <meta name="robots" content="noindex, nofollow" />
 
-  <!-- FIXME Roboto -->
-  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />
+  <!-- Fonts -->
+  <link rel="stylesheet" href="%PUBLIC_URL%/static/css/fonts.css" type="text/css">
 </head>
 <body>
   <noscript>You need to enable JavaScript to run this app.</noscript>

+ 41 - 0
web/public/static/css/fonts.css

@@ -0,0 +1,41 @@
+/* Roboto font, embedded with the help of https://google-webfonts-helper.herokuapp.com/fonts/roboto?subsets=latin */
+
+/* roboto-300 - latin */
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 300;
+    src: local(''),
+    url('../fonts/roboto-v29-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+    url('../fonts/roboto-v29-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+/* roboto-regular - latin */
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 400;
+    src: local(''),
+    url('../fonts/roboto-v29-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+    url('../fonts/roboto-v29-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+/* roboto-500 - latin */
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 500;
+    src: local(''),
+    url('../fonts/roboto-v29-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+    url('../fonts/roboto-v29-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+/* roboto-700 - latin */
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 700;
+    src: local(''),
+    url('../fonts/roboto-v29-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+    url('../fonts/roboto-v29-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}

+ 0 - 32
web/public/static/css/home.css

@@ -83,38 +83,6 @@ code {
     white-space: nowrap;
 }
 
-/* Roboto font, embedded with the help of https://google-webfonts-helper.herokuapp.com/fonts/roboto?subsets=latin */
-
-/* roboto-300 - latin */
-@font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 300;
-    src: local(''),
-    url('../font/roboto-v29-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
-    url('../font/roboto-v29-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
-}
-
-/* roboto-regular - latin */
-@font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local(''),
-    url('../font/roboto-v29-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
-    url('../font/roboto-v29-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
-}
-
-/* roboto-500 - latin */
-@font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 500;
-    src: local(''),
-    url('../font/roboto-v29-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
-    url('../font/roboto-v29-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
-}
-
 /* Main page */
 
 #main {

+ 0 - 0
web/public/static/font/roboto-v29-latin-300.woff → web/public/static/fonts/roboto-v29-latin-300.woff


+ 0 - 0
web/public/static/font/roboto-v29-latin-300.woff2 → web/public/static/fonts/roboto-v29-latin-300.woff2


+ 0 - 0
web/public/static/font/roboto-v29-latin-500.woff → web/public/static/fonts/roboto-v29-latin-500.woff


+ 0 - 0
web/public/static/font/roboto-v29-latin-500.woff2 → web/public/static/fonts/roboto-v29-latin-500.woff2


BIN
web/public/static/fonts/roboto-v29-latin-700.woff


BIN
web/public/static/fonts/roboto-v29-latin-700.woff2


+ 0 - 0
web/public/static/font/roboto-v29-latin-regular.woff → web/public/static/fonts/roboto-v29-latin-regular.woff


+ 0 - 0
web/public/static/font/roboto-v29-latin-regular.woff2 → web/public/static/fonts/roboto-v29-latin-regular.woff2


+ 0 - 1
web/src/components/App.js

@@ -21,7 +21,6 @@ import {BrowserRouter, Route, Routes, useLocation, useNavigate} from "react-rout
 import {subscriptionRoute} from "../app/utils";
 
 // TODO support unsubscribed routes
-// TODO googlefonts
 // TODO new notification indicator
 // TODO sound
 

+ 1 - 1
web/src/components/Preferences.js

@@ -69,7 +69,7 @@ const MinPriority = () => {
         <Pref title="Minimum priority">
             <FormControl fullWidth variant="standard" sx={{ m: 1 }}>
                 <Select value={minPriority} onChange={handleChange}>
-                    <MenuItem value={1}><em>Any priority</em></MenuItem>
+                    <MenuItem value={1}>Any priority</MenuItem>
                     <MenuItem value={2}>Low priority and higher</MenuItem>
                     <MenuItem value={3}>Default priority and higher</MenuItem>
                     <MenuItem value={4}>High priority and higher</MenuItem>