Compare commits

...

5 Commits

Author SHA1 Message Date
7b2abc6f44 Merge commit 'a7a196e10ff1b3429e9d6094dc250929d36474cf' into jpg 2025-09-05 14:14:19 +02:00
a7a196e10f Squashed 'content/' changes from 458749f..b4d925d
b4d925d Fix links
138c85c Update Obsidian folder

git-subtree-dir: content
git-subtree-split: b4d925da95a800d68d997ab1b19a1cefaba25b7f
2025-09-05 14:14:19 +02:00
3177307cbf Update favicon 2025-09-05 14:14:13 +02:00
36437cf4e6 Squashed 'content/' changes from 8cd58e1..458749f
458749f Normalization pass on all files

git-subtree-dir: content
git-subtree-split: 458749fabc7b9940fa496e54edb4a0defc8b414a
2025-09-05 12:08:04 +02:00
d322495c23 Merge commit '36437cf4e65bf495444f0dfd10625859ca9a9b47' into jpg 2025-09-05 12:08:04 +02:00
69 changed files with 2862 additions and 3406 deletions

2
content/.gitignore vendored
View File

@@ -1,2 +1,4 @@
.obsidian/workspace.json
.obsidian/workspace-mobile.json
0- Do-Not-Commit
.DS_Store

View File

@@ -1,5 +1,4 @@
[
"obsidian-markdown-furigana",
"obsidian-style-settings",
"obsidian42-brat"
"obsidian-style-settings"
]

View File

@@ -27,5 +27,7 @@
"file-recovery": true,
"publish": false,
"sync": false,
"webviewer": false
"webviewer": false,
"footnotes": false,
"bases": true
}

View File

@@ -1,377 +0,0 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// main.ts
var main_exports = {};
__export(main_exports, {
default: () => Opener
});
module.exports = __toCommonJS(main_exports);
var import_obsidian2 = require("obsidian");
// node_modules/monkey-around/mjs/index.js
function around(obj, factories) {
const removers = Object.keys(factories).map((key) => around1(obj, key, factories[key]));
return removers.length === 1 ? removers[0] : function() {
removers.forEach((r) => r());
};
}
function around1(obj, method, createWrapper) {
const original = obj[method], hadOwn = obj.hasOwnProperty(method);
let current = createWrapper(original);
if (original)
Object.setPrototypeOf(current, original);
Object.setPrototypeOf(wrapper, current);
obj[method] = wrapper;
return remove;
function wrapper(...args) {
if (current === original && obj[method] === wrapper)
remove();
return current.apply(this, args);
}
function remove() {
if (obj[method] === wrapper) {
if (hadOwn)
obj[method] = original;
else
delete obj[method];
}
if (current === original)
return;
current = original;
Object.setPrototypeOf(wrapper, original || Function);
}
}
// settings.ts
var import_obsidian = require("obsidian");
var OpenerSettingTab = class extends import_obsidian.PluginSettingTab {
display() {
const { containerEl } = this;
const plugin = this.plugin;
containerEl.empty();
new import_obsidian.Setting(containerEl).setName("New Tab Default").setDesc(
"Enable to open new files in a new tab (or existing tab, if it was previously opened). Disable for default Obsidian behavior."
).addToggle(
(toggle) => toggle.setValue(plugin.settings.newTab).onChange((value) => {
plugin.settings.newTab = value;
plugin.saveSettings();
})
);
new import_obsidian.Setting(containerEl).setName("PDF Default App").setDesc(
"Enable to open pdfs with system viewer app. Disable for default behavior (open pdfs in Obsidian)."
).addToggle(
(toggle) => toggle.setValue(plugin.settings.PDFApp).onChange((value) => {
plugin.settings.PDFApp = value;
plugin.saveSettings();
})
);
new import_obsidian.Setting(containerEl).setName("Default app only when Ctrl/Cmd-Key is held").setDesc(
"Open in default app only when Ctrl/Cmd-Key is held. Disable to always\u201A open with system viewer."
).addToggle(
(toggle) => toggle.setValue(plugin.settings.extOnlyWhenMetaKey).onChange((value) => {
plugin.settings.extOnlyWhenMetaKey = value;
plugin.saveSettings();
})
);
new import_obsidian.Setting(containerEl).setName("Open everything outside of Obsidian").setDesc(
"Enable to open all obsidian supported extensions with system viewer instead. Disable for default behavior (open within Obsidian). Defaults supported extensions are 'png', 'webp', 'jpg', 'jpeg', 'gif', 'bmp', 'svg', 'mp3', 'webm', 'wav', 'm4a', 'ogg','3gp', 'flac', 'mp4', 'ogv', 'mov', 'mkv'."
).addToggle(
(toggle) => toggle.setValue(plugin.settings.allExt).onChange((value) => {
plugin.settings.allExt = value;
plugin.saveSettings();
})
);
new import_obsidian.Setting(containerEl).setName("Open Outside Obsidian: Manual List").setDesc("This shouldn't be necessary, but you can manually enable custom extensions here.").addToggle(
(toggle) => toggle.setValue(plugin.settings.custExt).onChange((value) => {
plugin.settings.custExt = value;
plugin.saveSettings();
this.display();
})
);
if (plugin.settings.custExt) {
new import_obsidian.Setting(containerEl).setName("Manual List").setDesc("Enter extension names (without the dot, ie, just docx separated by newlines).").addTextArea((textArea) => {
textArea.inputEl.rows = 5;
textArea.setValue(plugin.settings.custExtList.join("\n")).onChange(async (value) => {
plugin.settings.custExtList = value.split("\n");
plugin.saveSettings();
});
}).settingEl.style.borderTop = "none";
}
}
};
// constants.ts
var DEFAULT_SETTINGS = {
newTab: true,
PDFApp: true,
extOnlyWhenMetaKey: true,
allExt: false,
custExt: false,
custExtList: []
};
// main.ts
var Opener = class extends import_obsidian2.Plugin {
constructor() {
super(...arguments);
this.isMetaKeyHeld = null;
this.sameTabOnce = false;
// Meta key listeners
// arrow syntax to preserve `this` context
this.keyDownHandler = (e) => {
if (e.key === "Meta" || e.key === "Control") {
this.isMetaKeyHeld = true;
}
};
this.keyUpHandler = (e) => {
if (e.key === "Meta" || e.key === "Control") {
this.isMetaKeyHeld = false;
}
};
// Mouse handler is needed because the key handler will not fire if the app is out of focus
this.mouseDownHandler = (e) => {
if (e.metaKey || e.ctrlKey) {
this.isMetaKeyHeld = true;
} else {
this.isMetaKeyHeld = false;
}
};
}
async onload() {
console.log("loading " + this.manifest.name + " plugin");
await this.loadSettings();
this.addSettingTab(new OpenerSettingTab(this.app, this));
this.updateMetaKeyListeners();
this.monkeyPatchOpenFile();
this.addCommands();
this.addMenuItem();
}
onunload() {
this.uninstallMonkeyPatchOpenFile && this.uninstallMonkeyPatchOpenFile();
this.removeMetaKeyListeners();
console.log("unloading " + this.manifest.name + " plugin");
}
async loadSettings() {
const data = await this.loadData();
this.settings = Object.assign({}, DEFAULT_SETTINGS, data);
}
async saveSettings() {
await this.saveData(this.settings);
this.updateMetaKeyListeners();
}
addCommands() {
this.addCommand({
id: "same-tab-once",
name: "Open next file in same tab (Obsidian default behavior)",
checkCallback: (checking) => {
if (checking) {
return this.settings.newTab;
}
this.sameTabOnce = true;
new import_obsidian2.Notice("Next file will open in same tab");
}
});
this.addCommand({
id: "enable-new-tab",
name: "Enable new tab for all files",
checkCallback: (checking) => {
if (checking) {
return !this.settings.newTab;
}
this.settings.newTab = true;
this.saveSettings();
new import_obsidian2.Notice("Opener: New tab for all files enabled");
}
});
this.addCommand({
id: "disable-new-tab",
name: "Disable new tab for all files",
checkCallback: (checking) => {
if (checking) {
return this.settings.newTab;
}
this.settings.newTab = false;
this.saveSettings();
new import_obsidian2.Notice("Opener: New tab for all files disabled");
}
});
this.addCommand({
id: "enable-pdf",
name: "Enable open all PDFs with default app",
checkCallback: (checking) => {
if (checking) {
return !this.settings.PDFApp;
}
this.settings.PDFApp = true;
this.saveSettings();
new import_obsidian2.Notice("Opener: Open all PDFs with default app enabled");
}
});
this.addCommand({
id: "disable-pdf",
name: "Disable open all PDFs with default app",
checkCallback: (checking) => {
if (checking) {
return this.settings.PDFApp;
}
this.settings.PDFApp = false;
this.saveSettings();
new import_obsidian2.Notice("Opener: Open all PDFs with default app disabled");
}
});
this.addCommand({
id: "open-graph-view-in-new-tab",
name: "Open Graph View in new tab",
callback: () => {
this.app.commands.executeCommandById("workspace:new-tab");
this.app.commands.executeCommandById("graph:open");
}
});
}
// add command to right-click menu
addMenuItem() {
this.registerEvent(
this.app.workspace.on("file-menu", (menu, file, source, leaf) => {
if (file instanceof import_obsidian2.TFile) {
menu.addItem((item) => {
item.setSection("open");
item.setTitle("Open in same tab").onClick(() => {
this.sameTabOnce = true;
this.app.workspace.getLeaf().openFile(file);
});
});
}
})
);
}
addMetaKeyListeners() {
if (this.isMetaKeyHeld !== null)
return;
this.isMetaKeyHeld = false;
document.addEventListener("keydown", this.keyDownHandler);
document.addEventListener("keyup", this.keyUpHandler);
document.addEventListener("mousedown", this.mouseDownHandler, { capture: true });
}
removeMetaKeyListeners() {
if (this.isMetaKeyHeld === null)
return;
document.removeEventListener("keydown", this.keyDownHandler);
document.removeEventListener("keyup", this.keyUpHandler);
document.removeEventListener("mousedown", this.mouseDownHandler, { capture: true });
this.isMetaKeyHeld = null;
}
updateMetaKeyListeners() {
if (this.settings.extOnlyWhenMetaKey) {
this.addMetaKeyListeners();
} else {
this.removeMetaKeyListeners();
}
}
monkeyPatchOpenFile() {
const parentThis = this;
this.uninstallMonkeyPatchOpenFile = around(import_obsidian2.WorkspaceLeaf.prototype, {
openFile(oldOpenFile) {
return async function(file, openState) {
var _a, _b, _c, _d, _e, _f, _g, _h;
const defaultBehavior = () => {
return oldOpenFile.apply(this, [file, openState]);
};
const preparedEmptyLeave = ((_a = this.getViewState()) == null ? void 0 : _a.type) == "empty";
if (((_b = openState == null ? void 0 : openState.state) == null ? void 0 : _b.mode) && preparedEmptyLeave) {
return defaultBehavior();
}
if (file.path == ((_c = app.workspace.getActiveFile()) == null ? void 0 : _c.path) && ((_d = openState == null ? void 0 : openState.eState) == null ? void 0 : _d.subpath)) {
return defaultBehavior();
}
if (parentThis.sameTabOnce) {
parentThis.sameTabOnce = false;
return defaultBehavior();
}
const ALLEXT = ["png", "webp", "jpg", "jpeg", "gif", "bmp", "svg", "mp3", "webm", "wav", "m4a", "ogg", "3gp", "flac", "mp4", "ogv", "mov", "mkv"];
const OBSID_OPENABLE = ALLEXT.concat(["md", "canvas", "pdf"]);
if (parentThis.settings.PDFApp && file.extension == "pdf" || parentThis.settings.allExt && ALLEXT.includes(file.extension) || parentThis.settings.custExt && parentThis.settings.custExtList.includes(file.extension)) {
if (!parentThis.settings.extOnlyWhenMetaKey || parentThis.isMetaKeyHeld) {
new import_obsidian2.Notice("Opening external file with default app (Opener Plugin)");
if (preparedEmptyLeave) {
this.detach();
}
parentThis.app.openWithDefaultApp(file.path);
return;
} else {
new import_obsidian2.Notice("Opener Tip: Hold Cmd/Ctrl key to open with default app");
}
}
if (!parentThis.settings.newTab) {
return defaultBehavior();
}
if (this.group) {
new import_obsidian2.Notice("Opener: This is a Linked Tab! Opening in same tab therefore.");
return defaultBehavior();
}
const matchingLeaves = [];
const pushLeaveIfMatching = (leaf) => {
var _a2;
if (((_a2 = leaf.getViewState().state) == null ? void 0 : _a2.file) == file.path) {
matchingLeaves.push(leaf);
}
};
app.workspace.iterateRootLeaves(pushLeaveIfMatching);
(_g = (_f = (_e = app.workspace.getLayout()) == null ? void 0 : _e.floating) == null ? void 0 : _f.children) == null ? void 0 : _g.forEach((win) => {
var _a2;
if ((win == null ? void 0 : win.type) !== "window")
return console.log("Opener-Plugin: Strange floating object found (no window)", win);
(_a2 = win.children) == null ? void 0 : _a2.forEach((tabs) => {
var _a3;
if ((tabs == null ? void 0 : tabs.type) !== "tabs")
return console.log("Opener-Plugin: Strange floating object found (no tabs)", tabs);
(_a3 = tabs.children) == null ? void 0 : _a3.forEach((leaf) => {
if ((leaf == null ? void 0 : leaf.type) !== "leaf")
return console.log("Opener-Plugin: Strange floating object found (no leaf)", leaf);
pushLeaveIfMatching(app.workspace.getLeafById(leaf.id));
});
});
});
if (matchingLeaves.length) {
if (preparedEmptyLeave) {
new import_obsidian2.Notice(`File is now open in ${matchingLeaves.length + 1} Tabs`);
return defaultBehavior();
} else {
return oldOpenFile.apply(matchingLeaves[0], [file, openState]);
}
}
if (preparedEmptyLeave) {
return defaultBehavior();
}
if (!((_h = parentThis.app.viewRegistry) == null ? void 0 : _h.getTypeByExtension(file.extension))) {
return defaultBehavior();
}
return oldOpenFile.apply(app.workspace.getLeaf("tab"), [
file,
openState
]);
};
}
});
}
};

View File

@@ -1 +0,0 @@
{"id":"obsidian-opener","name":"Opener","minAppVersion":"0.15.9","description":"Open links in new/existing tabs by default. Open PDFs in System App by default. Can open other file formats in System Apps if desired.","author":"Aidan Gibson","authorUrl":"https://github.com/aidan-gibson","isDesktopOnly":false,"version":"2.1.2"}

View File

@@ -1,16 +0,0 @@
{
"pluginList": [
"aidan-gibson/obsidian-opener"
],
"pluginSubListFrozenVersion": [],
"themesList": [],
"updateAtStartup": true,
"updateThemesAtStartup": true,
"enableAfterInstall": true,
"loggingEnabled": false,
"loggingPath": "BRAT-log",
"loggingVerboseEnabled": false,
"debuggingMode": false,
"notificationsEnabled": true,
"personalAccessToken": ""
}

File diff suppressed because one or more lines are too long

View File

@@ -1,14 +0,0 @@
{
"id": "obsidian42-brat",
"name": "BRAT",
"version": "1.1.7",
"minAppVersion": "1.7.2",
"description": "Easily install a beta version of a plugin for testing.",
"author": "TfTHacker",
"authorUrl": "https://github.com/TfTHacker/obsidian42-brat",
"helpUrl": "https://tfthacker.com/BRAT",
"isDesktopOnly": false,
"fundingUrl": {
"Visit my site": "https://tfthacker.com"
}
}

View File

@@ -1,105 +0,0 @@
.brat-modal .modal-button-container {
margin-top: 5px !important;
}
.brat-modal .disabled-setting {
opacity: 0.5;
}
.brat-modal .disabled-setting:hover {
cursor: not-allowed;
}
/* Input validation styles */
.brat-settings .valid-input,
.brat-modal .valid-repository {
border-color: var(--color-green) !important;
}
.brat-settings .invalid-input,
.brat-modal .invalid-repository {
border-color: var(--color-red) !important;
}
.brat-settings .validation-error,
.brat-modal .validation-error {
border-color: var(--color-orange) !important;
}
/* Version selector */
.brat-version-selector {
width: 100%;
max-width: 400px;
justify-content: left;
}
.brat-token-input {
min-width: 33%;
}
/* Token info container styles */
.brat-token-info {
margin-top: 8px;
font-size: 0.8em;
padding: 8px;
border-radius: 4px;
background-color: var(--background-secondary);
}
/* Token status indicators */
.brat-token-info.valid,
.brat-token-status.valid {
color: var(--color-green);
}
.brat-token-info.invalid,
.brat-token-status.invalid {
color: var(--color-red);
}
.brat-token-info.valid {
border-left: 3px solid var(--color-green);
}
.brat-token-info.invalid {
border-left: 3px solid var(--color-red);
}
/* Token details and status */
.brat-token-status {
margin-bottom: 4px;
}
.brat-token-details {
margin-top: 4px;
color: var(--text-muted);
}
/* Token warnings */
.brat-token-warning {
color: var(--color-orange);
margin-top: 4px;
}
/* Token additional info */
.brat-token-scopes,
.brat-token-rate {
color: var(--text-muted);
margin-top: 2px;
}
/* Flex break utility */
.brat-modal .break {
flex-basis: 100%;
height: 0;
}
/* Validation status */
.brat-modal .validation-status-error {
color: var(--text-error);
}
.brat-modal .validation-status {
margin-top: 0.5em;
margin-bottom: 0.5em;
font-size: 0.8em;
text-align: left;
}

View File

@@ -1,8 +1,8 @@
# Misc.
## ~まい
## まい
~まい is the opposition of the volitional form (よう). It means "will not".
まい is the opposition of the volitional form (よう). It means "will not".
Careful of two exceptions:
* する => すまい
@@ -12,7 +12,7 @@ Careful of two exceptions:
> この{川|かわ}は{危|あぶ}ないようだ。ここで{泳|およぐ}ぐ==まい==。
> This river seems dangerous. I won't swim here.
## ~得る・~得ない
## 得る・得ない
{得|え}る means "able to", "possible". Can be conjugated: えない, えた, えなかった.
Made by:

View File

@@ -79,7 +79,7 @@ Means "glad that".
## ているところ
Means "in the process/middle of doing". Can either talk about the exact moment or in general.
See also [[🔰 Grammar/Time#たところ]].
See also [[Time - recently#たところ]].
> [!info] Example
> {現在|げんざい}、{求職|きゅうしょく}し==ているところ==です。

View File

@@ -41,7 +41,7 @@ It is used as a condition: "if", "when", "whenever". Generally expresses a negat
> {授業|じゅぎょう}に{来|こ}なく==ては=={卒業|そつぎょう}できない。
> If you don't come to class, you will not be able to graduate.
## ては~ては
## てはては
Same structure as [[TeF (5) - Misc#ては・では]], this time only used with verbs. Means the repetition of an action or a phenomenon.
The verbs can be in the same order or not in the two part.

View File

@@ -1,10 +1,15 @@
---
title: Japanese Grammar
---
# Japanese Grammar
Welcome to my Japanese Grammar project!
## Goal
The goal of this website is to be a synthesis of useful resources for my Japanese learning adventure. I want to have grammar points next to each other, independently of any "difficulty level", set up in a logical and consistent form. I don't want to have to open 5 pages to compare information, and I don't want a deep dive into a notion. The goal is to be a reminder of the things I learn, rather than a way to learn. I want a few examples to grasp it, but I do not want to have ten of the same kind. And nothing quite fits for me!
The goal of this website is to be a synthesis of useful resources for my Japanese learning adventure. I want to have grammar points next to each other, independently of any "difficulty level", set up in a logical and consistent form. I don't want to have to open five pages to compare information, and I don't want a deep dive into a notion. The goal is to be a reminder of the things I learn, rather than a way to learn. I want a few examples to grasp it, but I do not want to have ten of the same kind. And nothing quite fits for me!
## Sources
@@ -13,10 +18,10 @@ Of course, since I'm _learning_ the language, I need to get inspired from differ
* [Bunpro](https://bunpro.jp/grammar_points)
* [JLPT Sensei](https://jlptsensei.com/#jlpt-grammar-lists)
* [Maggie Sensei](https://maggiesensei.com/)
* [Try! Series of books](https://ask-books.com/tag/try/)
* [Try! Series of books](https://ask-books.com/jlpt-try-prep/)
* [A Handbook of Japanese Grammar](https://www.9640.jp/nihongo/en/detail/?678)
* [Hedgehog Japanese](https://hedgehog-japanese.com/category/grammar/)
* [Wasabi](https://www.wasabi-jpn.com/category/japanese-grammar/)
* [Wasabi](https://wasabi-jpn.com/magazine/japanese-grammar/wasabis-online-japanese-grammar-reference/?lang=en)
* [Japanese StackExchange](https://japanese.stackexchange.com/)
* [Tofugu](https://www.tofugu.com)
* [Imabi](https://imabi.org/table-of-contents-%e7%9b%ae%e6%ac%a1/)

View File

@@ -22,7 +22,7 @@
</div>
</div>
{決|けっ}して~ない means "never". Used with negative verbs.
{決|けっ}してない means "never". Used with negative verbs.
> [!info] Examples
> 私は==決して=={夢|ゆめ}を{覚|おぼ}えません。

View File

@@ -65,7 +65,7 @@ Means "slightly", "only", "a little". Used at the beginning of a phrase to indic
</div>
</div>
Means "no matter how much". Also used as いくら~ても.
Means "no matter how much". Also used as いくらても.
> [!info] Example
> ==どんなに=={練習|れんしゅう}し==ても==、マラソンを{走|はし}れない。
@@ -190,7 +190,7 @@ Means "as much as possible". なるべく is a bit softer than できるだけ.
</div>
Means "so much... that".
Nominalized adjectives can be used as nouns. See [[Transformation#~さ adjective as noun]] and [[Transformation#~み adjective as noun]].
Nominalized adjectives can be used as nouns. See [[Transformation#さ adjective as noun]] and [[Transformation#み adjective as noun]].
> [!info] Example
> おいしさの==あまり==、このレストラン{毎日|まいにち}行きたい。
@@ -221,7 +221,7 @@ Means "so much... that". A version of あまり that can also be used with adjec
## Not at all
### ちっとも~ない
### ちっともない
Means "not at all". Has a nuance of perhaps happening once or twice. It is casual.
Used with a verb in the negative (ない) form.
@@ -230,7 +230,7 @@ Used with a verb in the negative (ない) form.
> ==ちっとも=={学校|がっこう}を{休|やす}まない。
> I never miss school.
### 少しも~ない
### 少しもない
<div class="usage">
<p class="iright">少しも + </p>
@@ -242,22 +242,22 @@ Used with a verb in the negative (ない) form.
</div>
</div>
{少|すこ}しも~ない means "not at all". Has a nuance of perhaps happening once or twice. Mostly used in writing.
{少|すこ}しもない means "not at all". Has a nuance of perhaps happening once or twice. Mostly used in writing.
> [!info] Example
> そのアパートは==少しも==大きくなかった。
> That appartment was really not big.
### 全く~ない
### 全くない
{全|まった}く~ない means "not at all". Has a nuance of absolutely never happening.
{全|まった}くない means "not at all". Has a nuance of absolutely never happening.
Used with a verb in the negative (ない) form.
> [!info] Example
> ==全く=={信|しん}じられない。
> That is absolutely unbelievable.
### として~ない
### としてない
Means "not at all". Has a nuance of absolutely never happening.
Insists more on the duration: "not even".

View File

@@ -74,8 +74,8 @@ It can also mean that the will to do is not present, especially with する.
### ようがない・ようもない
~{様|よう}がない means that there is no way, "impossible".
Works by removing ~ます from a verb and adding ようがない・ようもない.
{様|よう}がない means that there is no way, "impossible".
Works by removing ます from a verb and adding ようがない・ようもない.
The nuance it that it is impossible in general. With する, it can mean the same as わけがない, i.e. "I don't know how to".
> [!info] Example

View File

@@ -11,7 +11,7 @@ Those rules combine a verb and an adjective to make a new meaning.
## Difficulty
### ~やすい: easy
### やすい: easy
Means:
* easy to do
@@ -25,7 +25,7 @@ Means:
> {泣|な}き==やすい==。
> Prone to crying.
### ~にくい・~づらい: difficult
### にくい・づらい: difficult
Means that something is difficult to do.
While にくい is the broader form, づらい is used in a more subjective manner, for actions that are intentional.
@@ -36,14 +36,14 @@ While にくい is the broader form, づらい is used in a more subjective mann
### ~がたい: very difficult
~がたい means that something is very difficult to do.
It is more extreme than ~にくい.
がたい means that something is very difficult to do.
It is more extreme than にくい.
> [!info] Example
> それは{信|しん}じ==がたい==な。
> That's hard to believe...
## ~始める
## 始める
{始|はじ}める means that something starts or has started. Expresses intentionality.
@@ -51,7 +51,7 @@ It is more extreme than ~にくい.
> {飲|の}み==始める==。
> To start to drink.
## ~出す
## 出す
{出|だ}す means that something suddenly started. Has the nuance of being unintentional, or cannot be avoided.
@@ -59,7 +59,7 @@ It is more extreme than ~にくい.
> 雨が降り==出した==。
> It suddenly started raining.
## ~続く
## 続く
{続|つづ}く means that something continues.
@@ -67,7 +67,7 @@ It is more extreme than ~にくい.
> {飲|の}み==続ける==。
> To continue to drink.
## ~終わる
## 終わる
{終|お}わる means that something ends.
@@ -95,8 +95,8 @@ This can be used both as:
## ~切る・~切れる・~切れない
~{切|き}る means "to do completely" and ~切れる means "able to do completely".
The negative form ~切れない means "unable to do", "too much to complete".
{切|き}る means "to do completely" and 切れる means "able to do completely".
The negative form 切れない means "unable to do", "too much to complete".
It focuses on the end of the action rather than the process.
> [!info] Example
@@ -108,7 +108,7 @@ It focuses on the end of the action rather than the process.
## ~通す
~{通|とお}す means "to do something until the end", "continually" or "through". It focuses on the process of the action, rather than its ending.
{通|とお}す means "to do something until the end", "continually" or "through". It focuses on the process of the action, rather than its ending.
> [!info] Example
> マラソンの{全部|ぜんぶ}を{走|はし}り==通した==。
@@ -116,7 +116,7 @@ It focuses on the end of the action rather than the process.
## ~直す
~{直|なお}す means to do something again.
{直|なお}す means to do something again.
> [!info] Example
> {今年|ことし}をやり==直す==てほしい。
@@ -124,55 +124,55 @@ It focuses on the end of the action rather than the process.
## ~っぱなし
~っぱなし means leaving something as it is.
っぱなし means leaving something as it is.
> [!info] Example
> この13時間{飛行|ひこう}で{座|すわ}り==っぱなし==でした。
> I sat the entire time on this 13 hours flight.
## ~かねる
## かねる
~かねる means "unable to do", due to an external circumstance. It is polite.
かねる means "unable to do", due to an external circumstance. It is polite.
> [!info] Example
> ごめんなさい、それをでき==かねます==。
> I'm sorry, I cannot do that.
## ~っこない
## っこない
~っこない means that something is not possible.
っこない means that something is not possible.
> [!info] Example
> {全然|ぜんぜん}{勉強|べんきょう}しなかった。。。{合格|ごうかく}し==っこない==よ。
> I did not study at all... There's no way I'll pass.
## ~抜く
## 抜く
~{抜|ぬ}く means to do something to the end, or completely. The nuance is that someone tried hard and has made an effort to achieve this result.
{抜|ぬ}く means to do something to the end, or completely. The nuance is that someone tried hard and has made an effort to achieve this result.
> [!info] Example
> それは{毎日|まいにち}やり==抜く=={無理|むり}ですよ。
> You cannot do this every day.
## ~給え
## 給え
~{給|たま}え is used for a light order. It is used by someone of higher rank to someone of lower rank.
{給|たま}え is used for a light order. It is used by someone of higher rank to someone of lower rank.
> [!info] Example
> ここに{座|すわ}り==給え==。
> Seat here.
## ~つつ(も)
## つつ(も)
~つつ means that something happens at the same time as another action. Adding も adds the meaning of "even": "even while doing".
つつ means that something happens at the same time as another action. Adding も adds the meaning of "even": "even while doing".
> [!info] Example
> 食べ==つつ==、飲みましょう。
> While eating, let's drink.
## ~つつある
## つつある
~つつある means that something is in an ongoing process or action, in a similar manner as てくる.
つつある means that something is in an ongoing process or action, in a similar manner as てくる.
> [!info] Example
> {雪|ゆき}が{降|ふ}り==つつある==。
@@ -180,7 +180,7 @@ It focuses on the end of the action rather than the process.
## ~込む
~{込|こ}む has multiple meanings depending on the verb. Sometimes it is idiomatic and so it cannot exactly be guessed. However, there are some broad categories.
{込|こ}む has multiple meanings depending on the verb. Sometimes it is idiomatic and so it cannot exactly be guessed. However, there are some broad categories.
⚠ Depending on the context, verbs can fall into multiple categories!

View File

@@ -3,7 +3,7 @@
## のに
Means "to do", "in order to".
See [[Connectors#のに#In order to]].
See [[Connectors#In order to]].
## ために

View File

@@ -21,7 +21,7 @@ Used with verbs and nouns.
## としても
Means "assuming", "even if". It has the same meaning as [[TeF (4) - even if#Even if ても・でも]], but bolder.
Means "assuming", "even if". It has the same meaning as [[TeF (4) - even if#Even if ても・でも|Even if: ても・でも]], but bolder.
> [!info] Example
> 私==としても==出来ます。

View File

@@ -54,7 +54,7 @@ Means "made from".
## のが「好き・上手・下手」
のが({好|すき}き・{上手|じょうず}・{下手|へた}) means "to (like/be good/be bad)" at an action.
のが{好|すき}き・{上手|じょうず}・{下手|へた} means "to like/be good/be bad" at an action.
Used with a verb in dictionary form.
> [!info] Example
@@ -98,7 +98,7 @@ Means that something is "full of" or "covered with" something undesirable.
<p class="right">+ で有名</p>
</div>
~で{有名|ゆうめい} means "famous for". Used to describe why people, places or things are famous.
で{有名|ゆうめい} means "famous for". Used to describe why people, places or things are famous.
> [!info] Example
> パリ==は==エッフェル{塔|とう}==で有名==です。

View File

@@ -145,7 +145,7 @@ It can be used to emphasize something when used at the end of a sentence.
> 言ってない==し==
> I never said that!
### やら~やら
### やらやら
<div class="usage">
<div class="left">

View File

@@ -2,7 +2,7 @@
## つい
Means "accidentally", "unintentionally". Can be combined with [[TeF (2) - manner of doing## てしまう・ちゃう・じゃう|てしまう]].
Means "accidentally", "unintentionally". Can be combined with [[TeF (2) - manner of doing#てしまう・ちゃう・じゃう|てしまう]].
> [!info] Example
> {歩|ある}きながら{携帯|けいたい}を見ていました、==つい=={誰|だれ}かとぶつきました。

View File

@@ -95,7 +95,7 @@ Used with a verb in the dictionary form.
### べきだ
Means "should do", "must do". Compared to the [[Obligation - なければ・ないと]] forms and 必ず, it has a nuance of being less universally logical. It is defined by the speaker's own logic.
Means "should do", "must do". Compared to the [[Obligation - must (not)]] forms and 必ず, it has a nuance of being less universally logical. It is defined by the speaker's own logic.
Used with verbs.
する can be used as するべき or すべき.

View File

@@ -16,7 +16,7 @@ This is the basic way to say "but".
> コンビニに行きました。==でも==、何も買わなかった。
> I went to the convenience store. But I didn't buy anything.
⚠ Do not confuse with [[TeF (4) - even if#Even if ても・でも]].
⚠ Do not confuse with [[TeF (4) - even if#Even if ても・でも|Even if: ても・でも]].
## しかし

View File

@@ -21,7 +21,7 @@ See [[Considering - for - as#にしても]].
<p class="right">+ って</p>
</div>
Means "even if", "even though". It has the same meaning as [[#て-form even if]].
Means "even if", "even though". It has the same meaning as [[#て-form even if|て-form: even if]].
> [!info] Example
> {今|いま}で行==ったって==、{間|ま}に{合|あ}わない。
@@ -38,7 +38,7 @@ Means "but still", "even so", "anyway".
## のに
Means "although", "even tough". Cannot be an hypothesis, must be a confirmed fact. This, it works with past tense.
See [[Connectors#のに#Even tough]].
See [[Connectors#Even tough]].
## くせに・くせして

View File

@@ -27,7 +27,7 @@ Used with nouns.
> ジュース==か何か=={飲|の}もうか。
> Shall we drink something like a juice?
## ようか~まいか
## ようかまいか
<div class="usage">
<div class="">

View File

@@ -131,7 +131,7 @@ Means "unless you do something".
> {運転|うんてん}{免許|めんきょ}を{持|も}った==ないことには=={運転|うんてん}できない。
> You can't drive unless you have a driving licence.
## にしろ~にしろ
## にしろにしろ
<div class="usage">
<div class="">
@@ -174,7 +174,7 @@ Means "unless you do something".
<p class="r">+ にしろ</p>
</div>
Means "whether... or". Can be used as にせろ~にせろ or にしても~にしても, which is more formal.
Means "whether... or". Can be used as にせろにせろ or にしてもにしても, which is more formal.
> [!info] Example
> {動物|どうぶつ}==にしろ=={植物|しょくぶつ}==にしろ==、その{物質|ぶっしつ}は{危険|きけん}です。

View File

@@ -19,7 +19,7 @@ Used with a verb in the past (た) form.
> スーパーに{行|い}った==かと思ったら==、{雪|ゆき}が{降|ふ}り{出|だ}した。
> Just as I went to the supermarket, it started snowing.
## か~ないかのうちに
## かないかのうちに
<div class="usage">
<div class="">
@@ -32,7 +32,7 @@ Used with a verb in the past (た) form.
<p class="r">+ か + のちに</p>
</div>
~ないかのうちに means "right after", "as soon as". It is formal.
ないかのうちに means "right after", "as soon as". It is formal.
> [!info] Examples
> {彼|かれ}は{電車|でんしゃ}が{駅|えき}に{着|つ}く==か=={着|つ}かない==かのうちに=={走|はし}り{始|はじ}めた。

View File

@@ -130,13 +130,13 @@ This indicates a time limit for the action, similar to "by".
<div class="">
<p><span class="box">N (time)</span></p>
</div>
<p class="r">+ ぶりに~する</p>
<p class="r">+ ぶりにする</p>
</div>
<div class="usage">
<div class="">
<p><span class="box">N (time)</span></p>
</div>
<p class="r">+ ぶり + の</p>
<p class="r">+ ぶり + の + </p>
<div class="">
<p><span class="box">N</span></p>
</div>

View File

@@ -9,7 +9,7 @@ V+こと => 食べること. The verbs are never conjugated.
> {音楽|おん|がく}を聞く==こと==が好きです。
> I like to listen to music (listening to music is something I like).
## ~さ: adjective as noun
## さ: adjective as noun
<div class="usage">
<div class="left">
@@ -28,7 +28,7 @@ This allows to transform an adjective into a noun (adjective nominalizer). Used
> やさし==さ==。
> Kindness.
## ~み: adjective as noun
## み: adjective as noun
<div class="usage">
<div class="left">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 128 KiB