Theme, Plugin (Starter Pack)

.makemd .obsidian .space

  • Unzip and Move to Vault
    • Use Cmd+Shift+.
  • Includes Themes, Hot-Keys, Plugins, etc
  • Need additional settings: Languages, API Key, Git, Path, etc

Sync (example)

  • OS
  • Folders
  1. Share Folder 1
  2. Pictures (DCIM) 2
  3. Obsidian Vault 3
  4. etc… (Private Folder)

Quartz (Web-Publish)

Installation 4

  1. Create GitHub Account and Install Node, VS Code, GitHub Desktop
  2. Create your GitHub-Repository
    • Repository Name is important…
    • Go GitHub-Repository Settings - Pages
    • Change Deploy from a branchGitHub Actions
      • (Advanced) If you want to get Short Url, Repository-Name<Your-ID>.github.io like filmnt.github.io
  3. Enter the following commands in terminal
cd Downloads
git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create

If you’re in trouble, I strongly recommend you GIVE UP and use Obsidian Publish…

  1. Enter the following commands
git remote rm origin
 
# REPLACE <YOUR-REMOTE-URL> with *.git URL in your repository
git remote add origin <YOUR-REMOTE-URL(https://...git)>
 
# Check your repository and upstream (fetch/push)
git remote -v
# 4 Lines works properly
 
# If you made a mistake, enter the following command and try again
# git remote rm origin
 
# Initialize Quartz
npx quartz sync --no-pull
  1. Modify 5 .gitignore, quartz.config.ts and (optional) quartz.layout.ts in quartz folder (See ToC)
  2. Move Obsidian Vault files to quartz/content including .folder
    • Use Cmd+Shift+.
    • The .md files in the content folder will be published
    • ⚠️ Check your Private Notes and Public Notes in .gitignore
  3. Create a new file deploy.yml 5 in quartz/.github/workflows/ and Copy & Paste the following
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
      - 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
  1. Use GitHub Desktop for Publish
    • Open quartz folder in GitHub Desktop and Click Commit to v4 + Push origin
    • Whenever you want to publish your notes, commit and push
    • ⚠️ Use carefully with your Private Notes
  2. Your content will be published within minutes.
    • See GitHub-Actions - Deploy Quartz site to GitHub Pages
    • URL: <GitHub-Username>.github.io/<Repository-Name>
    • You Can Rename quartz and Move it to where you want.
  3. If You have Private Notes, DON’T USE npx quartz sync in quartz folder

(Optional) You can connect http://localhost:8080

# Go to quartz folder
cd quartz
 
# Host local server
npx quartz build --serve

.gitignore

  • Below Personal Setting
.DS_Store
.gitignore
node_modules
public
prof
tsconfig.tsbuildinfo
.quartz-cache
private/
.replit
replit.nix
 
# 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

quartz.config.ts

  • pageTitle, baseUrl, ignorePatterns, header/body/code(optional), lightMode/darkMode colors(optional)
import { QuartzConfig } from "./quartz/cfg"
import * as Plugin from "./quartz/plugins"
 
/**
 * Quartz 4.0 Configuration
 *
 * See https://quartz.jzhao.xyz/configuration for more information.
 */
const config: QuartzConfig = {
  configuration: {
    pageTitle: "🪴 Filmnt",
    enableSPA: true,
    enablePopovers: true,
    analytics: {
      provider: "plausible",
    },
    locale: "en-US",
    baseUrl: "filmnt.github.io/",
    ignorePatterns: ["private", "templates", ".obsidian", "**/🔖 Daily Notes", "**/🔐 Private Notes", ],
    defaultDateType: "modified",
    theme: {
      fontOrigin: "googleFonts",
      cdnCaching: true,
      typography: {
        header: "Noto Sans",
        body: "Noto Sans",
        code: "Noto Sans",
      },
      colors: {
        lightMode: {
          light: "#faf8f8",
          lightgray: "#e5e5e5",
          gray: "#b8b8b8",
          darkgray: "#4e4e4e",
          dark: "#2b2b2b",
          secondary: "#284b63",
          tertiary: "#84a59d",
          highlight: "rgba(143, 159, 169, 0.15)",
        },
        darkMode: {
          light: "#0F0F0F",
          lightgray: "#272727",
          gray: "#646464",
          darkgray: "#F1F1F1",
          dark: "#F1F1F1",
          secondary: "#64B5F6",
          tertiary: "#FFFFFF",
          highlight: "rgba(255, 255, 255, 0.15)",
        },
      },
    },
  },
  plugins: {
    transformers: [
      Plugin.FrontMatter(),
      Plugin.CreatedModifiedDate({
        priority: ["git", "frontmatter", "filesystem"],
      }),
      Plugin.Latex({ renderEngine: "mathjax" }),
      Plugin.SyntaxHighlighting({
        theme: {
          light: "github-light",
          dark: "github-dark",
        },
        keepBackground: false,
      }),
      Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),
      Plugin.GitHubFlavoredMarkdown(),
      Plugin.TableOfContents(),
      Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
      Plugin.Description(),
    ],
    filters: [Plugin.RemoveDrafts()],
    emitters: [
      Plugin.AliasRedirects(),
      Plugin.ComponentResources(),
      Plugin.ContentPage(),
      Plugin.FolderPage(),
      Plugin.TagPage(),
      Plugin.ContentIndex({
        enableSiteMap: true,
        enableRSS: true,
      }),
      Plugin.Assets(),
      Plugin.Static(),
      Plugin.NotFoundPage(),
    ],
  },
}
 
export default config
 

quartz.layout.ts

  • Github, Discord Community(Footer contents), you can add additional links
import { PageLayout, SharedLayout } from "./quartz/cfg"
import * as Component from "./quartz/components"
 
// components shared across all pages
export const sharedPageComponents: SharedLayout = {
  head: Component.Head(),
  header: [],
  footer: Component.Footer({
    links: {
      "Discord": "https://discord.gg/MqkYZmxe",
      GitHub: "https://github.com/filmnt",
 
    },
  }),
}
 
// components for pages that display a single page (e.g. a single note)
export const defaultContentPageLayout: PageLayout = {
  beforeBody: [
    Component.ArticleTitle(),
    Component.ContentMeta(),
    Component.TagList(),
    ],
    
    left: [
    Component.PageTitle(),
    Component.MobileOnly(Component.Spacer()),
    Component.Search(),
    Component.Darkmode(),    
    Component.DesktopOnly(Component.TableOfContents()),
    Component.DesktopOnly(Component.RecentNotes({ limit: 5 })),
 
    ],
    
    right: [
    Component.Graph(),
    Component.DesktopOnly(Component.Explorer()),
    Component.MobileOnly(Component.RecentNotes({ limit: 3 })),
    ],
    }
 
// components for pages that display lists of pages  (e.g. tags or folders)
export const defaultListPageLayout: PageLayout = {
  beforeBody: [Component.ArticleTitle(), Component.ContentMeta(), Component.TagList()],
  left: [
    Component.PageTitle(),
    Component.MobileOnly(Component.Spacer()),
    Component.Search(),
    Component.Darkmode(),    
    Component.DesktopOnly(Component.TableOfContents()),
    Component.DesktopOnly(Component.RecentNotes({ limit: 5 })),
  ],
  right: [
    Component.Graph(),
    Component.DesktopOnly(Component.Explorer()),
    Component.MobileOnly(Component.RecentNotes({ limit: 3 })),
  ],
}
 

Footnotes

  1. Mac: Share (New Folder) Android: Download Folder / Send & Receive

  2. Phone Camera → Mac/Windows + Tablet / Send & Receive

  3. Mac: Send Only, Others: Receive Only

  4. See https://quartz.jzhao.xyz/

  5. Use VS Code 2