Skip to content

Commit

Permalink
Quartz sync: Jan 28, 2025, 9:25 PM
Browse files Browse the repository at this point in the history
  • Loading branch information
filmnt committed Jan 28, 2025
1 parent 4e4930e commit d7e64c9
Show file tree
Hide file tree
Showing 162 changed files with 29,783 additions and 148 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Deploy Quartz site to GitHub Pages

on:
push:
branches:
- v4

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for git info
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Dependencies
run: npm ci
- name: Build Quartz
run: npx quartz build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public

deploy:
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
24 changes: 23 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,30 @@ node_modules
public
prof
tsconfig.tsbuildinfo
.obsidian
.quartz-cache
private/
.replit
replit.nix
.stignore

# Personal Setting
.filen.trash.local
content/🔖 Daily Notes/
content/🔐 Private Notes/
.trash
.obsidian
.makemd
.space
.stfolder

# Media
*.mp4
*.webm
*.qt
*.wmv
*.avi
*.mkv
*.xspf
*.dpl
*.mp3
*.aiff
38 changes: 26 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
# Quartz v4
# Getting Started with Scratch
See 💠[Obsidian](https://filmnt.github.io/%F0%9F%9B%A0%EF%B8%8F-Setting/%F0%9F%92%A0-Obsidian)
> [Join the Discord Community](https://discord.gg/sHJxUDqbAE)
> [One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
# Previews on Firefox
## Desktop
| 4K-100% |
| --------- |
| ![4k](<content/ReadmeImg/4k 100.png>)|

Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free.
Quartz v4 features a from-the-ground rewrite focusing on end-user extensibility and ease-of-use.
| (Reference) 4K-240% |
| --------- |
![4k-240](<content/ReadmeImg/4k 240.png>) |

🔗 Read the documentation and get started: https://quartz.jzhao.xyz/
| 4K-300% |
| --------- |
| ![4k-300](<content/ReadmeImg/4k 300.png>) |

[Join the Discord Community](https://discord.gg/cRFFHYye7t)

## Sponsors
## Mobile
### *Swipe gesture is supported for Navigation bar*
| (Reference) TabS9 Landscape (minWidth-950) | Note3 (minWidth-500) |
| ---------| --------- |
| ![TabS9](<content/ReadmeImg/TabS9 Horizontal-Width-950.png>) | ![Note3](<content/ReadmeImg/Note3 Portrait-minwidth-500.png>) |

<p align="center">
<a href="https://github.com/sponsors/jackyzha0">
<img src="https://cdn.jsdelivr.net/gh/jackyzha0/jackyzha0/sponsorkit/sponsors.svg" />
</a>
</p>

| Fold5 Main Display (minWidth-450) | Fold5 Cover Display (minWidth-450) |
| ---------| --------- |
| ![Fold5 main](<content/ReadmeImg/Fold5 Main-Portrait-Width-450.png>) | ![Fold5 cover](<content/ReadmeImg/Fold5 Cover-Portrait-Width-450.png>) |


🔗 [Contact Me(Cal.com)](https://cal.com/filmnt/contact)
Empty file removed content/.gitkeep
Empty file.
Binary file added content/ReadmeImg/4k 100.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/ReadmeImg/4k 240.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/ReadmeImg/4k 300.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/ReadmeImg/TabS9 Horizontal-Width-950.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/iframe/blank.pdf
Binary file not shown.
191 changes: 191 additions & 0 deletions content/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
---
title: Home
tags:
- contents
comments: "false"
---
<title>Filmnt</title>
%% jQuery script %%
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
%% html2canvas script %%
<script src="script/html2canvas.js"></script>
%% Webcam script %%
<script src="script/cam.js"></script>
%% md-editor script %%
<script src="script/simplemde.min.js"></script>
<script src="script/md-editor.js"></script>
%% tts script %%
<script src="script/tts.js"></script>
%% progressbar script %%
<script>
function getCurrentProgress(){
const firstDateOfYear = new Date(new Date().getFullYear(), 0, 1);
const currentDate = new Date();
return ((((currentDate - firstDateOfYear) / (1000 * 60 * 60 * 24)) * 100) / 365).toFixed(1);}
function updateUI() {const percent = getCurrentProgress();
const barItem = document.getElementsByClassName('bar')[0];barItem.style.width = `${percent}%`;
const counterItem = document.getElementsByClassName('value')[0];
if (percent>100){counterItem.textContent = `100%`}else{counterItem.textContent = `${percent}%`;}}
setInterval(function() {updateUI();return arguments.callee;}(), 1000);
</script>

%% Link %%
<style>#ClockWidget{margin-top:-25px;margin-bottom:-2px;font-size:1.7em;}
h3{margin-top:-15px}#TopBtn,#DownBtn,#threedots{display:none}</style>
%% home navbar icon %%
<button title="Navigation" id="navbar" style="position:fixed;bottom: 30px;float:right;right: 28px;width: 40px;height:40px;opacity:0.3;z-index:1" onclick="openNavbar()"><i class="fa-solid fa-bars fa-xl"></i></button>
%% Links script %%
<script type="text/javascript">
var url = document.getElementById( 'linkshare' );
url.onchange = function() {window.open( this.options[ this.selectedIndex ].value, '_blank');
$('#linkshare').prop('selectedIndex',0);};
</script>
%% Translator script%%
<script>window.ResetTranslate = () => jQuery('#\\:1\\.container').contents().find('#\\:1\\.restore').click();</script>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en'},'google_translate_element');}
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
%% share&fullcreen button script %%
<script src="script/full-share.js"></script>
%% WhiteNoise Script %%
<script type="text/javascript" src="script/WN.js"></script>
%% Graph Script %%
<script src="script/graph.js"></script>
%% Preview Script %%
<script src="script/preview.js"></script>
%% Excalidraw Script %%
<script src="script/excalidraw.js"></script>
%% Study with me Script %%
<script src="script/study.js"></script>
%% Food Script %%
<script src="script/meal.js"></script>
%% Schedule Script %%
<script src="script/scheduler.js"></script>
%% Navigation bar Script %%
<script src="script/home-navbar.js"></script>




%% ip address & city %%
<h3 ><span id="hello"></span><span id='browser'>Disable AdBlock for greetings… 📛</span></h3>
<script src='script/agent.js'></script>

<h1 style="font-size:26px" id="ClockWidget" onload="showTime()" > </h1>
<script src="script/clock.js"></script>

%% weather & link button 1 %%
<span>
<select id="switchLocation" style="width:80px !important">
<option value=””>Weather</option>
<option value=”37d57126d98/seoul/”>서울</option>
<option value=”35d69139d69/tokyo/”>東京</option>
<option value=”39d90116d41/beijing/”>北京</option>
<option value="36d78n119d42/california/">California</option>
<option value="40d71n74d01/new-york/">New York</option>
<option value="51d51n0d13/london/">London</option>
<option value="48d862d35/paris/">Paris</option>
<option value="52d5213d40/berlin/">Berlin</option>
<option value="n33d87151d21/sydney/">Sydney</option>
<option value="49d28n123d12/vancouver/">Vancouver</option>
<option value="40d42n3d70/madrid/">Madrid</option>
<option value="0d54116d42/east-kalimantan/">Kalimantan</option>
<option value="24d4554d38/abu-dhabi/">أَبُو ظَبْيٍ</option>
<option value="28d6177d21/new-delhi/">नई दिल्ली</option>
<option value="52d2321d01/warsaw/">Warszawa</option>
<option value="46d957d45/bern/">Bärn</option>
<option value="45d8215d98/zagreb/">Zagreb</option>
<option value="21d03105d83/hanoi/">Hà Nội</option>
<option value="59d3318d07/stockholm/">Stockholm</option>
<option value="19d25n99d10/mexico-city/">Ciudad de México</option>
<option value="30d0431d24/cairo/">القاهرة</option>
<option value="1d35103d82/singapore/">Singapore</option>
<option value="11d80n15d18/guinea-bissau/">Bissau</option>
<option value="36d8110d18/tunis/">تونس</option>
<option value="5d60n0d19/accra/">Accra</option>
<option value="14d72n17d47/dakar/">Dakar</option>
<option value="n15d3928d32/lusaka/">Lusaka</option>
<option value="36d703d06/algiers-province/">الجزائر</option>
<option value="11d8342d59/djibouti/">Djibouti</option>
<option value="n13d9633d77/lilongwe/">Lilongwe</option>
<option value="12d1315d06/ndjamena/">N'Djamena</option>
<option value="47d5019d04/budapest/">Budapest</option>
<option value="44d4326d10/bucharest/">Bucureşti</option>
<option value="50d4530d52/kiev/">Київ</option>
<option value="59d9110d75/oslo/">Oslo</option>
<option value="48d1517d11/bratislava/">Bratislava</option>
<option value="37d9658d33/ashgabat/">Aşgabat</option>
<option value="51d1671d47/astana/">Астана</option>
<option value="40d7368d10/toshkent/">Тошкент</option>
</select>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%93%93-Study/%E2%8C%9B-%EA%B5%90%EC%9C%A1%ED%95%99'" >⌛&nbsp;교육학</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%93%93-Study/%E2%9A%A0%EF%B8%8F-%EB%82%B4%EC%9A%A9%ED%95%99'" >⚠️&nbsp;내용학</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%93%93-Study/%F0%9F%9A%A7-%E1%84%8B%E1%85%A7%E1%86%AB%E1%84%83%E1%85%A9%E1%84%87%E1%85%A7%E1%86%AF-%E1%84%80%E1%85%B5%E1%84%8E%E1%85%AE%E1%86%AF'" >🚧&nbsp;연도별 기출</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%93%93-Study/%F0%9F%9A%AB-Download'" >🚫&nbsp;Download</button>
<span></span>
</span>
<br>

%% weather & link button 2 %%
<span>
<button data-cal-link="filmnt">✉️&nbsp;Contact</button><script type="text/javascript" src="script/contact.js"></script>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%9B%A0%EF%B8%8F-Setting/%F0%9F%92%A0-Obsidian'" >💠&nbsp;Obsidian</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%9B%A0%EF%B8%8F-Setting/%F0%9F%93%B1-One-UI'" >📱&nbsp;One&nbsp;UI</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%9B%A0%EF%B8%8F-Setting/%F0%9F%94%81-Useful-Apps'" >🔁&nbsp;Useful Apps</button>
<span></span>
<button id=”Link” onclick="location.href='https://filmnt.github.io/%F0%9F%9B%A0%EF%B8%8F-Setting/%F0%9F%94%A5-Firefox'" >🔥&nbsp;Firefox</button>
<span></span>
</span>

%% Carousel (Weather, Map, Stock %%
<style>
.slideshow-container {position: relative;margin: auto;display:block;height:100%;width:100%;margin-top:6px;margin-bottom:-10px;}
.prev, .next {cursor: pointer;position: absolute;top: 35%;width: auto;padding: 5px;color:#646464;font-weight: bold;font-size: 20px;transition: 0.6s ease;border-radius: 0 3px 3px 0; user-select: none;}
.next {right: 0;border-radius: 3px 0 0 3px;}
</style>

<div class="slideshow-container" >
<div class="Slides">
<a class="weatherwidget-io" href="https://forecast7.com/en/37d57126d98/seoul/" data-label_1="서울" data-label_2="WEATHER" data-font="Noto Sans" data-icons="Climacons Animated" data-theme="weather_one" target=”_blank”> </a>
</div>

<div class="Slides">
<div id="mapping"></div>
</div>

<div class="Slides">
<iframe width="100%" height="450" src="https://embed.windy.com/embed.html?type=map&location=coordinates&metricRain=default&metricTemp=default&metricWind=default&zoom=5&overlay=wind&product=ecmwf&level=surface" frameborder="0"></iframe>
</div>

<a class="prev" onclick="plusSlides(-1)"><i class="fa-solid fa-chevron-left fa-xl"></i></a>
<a class="next" onclick="plusSlides(1)"><i class="fa-solid fa-chevron-right fa-xl"></i></a>
</div>

<script src="script/carousel.js"></script>
<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='https://weatherwidget.io/js/widget.min.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','weatherwidget-io-js'); setInterval('__weatherwidget_init()', 900000);

document.getElementById('switchLocation').addEventListener('change', function(){
var widget = document.querySelector('.weatherwidget-io');
widget.href = 'https://forecast7.com/en/'+this.value;
widget.dataset.label_1 = this.options[this.selectedIndex].text;
__weatherwidget_init();
});

document.getElementById( 'switchLocation' ).onchange = function() {$('#switchLocation').prop('selectedIndex',0);};
</script>

%% discord embed %%
> <widgetbot server="1231921110811934840" channel="1231921110811934843" width="100%" height="600" ></widgetbot> <script src="https://cdn.jsdelivr.net/npm/@widgetbot/html-embed"></script>

46 changes: 46 additions & 0 deletions content/script/WN.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// Create an AudioContext object to handle audio processing
const audioContext = new AudioContext();

// Create an AudioBuffer to store the noise data
// bufferSize is the size of the buffer in samples, which is the product of the sample rate and the duration in seconds
const bufferSize = audioContext.sampleRate * 10; // 10 seconds of sound
const buffer = audioContext.createBuffer(1, bufferSize, audioContext.sampleRate);

// Fill the buffer with random values to create white noise
const data = buffer.getChannelData(0);
for (let i = 0; i < bufferSize; i++) {
data[i] = Math.random() * 2 - 1;
}

// Create a GainNode to control the volume of the noise
let gainNode = audioContext.createGain();
gainNode.connect(audioContext.destination);

// Function to start playing the noise
function start() {
// Create an AudioBufferSourceNode to play the noise
noiseSource = audioContext.createBufferSource();
noiseSource.buffer = buffer;
noiseSource.loop = true; // loop the noise

gainNode.gain.value = '0.02'; // set the volume level, between 0 and 1
noiseSource.connect(gainNode);
noiseSource.start();

// Disable and enable buttons as necessary
document.getElementById('start').disabled=true;
document.getElementById('stop').disabled=false;

}

// Function to stop playing the noise
function pause() {
noiseSource.stop();
noiseSource.disconnect();
noiseSource.buffer = null;

// Disable and enable buttons as necessary
document.getElementById('start').disabled=false;
document.getElementById('stop').disabled=true;
}

Loading

0 comments on commit d7e64c9

Please sign in to comment.