Merge pull request #1 from patarapolw/blog

Blog
This commit is contained in:
Pacharapol Withayasakpunt authored and GitHub committed 2019-12-25 18:32:41 +07:00
commit 5ad7171ab7
154 files changed
+21085 -16120

No files matched your search

-2
View File
@@ -1,2 +0,0 @@
> 1%
last 2 versions
+9
View File
@@ -0,0 +1,9 @@
!**/.eslintrc*
node_modules
dist
*.svg
*.ico
*.json
*.md
*.log
*.lock
+42
View File
@@ -0,0 +1,42 @@
module.exports = {
env: {
browser: true,
es6: true,
node: true,
},
extends: [
'standard',
'plugin:vue/essential',
'@vue/standard',
'@vue/typescript',
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parser: 'vue-eslint-parser',
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
parser: '@typescript-eslint/parser',
},
plugins: [
'@typescript-eslint',
],
rules: {
'no-unused-vars': 0,
'no-useless-constructor': 0,
'no-cond-assign': 0,
'no-undef': 0,
'no-new': 0,
'quote-props': ['error', 'as-needed'],
'comma-dangle': ['error', 'always-multiline'],
semi: 'off',
'@typescript-eslint/semi': ['error', 'never'],
'@typescript-eslint/member-delimiter-style': ['error', {
multiline: {
delimiter: 'none',
},
}],
},
}
-1
View File
@@ -1 +0,0 @@
public/posts/* linguist-vendored
+2 -20
View File
@@ -1,21 +1,3 @@
.DS_Store
node_modules node_modules
/dist dist
.netlify
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
-1
View File
@@ -1 +0,0 @@
loglevel=error
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019 Pacharapol Withayasakpunt
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-5
View File
@@ -1,5 +0,0 @@
# 中文 Diary
Originally intended to post about 千字文, now about everything Chinese language, for a 泰国华人.
Created with <https://github.com/patarapolw/vue-blogify>
BIN
View File
Binary file not shown.
-10
View File
@@ -1,10 +0,0 @@
module.exports = {
"presets": [
[
"@vue/app",
{
"useBuiltIns": "entry"
}
]
]
}
-19
View File
@@ -1,19 +0,0 @@
title: 中文 Diary
tabs:
- name: 千字文
to: /tag/千字文
- name: 句子
to: /tag/句子
- name: 分类词汇
to: /tag/分类词汇
posts:
perPage: 5
author:
login: polvcode
avatar: 'https://en.gravatar.com/userimage/35152960/7140205ee2a71cbe54d3f2ac43c0370d.jpg?size=24'
link: https://polvcode.dev
about: false
external:
disqus: zhdiary
google:
analytics: UA-146246917-1
+5
View File
@@ -0,0 +1,5 @@
{
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true
}
-13095
View File
File diff suppressed because it is too large. Load diff
+25 -54
View File
@@ -1,60 +1,31 @@
{ {
"name": "vue-blogify", "name": "zhdiary",
"version": "0.1.0", "version": "1.0.0",
"main": "index.js",
"repository": "https://github.com/patarapolw/zhdiary.git",
"author": "<patarapolw@gmail.com>",
"license": "MIT",
"private": true, "private": true,
"types": "src/declaration.d.ts", "workspaces": [
"scripts": { "packages/*"
"dev": "vue-cli-service serve:async", ],
"build": "vue-cli-service build:async",
"test": "ts-mocha -p tsconfig.test.json src/**/*.spec.ts",
"deploy": "npm run build && gh-pages -d dist"
},
"dependencies": {
"@types/node": "^12.7.2",
"@types/uuid": "^3.4.5",
"bootstrap-vue": "^2.0.0-rc.19",
"core-js": "^2.6.5",
"esm": "^3.2.25",
"fast-glob": "^3.0.4",
"gray-matter": "^4.0.2",
"hyperpug": "^0.1.7",
"hyperscript": "^2.0.2",
"indented-filter": "^0.1.1",
"js-yaml": "^3.13.1",
"moment": "^2.24.0",
"q2filter": "^0.1.3",
"showdown": "^1.9.0",
"uuid": "^3.3.3",
"vue": "^2.6.10",
"vue-class-component": "^7.0.2",
"vue-disqus": "^3.0.5",
"vue-property-decorator": "^8.1.0",
"vue-router": "^3.0.3"
},
"devDependencies": { "devDependencies": {
"@babel/polyfill": "^7.4.4", "@typescript-eslint/eslint-plugin": "^2.12.0",
"@types/expect": "^1.20.4", "@typescript-eslint/parser": "^2.12.0",
"@types/mocha": "^5.2.7", "@vue/eslint-config-standard": "^5.0.1",
"@vue/cli-plugin-babel": "^3.10.0", "@vue/eslint-config-typescript": "^5.0.1",
"@vue/cli-plugin-typescript": "^3.10.0", "eslint": ">=6.2.2",
"@vue/cli-service": "^3.10.0", "eslint-config-standard": "^14.1.0",
"bootstrap": "^4.3.1", "eslint-plugin-import": ">=2.18.0",
"husky": "^3.0.4", "eslint-plugin-node": ">=9.1.0",
"mocha": "^6.2.0", "eslint-plugin-promise": ">=4.2.1",
"mutationobserver-shim": "^0.3.3", "eslint-plugin-standard": ">=4.0.0",
"node-sass": "^4.12.0", "eslint-plugin-vue": "^6.0.1",
"popper.js": "^1.15.0", "lerna": "^3.19.0",
"portal-vue": "^2.1.4", "typescript": "^3.7.4",
"sass-loader": "^7.1.0", "vue-eslint-parser": "^7.0.0"
"ts-mocha": "^6.0.0",
"typescript": "^3.4.3",
"vue-cli-plugin-bootstrap-vue": "^0.4.0",
"vue-cli-plugin-pug": "^1.0.7",
"vue-template-compiler": "^2.6.10"
}, },
"vuePlugins": { "scripts": {
"service": [ "lint": "eslint ."
"vue.async.config.js"
]
} }
} }
+13
View File
@@ -0,0 +1,13 @@
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
+92
View File
@@ -0,0 +1,92 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
/logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# Nuxt generate
dist
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless
# IDE / Editor
.idea
# Service worker
sw.*
# Mac OSX
.DS_Store
# Vim swap files
*.swp
static/build/
+22
View File
@@ -0,0 +1,22 @@
# ZhDiary
> My journey to Chinese language
## Build Setup
``` bash
# install dependencies
$ yarn install
# serve with hot reload at localhost:3000
$ yarn dev
# build for production and launch server
$ yarn build
$ yarn start
# generate static project
$ yarn generate
```
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
+57
View File
@@ -0,0 +1,57 @@
@import "./spacing.scss";
p:not([class*="title"]) {
margin-bottom: 1em;
}
pre {
padding: 0;
}
.card {
border-radius: 4px;
}
iframe {
max-height: unset;
}
.noscroll {
overflow: -moz-scrollbars-none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
width: 0 !important;
}
}
.blog-post {
word-break: break-word;
}
.hanzi-img {
width: 100px;
height: 100px;
text-align: center;
font-size: 80px;
margin-bottom: 10px;
font-family: serif;
}
.speak {
background: none !important;
border: none;
padding: 0 !important;
cursor: pointer;
font-family: arial, sans-serif;
color: blue;
text-decoration: underline;
}
details {
margin-bottom: 1em;
}
.d-inline-block {
display: inline-block;
}
+51
View File
@@ -0,0 +1,51 @@
declare global {
interface Window {
speak(s: string, lang?: string): void
}
}
export function speak (s: string, lang?: string) {
lang = lang || 'zh-CN'
if (process.client) {
let trueLang = ''
const voices = speechSynthesis.getVoices()
const [la1, la2] = lang.split(/-_/)
if (la2) {
const langRegex = new RegExp(`${la1}[-_]${la2}`, 'i')
const matchedLang = voices.filter((v) => langRegex.test(v.lang))
if (matchedLang.length > 0) {
trueLang = matchedLang.sort((v1, v2) => v1.localService
? -1 : v2.localService ? 1 : 0)[0].lang
}
}
if (!trueLang) {
const langRegex = new RegExp(`^${la1}`, 'i')
const matchedLang = voices.filter((v) => langRegex.test(v.lang))
if (matchedLang.length > 0) {
trueLang = matchedLang.sort((v1, v2) => v1.localService
? -1 : v2.localService ? 1 : 0)[0].lang
}
}
if (trueLang) {
const u = new SpeechSynthesisUtterance(s)
u.lang = trueLang
speechSynthesis.speak(u)
}
}
}
if (process.client) {
window.speak = speak
document.body.addEventListener('keydown', (evt) => {
if (evt.code === 'KeyS') {
const s = getSelection()
if (s) {
speak(s.toString())
}
}
})
}
+135
View File
@@ -0,0 +1,135 @@
import qs from 'querystring'
import showdown from 'showdown'
import { IHyperPugFilters } from 'hyperpug'
import h from 'hyperscript'
import { createIndentedFilter } from 'indented-filter'
// @ts-ignore
import scopeCss from 'scope-css'
import cheerio from 'cheerio'
export default class MakeHtml {
pugExtensions: IHyperPugFilters
mdExtensions: Record<string, showdown.ShowdownExtension>
mdConverter: showdown.Converter
constructor () {
this.pugExtensions = {}
this.mdExtensions = {
simpleTable: {
type: 'lang',
filter (text) {
const rowRegex = /(?:(?:^|\r?\n)(?:\| )?(?:(?:.* \| )+.+)*(?:.* \| )+.+(?: \|)?(?:$|\r?\n))+/m
text = text.replace(rowRegex, (p0) => {
return h('table.table', p0.trim().split('\n').map((pi) => {
pi = pi.trim().replace(/^|/, '').replace(/|$/, '')
return h('tr', pi.split(' | ').map(x => x.trim()).map((qi) => {
return h('td', qi)
}))
})).outerHTML
})
return text
},
},
pug: {
type: 'lang',
filter: (s) => {
return s.replace(/\/\/ nuxt\n```pug\n([^]+?)\n```/g, (p0: string, p1: string) => {
if (process.client) {
return require('hyperpug').compile({ filters: this.pugExtensions })(p1)
} else {
return ''
}
})
},
},
css: {
type: 'lang',
filter: (s) => {
return s.replace(/\/\/ nuxt\n```css\n([^]+?)\n```/g, (p0: string, p1: string) => {
return h('style', {
attrs: {
'data-content': p1,
},
}).outerHTML
})
},
},
to: {
type: 'lang',
filter: createIndentedFilter('^^to', (s, attrs) => {
return h('a', { href: attrs.url }, s).outerHTML
}),
},
spoiler: {
type: 'lang',
filter: createIndentedFilter('^^spoiler', (s, attrs) => {
return h('details', [
...(attrs.summary ? [
h('summary', attrs.summary),
] : []),
h('div', s),
]).outerHTML
}),
},
speak: {
type: 'lang',
filter: createIndentedFilter('^^speak', (s, attrs) => {
return h('button.speak', {
attrs: {
type: 'button',
onclick: `speak('${attrs.s || s}', ${attrs.lang || ''})`,
},
}, s).outerHTML
}),
},
slide: {
type: 'lang',
filter: createIndentedFilter('^^slide', (s, attrs) => {
return h('a', {
href: `https://patarapolw.github.io/reveal-md/reveal/?${qs.stringify({
q: (() => {
let q = s
if (attrs.github) {
q = `https://raw.githubusercontent.com/${attrs.github}/master/${s}`
}
return q
})(),
})}`,
}, s).outerHTML
}),
},
}
this.mdConverter = new showdown.Converter()
this.mdConverter.setFlavor('github')
this.pugExtensions.markdown = (s) => {
return this.mdConverter.makeHtml(s)
}
Object.entries(this.mdExtensions).forEach(([k, ext]) => this.mdConverter.addExtension(ext, k))
}
parse (s: string) {
const html = this.mdConverter.makeHtml(s)
return this.finalize(html)
}
mdConvert = this.parse
pugConvert (s: string) {
const html = process.client ? require('hyperpug').compile({ filters: this.pugExtensions })(s) : ''
return this.finalize(html)
}
finalize (s: string) {
const $ = cheerio.load(s)
$('style').each((_, el) => {
const $el = $(el)
const content = $el.attr('data-content')
if (content) {
$el.html(scopeCss(content, '.make-html-scoped'))
}
})
return $.html()
}
}
export const makeHtml = new MakeHtml()
+51
View File
@@ -0,0 +1,51 @@
$sizeUnit: rem;
$marginKey: "m";
$paddingKey: "p";
$separator: "-";
$sizes: (("0", 0), ("xxs", 0.125), ("xs", 0.25), ("sm", 0.5), ("md", 1), ("lg", 2), ("xl", 4), ("xxl", 8));
$positions: (("t", "top"), ("r", "right"), ("b", "bottom"), ("l", "left"), ("x", "x"), ("y", "y"), ("a", "around"));
@function sizeValue($key, $value) {
@return if($key == "0", 0, $value + $sizeUnit);
}
@each $size in $sizes {
$sizeKey: nth($size, 1);
$sizeValue: nth($size, 2);
.#{$marginKey}#{$separator}#{$sizeKey} {
margin: sizeValue($sizeKey, $sizeValue);
}
.#{$paddingKey}#{$separator}#{$sizeKey} {
padding: sizeValue($sizeKey, $sizeValue);
}
@each $position in $positions {
$posKey: nth($position, 1);
$posValue: nth($position, 2);
.#{$marginKey}#{$posKey}#{$separator}#{$sizeKey} {
@if $posValue == "x" {
margin-left: sizeValue($sizeKey, $sizeValue);
margin-right: sizeValue($sizeKey, $sizeValue);
} @else if $posValue == "y" {
margin-top: sizeValue($sizeKey, $sizeValue);
margin-bottom: sizeValue($sizeKey, $sizeValue);
} @else if $posValue == "around" {
margin: sizeValue($sizeKey, $sizeValue);
} @else {
margin-#{$posValue}: sizeValue($sizeKey, $sizeValue);
}
}
.#{$paddingKey}#{$posKey}#{$separator}#{$sizeKey} {
@if $posValue == "x" {
padding-left: sizeValue($sizeKey, $sizeValue);
padding-right: sizeValue($sizeKey, $sizeValue);
} @else if $posValue == "y" {
padding-top: sizeValue($sizeKey, $sizeValue);
padding-bottom: sizeValue($sizeKey, $sizeValue);
} @else if $posValue == "around" {
padding: sizeValue($sizeKey, $sizeValue);
} @else {
padding-#{$posValue}: sizeValue($sizeKey, $sizeValue);
}
}
}
}
+68
View File
@@ -0,0 +1,68 @@
import QParser from 'q2filter'
export const TAGS = JSON.parse(process.env.tags!)
export const HASH = JSON.parse(process.env.hash!)
export function escapeRegExp (s: string) {
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
}
export function normalizeArray<T> (it: T | T[]): T | undefined {
if (Array.isArray(it)) {
return it[0]
}
return it
}
export function searchPosts (options: {
q?: any
isBlog?: boolean
current?: boolean
posts: any[]
}) {
let posts: any[] = options.posts
if (options.isBlog) {
posts = posts.filter((p) => p.path.startsWith('blog/'))
}
if (options.current) {
const now = new Date().toISOString()
posts = posts.filter((h) => h.date && h.date <= now)
}
const parser = new QParser(options.q || {}, {
isString: ['title', 'author', 'tag'],
isDate: ['date'],
filters: {
'is:reversed': (items) => {
return items.reverse()
},
},
sortBy: {
key: 'date',
desc: true,
},
})
return parser.parse(posts)
}
export async function apiHash (u: string, h: string): Promise<string> {
if (typeof location !== 'undefined') {
const url = new URL(u, location.origin)
url.searchParams.set('h', h)
return fetch(url.href, {
mode: 'no-cors',
}).then((r) => r.text())
} else {
if (/\.json$/i.test(u)) {
const req = (require as any).context('@/static', true, /\.json$/i)
return JSON.stringify(req(`.${u}`))
} else {
const req = (require as any).context('@/static', true, /\.(html?|md|txt|ya?ml)$/i)
return req(`.${u}`).default
}
}
}
+10
View File
@@ -0,0 +1,10 @@
<template lang="pug">
.container.m-md
h4.title.is-4 Sorry, but no post can be found.
</template>
<script lang="ts">
import { Vue } from 'nuxt-property-decorator'
export default Vue.extend()
</script>
+80
View File
@@ -0,0 +1,80 @@
<template lang="pug">
section
.blog-post(v-if="header.path")
.card.my-lg
.card-content.content
post-header(:header="header")
h1.title {{header.title}}
.image-full(v-if="header.image")
img(:src="header.image")
div(v-html="html")
div(style="word-break: break-word")
span.mr-sm Tags:
span.mr-sm(v-for="t in header.tag || []" :key="t")
a(:href="$router.resolve('/tag/' + t).href") {{t}}
.card.my-lg
.card-content
vue-disqus(v-if="disqus" :shortname="disqus" :identifier="$route.path")
empty(v-else)
</template>
<script lang="ts">
import PostHeader from './PostHeader.vue'
import Empty from './Empty.vue'
import { Vue, Component, Prop, Watch } from 'nuxt-property-decorator'
import { makeHtml } from '../assets/make-html'
import { HASH } from '../assets/util'
@Component({
components: {
PostHeader,
Empty,
},
})
export default class PostFull extends Vue {
@Prop({ required: true }) header!: any
markdown = this.header.teaser || ''
disqus = 'zhdiary'
mounted () {
this.updatePost()
}
@Watch('header.path')
async updatePost () {
if (!this.markdown) {
this.markdown = await fetch(`/build/teaser/${this.header.path}?h=${HASH.posts[this.header.path]}`).then((r) => r.text())
}
this.markdown = await fetch(`/build/full/${this.header.path}?h=${HASH.posts[this.header.path]}`).then((r) => r.text())
}
get html () {
return makeHtml.parse(this.markdown || '')
}
}
</script>
<style lang="scss">
.image-full {
text-align: center;
margin: 1rem;
img {
min-width: 500px;
width: auto;
}
}
@media only screen and (max-width: 800px) {
.image-full {
margin-left: -1.5rem;
margin-right: -1.5rem;
img {
min-width: unset;
width: auto;
}
}
}
</style>
+53
View File
@@ -0,0 +1,53 @@
<template lang="pug">
.post-meta.mb-sm
.post-meta-author
a.mr-md(:href="author.link" style="width: 24px; min-width: 24px"): img(:src="author.avatar" style="border-radius: 50%;")
a.mr-md(:href="author.link") {{author.login}}
div(style="flex-grow: 1")
div {{dateString}}
</template>
<script lang="ts">
import moment, { Moment } from 'moment'
import { Vue, Component, Prop } from 'nuxt-property-decorator'
@Component
export default class PostHeader extends Vue {
@Prop({ required: true }) header!: any
author = {
login: 'polvcode',
avatar: 'https://en.gravatar.com/userimage/35152960/7140205ee2a71cbe54d3f2ac43c0370d.jpg?size=24',
link: 'https://polvcode.dev',
}
get moment () {
return this.header.date ? moment(this.header.date) : null
}
get dateString () {
return this.moment ? this.moment.format('ddd D MMMM YYYY') : ''
}
}
</script>
<style lang="scss">
.post-meta {
display: flex;
flex-direction: row;
white-space: nowrap;
overflow: auto;
.post-meta-author {
display: flex;
flex-direction: row;
white-space: nowrap;
justify-content: center;
a {
border: none;
display: block;
}
}
}
</style>
+87
View File
@@ -0,0 +1,87 @@
<template lang="pug">
section
section.m-lg(v-if="tag")
h2.title.is-2
span.mr-sm Tag:
span(style="font-weight: 400") {{tag}}
section(v-if="posts && posts.length > 0")
post-teaser(v-for="p in posts" :header="p" :key="p.name")
b-pagination.my-lg.mx-sm(:current.sync="page" :total="count" :per-page="perPage"
icon-prev="caret-left" icon-next="caret-right" size="default" rounded)
div(v-else-if="posts")
empty
div(v-else)
</template>
<script lang="ts">
import PostTeaser from './PostTeaser.vue'
import Empty from './Empty.vue'
import QParser from 'q2filter'
import { normalizeArray, searchPosts, HASH } from '@/assets/util'
import { Vue, Component, Prop, Watch } from 'nuxt-property-decorator'
@Component({
components: {
PostTeaser,
Empty,
},
})
export default class PostQuery extends Vue {
@Prop({ default: '' }) q!: string
@Prop({ default: '' }) tag!: string
@Prop({ required: true }) defaults!: {
count: number
posts: any[]
}
count = this.defaults.count
posts: any[] = this.defaults.posts
perPage = 5
get page () {
return parseInt(normalizeArray(this.$route.query.page) || '1')
}
set page (p) {
const { page, ...query } = this.$route.query
if (p === 1) {
this.$router.push({ query })
} else {
this.$router.push({
query: {
...query,
page: p.toString(),
},
})
}
}
mounted () {
this.updatePosts()
}
@Watch('page')
@Watch('q')
@Watch('tag')
async updatePosts () {
const ps = await Promise.all(searchPosts({
q: this.tag ? {
tag: this.tag,
} : this.q,
current: true,
posts: await fetch(`/build/header/posts.json?h=${HASH.posts._header}`).then((r) => r.json()),
}).map(async (h) => {
if (!h.teaser) {
h.teaser = await fetch(`/build/teaser/${h.path}?h=${HASH.posts[h.path]}`).then((r) => r.text())
}
return h
}))
this.count = ps.length
this.posts = ps.filter((p, i) => {
const iPage = i / this.perPage
return iPage >= this.page - 1 && iPage < this.page
})
}
}
</script>
+86
View File
@@ -0,0 +1,86 @@
<template lang="pug">
.card.my-lg.blog-post
.card-content
post-header(:header="header")
.post-content
.image-teaser(v-if="header.image")
img(:src="header.image")
h2.title {{header.title}}
.content(v-html="html")
div(style="display: flex; justify-content: flex-end")
b-button(type="is-danger" outlined @click="openPostUrl") Read more
</template>
<script lang="ts">
import PostHeader from './PostHeader.vue'
import { Vue, Component, Prop } from 'nuxt-property-decorator'
import { makeHtml } from '../assets/make-html'
import { HASH } from '../assets/util'
@Component({
components: {
PostHeader,
},
})
export default class PostTeaser extends Vue {
@Prop({ required: true }) header!: any
teaser: string = this.header.teaser || ''
async mounted () {
if (!this.teaser) {
this.teaser = await fetch(`/build/teaser/${this.header.path}.html?h=${HASH.posts[this.header.path]}`)
.then((r) => r.text())
}
}
get html () {
return makeHtml.parse(this.teaser)
}
openPostUrl () {
if (this.header.name) {
if (this.header.y && this.header.mo) {
this.$router.push(`/post/${this.header.y}/${this.header.mo}/${this.header.name}`)
} else {
this.$router.push(`/post/${this.header.name}`)
}
}
}
}
</script>
<style lang="scss">
.content {
width: 100%;
margin: 0;
max-width: 80vw;
}
.post-content {
width: 100%;
overflow: visible;
}
.image-teaser {
width: calc(100% + 3rem);
margin-top: 1rem;
margin-bottom: 1rem;
margin-left: -1.5rem;
margin-right: -1.5rem;
}
@media only screen and (min-width: 800px) {
.image-teaser {
width: 100%;
max-width: 300px;
max-height: 300px;
float: right;
margin: 1rem;
}
.post-content {
overflow: auto;
}
}
</style>
+7
View File
@@ -0,0 +1,7 @@
# COMPONENTS
**This directory is not required, you can delete it if you don't want to use it.**
The components directory contains your Vue.js Components.
_Nuxt.js doesn't supercharge these components._
@@ -8,32 +8,32 @@ tag:
--- ---
1 1
^^to(url="/p" filename="public/posts/2019/08/千字文1.1.pug") 天地玄黃,宇宙洪荒。 ^^to(url="/post/千字文1.1") 天地玄黃,宇宙洪荒。
^^to(url="/p" filename="public/posts/2019/08/千字文1.2.pug") 日月盈昃,辰宿列張。 ^^to(url="/post/千字文1.2") 日月盈昃,辰宿列張。
^^to(url="/p" filename="public/posts/2019/08/千字文1.3.pug") 寒來暑往,秋收冬藏。 ^^to(url="/post/千字文1.3") 寒來暑往,秋收冬藏。
^^to(url="/p" filename="public/posts/2019/08/千字文1.4.pug") 閏餘成歲,律呂調陽。 ^^to(url="/post/千字文1.4") 閏餘成歲,律呂調陽。
^^to(url="/p" filename="public/posts/2019/08/千字文1.5.pug") 雲騰致雨,露結為霜。 ^^to(url="/post/千字文1.5") 雲騰致雨,露結為霜。
^^to(url="/p" filename="public/posts/2019/08/千字文1.6.pug") 金生麗水,玉出崑岡。 ^^to(url="/post/千字文1.6") 金生麗水,玉出崑岡。
^^to(url="/p" filename="public/posts/2019/08/千字文1.7.pug") 劍號巨闕,珠稱夜光。 ^^to(url="/post/千字文1.7") 劍號巨闕,珠稱夜光。
^^to(url="/p" filename="public/posts/2019/08/千字文1.8.pug") 果珍李柰,菜重芥薑。 ^^to(url="/post/千字文1.8") 果珍李柰,菜重芥薑。
^^to(url="/p" filename="public/posts/2019/08/千字文1.9.pug") 海咸河淡,鱗潛羽翔。 ^^to(url="/post/千字文1.9") 海咸河淡,鱗潛羽翔。
2 2
^^to(url="/p" filename="public/posts/2019/08/千字文2.1.pug") 龍師火帝,鳥官人皇。 ^^to(url="/post/千字文2.1") 龍師火帝,鳥官人皇。
^^to(url="/p" filename="public/posts/2019/08/千字文2.2.pug") 始制文字,乃服衣裳。 ^^to(url="/post/千字文2.2") 始制文字,乃服衣裳。
^^to(url="/p" filename="public/posts/2019/08/千字文2.3.pug") 推位讓國,有虞陶唐。 ^^to(url="/post/千字文2.3") 推位讓國,有虞陶唐。
^^to(url="/p" filename="public/posts/2019/08/千字文2.4.pug") 弔民伐罪,周發殷湯。 ^^to(url="/post/千字文2.4") 弔民伐罪,周發殷湯。
^^to(url="/p" filename="public/posts/2019/08/千字文2.5.pug") 坐朝問道,垂拱平章。 ^^to(url="/post/千字文2.5") 坐朝問道,垂拱平章。
^^to(url="/p" filename="public/posts/2019/08/千字文2.6.pug") 愛育黎首,臣伏戎羌。 ^^to(url="/post/千字文2.6") 愛育黎首,臣伏戎羌。
^^to(url="/p" filename="public/posts/2019/09/千字文2.7.pug") 遐邇一體,率賓歸王。 ^^to(url="/post/千字文2.7") 遐邇一體,率賓歸王。
^^to(url="/p" filename="public/posts/2019/09/千字文2.8.pug") 鳴鳳在竹,白駒食場。 ^^to(url="/post/千字文2.8") 鳴鳳在竹,白駒食場。
^^to(url="/p" filename="public/posts/2019/09/千字文2.9.pug") 化被草木,賴及萬方。 ^^to(url="/post/千字文2.9") 化被草木,賴及萬方。
=== ===
3 3
^^to(url="/p" filename="public/posts/2019/09/千字文3.1.pug") 蓋此身髮,四大五常。 ^^to(url="/post/千字文3.1") 蓋此身髮,四大五常。
^^to(url="/p" filename="public/posts/2019/09/千字文3.2.pug") 恭惟鞠養,豈敢毀傷。 ^^to(url="/post/千字文3.2") 恭惟鞠養,豈敢毀傷。
^^to(url="/p" filename="public/posts/2019/09/千字文3.3.pug") 女慕貞絜,男效才良。 ^^to(url="/post/千字文3.3") 女慕貞絜,男效才良。
知過必改,得能莫忘。 知過必改,得能莫忘。
罔談彼短,靡恃己長。 罔談彼短,靡恃己長。
信使可覆,器欲難量。 信使可覆,器欲難量。
@@ -0,0 +1,50 @@
---
title: "身体1"
date: "2019-08-18 01:00"
tag:
- 分类词汇
- 身体
---
From <https://www.yellowbridge.com/chinese/listsearch.php?listID=44>
### Sentence quiz
Please see ^^slide(github="patarapolw/zh-slides") slides/身体1.md
Highlight text and press "x" inside the presentation to speak.
===
// nuxt
```css
table td:first-child {
width: 4em;
}
```
胳膊 | gēbo | arm
手膀 | shǒubǎng | arm
肚子 | dùzi | belly; abdomen; stomach
臀部 | túnbù | butt; buttocks
胸部 | xiōngbù | chest; bosom
手肘 | shǒuzhǒu | elbow
脸 | liǎn | face
手指 | shǒuzhǐ | finger
指甲 | zhǐjia | fingernail
脚 | jiǎo | foot; leg (of an animal or an object); base (of an object); measure word for kicks
头发 | tóufa | hair (on the head)
手 | shǒu | hand; (formal) to hold; person engaged in certain types of work; person skilled in certain types of work; personal(ly); convenient; measure word for skill
头 | tóu | head; hair style; the top; end; beginning or end; a stub; remnant; chief; boss; side; aspect; first; leading; measure word for pigs or livestock
膝盖 | xīgài | knee
腿 | tuǐ | leg
脖子 | bózi | neck
颈项 | jǐngxiàng | neck
肩头 | jiāntóu | on one's shoulders; (dialect) shoulder
手掌 | shǒuzhǎng | palm
肩膀 | jiānbǎng | shoulder
皮肤 | pífū | skin
大腿 | dàtuǐ | thigh
喉咙 | hóulóng | throat; larynx
脚趾 | jiǎozhǐ | toe
腰 | yāo | waist; lower back; pocket; middle; loins
腕 | wàn | wrist; (squid, starfish etc) arm
@@ -0,0 +1,10 @@
---
title: "Learning Chinese using Git -- ZhLab"
date: "2019-09-25"
tag:
- diary
---
Apparently, yesterday, I made a Chinese learning resources, aggregated from various textbooks. I plan to make it mostly in JSON format (see ^^to(url="/resources") /resources^^), for easy computerized parsing. I am a tech guy after all.
I also move the contents from <https://zhdiary.now.sh> and <https://patarapolw.github.io/zh-slides> to here.
@@ -0,0 +1,9 @@
---
title: "Fruit and vegetables quiz"
date: "2019-09-30"
image: https://images.chinatimes.com/newsphoto/2018-12-31/900/20181231000035.jpg
tag:
- quiz
---
See ^^to(url="/quiz" filename="vocab/chinese/2019-09-30-fruit.md") /quiz/vocab/chinese/2019-09-30-fruit.md^^
@@ -0,0 +1,10 @@
---
title: "Move to new URL notice"
date: "2019-10-07"
tag:
- diary
---
I have moved to <https://zhsrs.herokuapp.com>, to utilize a database (MongoDB), and possibly create User Management and Quizzes in the future. Also, to handle even more posts and resources.
I will try to keep the same layout, though.
@@ -0,0 +1,71 @@
---
title: "Chinese from Emoji 1: 学习用品"
date: 2019-11-26
image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
tag:
- vocab
- emoji
- quiz
---
Try listening to these vocabs.
✂️🎒✏️📎☄️🖊🖋🖍
===
^^speak(s="剪刀") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQf9uthRjSCBLUdXAk5PWXQtSYMfDy1nAXi0MhUQ3b6mpuE9dsa)
剪刀 ✂️ jian3 dao1
^^speak(s="书包") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSOg4oFnt_XOu-pv7ifeylTOmeXx3hp1HuTFjJrjdU6yXD_L2iT)
书包 🎒 shu1 bao1
^^speak(s="铅笔") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSeqRVWLP5izO4nSbY3wZdv0OhKLYGfLO7H2O5nLze-exV2I-JS)
铅笔 ✏️ qian1 bi3
^^speak(s="回形针") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcR3gTlL-qNz806EZhxPoUBgaStj76t001FWfaveOzOm3XeG4H3L)
回形针 📎 hui2 xing2 zhen1
^^speak(s="彗星") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSTWldBLoIHxPTX8CWrohliKP0XC5pvcHBMTBOuO1WtDwWiLKkJ)
彗星 ☄️ hui4 xing1
^^speak(s="圆珠笔") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRbBTS8Vo0niJ-RFbnsziApFkMsFhrRUSW4eFVQBVWBadFv0Vza)
圆珠笔 🖊 yuan2 zhu1 bi3
^^speak(s="钢笔") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSOlTjB-VNBuE_gXJmmZO1D4NqF7UFfYkmALF4qU13wsLsyZ2QR)
钢笔 🖋 gang1 bi3
^^speak(s="蜡笔") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSxSSPteWMVd_5D0gq6qcPWQP3NP7zj0wLKF36rS87WjRQRRDSE)
蜡笔 🖍 la4 bi3
@@ -0,0 +1,227 @@
---
title: "Chinese from Emoji 2: 陆地动物"
date: 2019-11-27
image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
tag:
- vocab
- emoji
- quiz
---
Try listening to these vocabs.
🐇🐿🦌🐑🐔🦃🐃🦇🦘🐘🐐🐎🦓🦔🐱🦒
🦏🐒🐂🦁🐅🐆🐭🦊🐺🐻🐼🐖🐷🐗🦛
===
^^speak(s="兔子") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTgZKETKZReclztnr36eg9hkCmk44_dxt_EqYC8gmztCr9GSJfX)
兔子 🐇
^^speak(s="松鼠") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcShluTpNrtAejxR6NYhfBqht_G267WQrGquhCSLI4IMpRgtj9wn)
松鼠 🐿
^^speak(s="鹿") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQu_HYQcGWWlj5sS_BAMGv_o8sfIXRMK7RkJC5LGi6nZNv8MjVE)
鹿 🦌
^^speak(s="羊") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQQnXst55ZhokBJVwHm1G9V6VCoOCfLF00IpVFEkuvANf0jRWcS)
羊 🐑
^^speak(s="鸡") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQIQAJUvcKUbDVr0SRrbpgyd40UPBxulx8CFfPQ_xW1x45MvFI8)
鸡 🐔
^^speak(s="火鸡") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQPVfoez-UNLKH0lMy7IeZwkZjw9L4e5rXdRaiMSVVyDxl1ZlaX)
火鸡 🦃
^^speak(s="水牛") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSJ7UiOM8Vb4T5P6rWwB9MeYp-EPdOYzjFdTOZUEPaHE12kSxa3)
水牛 🐃
^^speak(s="蝙蝠") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRAO2I0WYHlTtu83tBnRePDTkQaYfckAKvp0HbQ7cBtE96znb9I)
蝙蝠 🦇
^^speak(s="袋鼠") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRK6TALcxKbqbYMM4CFzUiQ8BWINhJlqSta8YzpdzL_P5pB2am3)
袋鼠 🦘
^^speak(s="象") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQFFZlzsqqSRxshSH2NNfunJ54cRUjwRGRUIUNxyGk1Yx6_I7IX)
象 🐘
^^speak(s="山羊") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTwjBRu7ckuHFa29OI6HW_EYrS_nhF1xyJtWtLq_EIgCdOtARds)
山羊 🐐
^^speak(s="马") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcThaRUqPBUstqBofBZ_Ob7_elvM5tXJNkWBzFMGdSTyV12cPhGM)
马 🐎
^^speak(s="斑马") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQT5b7zaj4Z7B7V3dZ5lGrizvghIILbUsvYyxM_hda4wqAkjYsz)
斑马 🦓
^^speak(s="刺猬") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRCa0wRYh7ojUwEPaNF2kO7AV48DIaNZog2ve5tdMa2VRfEAQ59)
刺猬 🦔
^^speak(s="猫") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTH6HxArpzIWYQS0fcDadxydvn_PDoLc-LXyM2JKevuxYkZIJmP)
猫 🐱
^^speak(s="长颈鹿") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTmNU2_Fxud_jtTGv1dTagn1y_EiKVAXYLE4r1oCnCC_gro7kJG)
长颈鹿 🦒
^^speak(s="犀牛") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRXJC-RjvLoCa6XLaMO_ECsgwIHHmcsDfQ2ZDQyj0xqcsiR7jeK)
犀牛 🦏
^^speak(s="猴子") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTfWUPBNsNz4bqM6fzXSHa4RiB3vZPQMSIuyQPR9gzuwSSA87p_)
猴子 🐒
^^speak(s="牛") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRgFMVM5-iSb6YIygRLmw1Vf0JT-NGuUfMMRFB7lnRaSlX4NGH-)
牛 🐂
^^speak(s="狮子") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRSNEDrptbNevVztyPoBYHe9JGwlQkGbywo9TNyzO-w0iqCAiNu)
狮子 🦁
^^speak(s="老虎") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRpyopIPkZ_V2oe-812Hn4LOjyUUoDI--6EYoNmn2uhOcfzH-ir)
老虎 🐅
^^speak(s="豹") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcStdPdWDF3r-2qUGsOJNPHbEKU8ePX3ZOi-ZC433DaSrcSHNrHX)
豹 🐆
^^speak(s="鼠") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQsaBhrdV0XTlRUClE0yFD8oIh2nNskD5_dqYsW7Gz-7g0aNzVG)
鼠 🐭
^^speak(s="狐狸") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT--eJ4F1WQlPQKXO3fAhadFOur0E34Xmcts2Jnd7CKGiFQFKud)
狐狸 🦊
^^speak(s="狼") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSgbZu2ZhFI-eA36iUtq9F7-MXlxr2J7KoaeNCWIIXkiPlT2j2B)
狼 🐺
^^speak(s="熊") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT9n8v18VEh0az3_gO5_ze5juWRnhpWn011W5hIA0pJeIvHWOKs)
熊 🐻 (● ̄(エ) ̄●)
^^speak(s="熊猫") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTIYWdfN3O4BldibRn3Gba7SYNOkc1Jm8o7i1lSBS2JzKVjGwUI)
熊猫 🐼
^^speak(s="猪") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQEdwTapN_-twxh0F0ED31GIwOGpl58GAX7kdTr7-gnK_LwgCoS)
猪 🐖 🐷 ^(\* ̄(oo) ̄)^
^^speak(s="野猪") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQciGnncA1KUjyCt7lwfgWBKMEgDvU2yLhBiY5Xh1CG0VDTjbtp)
野猪 🐗
^^speak(s="河马") Click to speak
^^spoiler.
![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ_QP6_Dx9eb_U6V3nH3cF44sv2bd5oJqWEgWhO6vR0mvGscdZw)
河马 🦛
@@ -0,0 +1,12 @@
---
title: Moving to Netlify
date: 2019-11-25
tag:
- diary
---
After all, I am moving to Netlify, powered by [blog.nuxt](https://github.com/patarapolw/blog.nuxt), which is also for SEO purposes.
<https://medium.com/liferaydesign/netlify-vs-zeit-vs-github-pages-5f609dd6912b>
Also, Netlify is easier for a more complex setup (uses build script), just like Heroku; but [Netlify might load faster than Heroku for static pages](https://www.netlify.com/blog/2016/12/15/migrating-to-a-static-site-with-jamstack-netlify/).
@@ -0,0 +1,10 @@
---
title: Back to former glory
date: 2019-12-07
tag:
- vuetify
- resources
- slides
---
[Resources](/resources) and [Slides](/slides) are now browse-able again. Enjoy!
@@ -0,0 +1,131 @@
---
title: "Chinese from Emoji 3: 水生和昆虫"
date: 2019-12-08
image: https://steamuserimages-a.akamaihd.net/ugc/264973755082472713/B44953104F4F5FBB70205CCCD759E511C0E50E52/
tag:
- vocab
- emoji
- quiz
- animal
---
🐸🦞🐢🐬🐟🐳🕊🐚🦗🐞🦋🐝🐜🦂🕷🦟🐛
As well as, `(‧‧)nnn`
Don't forget -- this entire website is [Highlight text and press 's' to speak](https://patarapolw.github.io/s2speak/)
- Including [/resources](/resources) and [/slides](/slides)
===
^^speak 🐸
^^spoiler.
🐸
![](https://images.unsplash.com/photo-1502780402662-acc01c084a25?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80)
^^speak 🦞
^^spoiler.
🦞
![](https://i.ytimg.com/vi/hgrZIF1v7r4/maxresdefault.jpg)
^^speak 🐢
^^spoiler.
🐢
![](https://i.ytimg.com/vi/_YfYHFM3Das/maxresdefault.jpg)
^^speak 🐟
^^spoiler.
🐟
![](https://steamuserimages-a.akamaihd.net/ugc/264973755082472713/B44953104F4F5FBB70205CCCD759E511C0E50E52/)
^^speak 🐳
^^spoiler.
🐳
![](https://pm1.narvii.com/6449/9075e644781638c41e9f82aee4a2aaa852db0d3e_hq.jpg)
^^speak 🕊
^^spoiler.
🕊
![](https://previews.123rf.com/images/valenty/valenty1205/valenty120500050/13482292-dove-of-peace-in-the-sky.jpg)
^^speak 🐚
^^spoiler.
🐚
![](https://ae01.alicdn.com/kf/HTB1iB8cTgHqK1RjSZFEq6AGMXXaE/5pcs-73-25-Natural-Spiral-shell-Scrapbooking-Craft-seashells-for-glass-bottle-Sea-shell-Aquarium-Fish.jpg)
^^speak 🦗
^^spoiler.
🦗
![](https://i.ytimg.com/vi/aNEPOLrcg5M/maxresdefault.jpg)
^^speak 🐞
^^spoiler.
🐞
![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Harmonia_axyridis01.jpg/1200px-Harmonia_axyridis01.jpg)
^^speak 🦋
^^spoiler.
🦋
![](https://casablancacapemay.com/wp-content/uploads/sites/3/2017/10/so-long-safe-travels-monarchs-%F0%9F%A6%8B-beachplumfarm-capemay-monarch-migration-autumn.jpg)
^^speak 🐝
^^spoiler.
🐝
![](https://static.agcanada.com/wp-content/uploads/sites/4/2018/11/GettyImages-838442502_cmyk.jpg)
^^speak 🐜
^^spoiler.
🐜
![](https://www.mgk.com/wp-content/uploads/2019/03/ants-banner.jpg)
^^speak 🦂
^^spoiler.
🦂
![](https://i.ytimg.com/vi/PZqvJvSZaUY/maxresdefault.jpg)
^^speak 🕷
^^spoiler.
🕷
![](https://images.unsplash.com/photo-1544717455-4cf7ad978978?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80)
^^speak 🦟
^^spoiler.
🦟
![](https://cdn.cnn.com/cnnnext/dam/assets/190829214409-mosquito-massachusetts-stock-exlarge-169.jpg)
^^speak 🐛
^^spoiler.
🐛
![](https://www.thelocal.ch/userdata/images/article/55989a5cdbd983ed3cc7a78fff493f33ad62acd8c6cfd6e20cb791a8a906ca1e.jpg)
@@ -0,0 +1,54 @@
---
title: "千字文 - 1/1"
date: "2019-08-11"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 天地玄黃,宇宙洪荒。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://upload.wikimedia.org/wikipedia/commons/a/ab/天-order.gif")
figcaption.text-center tian1
figure.d-inline-block
img.hanzi-img(src="https://upload.wikimedia.org/wikipedia/commons/f/fb/地-order.gif" )
figcaption.text-center di4
figure.d-inline-block
img.hanzi-img(src="https://upload.wikimedia.org/wikipedia/commons/d/d3/玄-order.gif" )
figcaption.text-center xuan2
figure.d-inline-block
img.hanzi-img(src="https://upload.wikimedia.org/wikipedia/commons/e/e7/黄-order.gif" )
figcaption.text-center huang2
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23431.gif" )
figcaption.text-center yu3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23449.gif" )
figcaption.text-center zhou4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27946.gif" )
figcaption.text-center hong2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33618.gif" )
figcaption.text-center huang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
宇宙 | yǔzhòu | universe / cosmos
宇航 | yǔháng | space flight
宇航员 | yǔhángyuán | astronaut
宇宙飞船 | yǔzhòufēichuán | spacecraft
防洪 | fánghóng | flood control / flood prevention
山洪 | shānhóng | mountain flash flood / mountain torrent
荒 | huāng | desolate / shortage / scarce / out of practice / absurd / uncultivated / to neglect
荒野 | huāngyě | wilderness
@@ -0,0 +1,77 @@
---
title: "千字文 - 1/2"
date: "2019-08-12"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 日月盈昃,辰宿列張。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26085.gif" )
figcaption.text-center ri4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26376.gif" )
figcaption.text-center yue4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/30408.gif" )
figcaption.text-center ying2
figure.d-inline-block.text-center
.hanzi-img 昃
figcaption ze4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36784.gif" )
figcaption.text-center chen2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23487.gif" )
figcaption.text-center su4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21015.gif" )
figcaption.text-center lie2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24373.gif" )
figcaption.text-center zhang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
盈利 | yínglì | profit / gain
轻盈 | qīngyíng | graceful / lithe / light and graceful / lighthearted / relaxed
盈亏 | yíngkuī | profit and loss / waxing and waning
昃 | zè | afternoon / decline
星辰 | xīngchén | stars
时辰 | shíchen | time / one of the 12 two-hour periods of the day
北辰 | Běichén | Polaris / North Star
诞辰 | dànchén | birthday
生辰 | shēngchén | birthday
宿舍 | sùshè | dormitory / dorm room / living quarters / hostel / CL: 間|间
住宿 | zhùsù | to stay at / lodging / accommodation
列表 | lièbiǎo | list
系列 | xìliè | series / set
列 | liè | to arrange / to line up / file / series / (in data tables) column / (Tw) row
序列 | xùliè | sequence
下列 | xiàliè | following
列车 | lièchē | (railway) train
张 | zhāng | to open up / to spread / sheet of paper / classifier for flat objects, sheet / classifier for votes
紧张 (緊張) | jǐnzhāng | nervous / keyed up / intense / tense / strained / in short supply / scarce / CL: 陣|阵
主张 | zhǔzhāng | to advocate / to stand for / view / position / stand / proposition / viewpoint / assertion / CL: 個|个
扩张 (擴張) | kuòzhāng | expansion / dilation / to expand (e.g. one's power or influence) / to broaden
@@ -0,0 +1,67 @@
---
title: "千字文 - 1/3"
date: "2019-08-13"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 寒來暑往,秋收冬藏。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23506.gif" )
figcaption.text-center han2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20358.gif" )
figcaption.text-center lai2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26257.gif" )
figcaption.text-center shu3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24448.gif" )
figcaption.text-center wang3
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/31179.gif" )
figcaption.text-center qiu1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25910.gif" )
figcaption.text-center shou1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20908.gif" )
figcaption.text-center dong1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/34255.gif" )
figcaption.text-center cang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
寒假 | hánjià | winter vacation
伤寒 (傷寒) | shānghán | typhoid
严寒 | yánhán | bitter cold / severe winter
暑期 | shǔqī | summer vacation time
暑假 | shǔjià | summer vacation / CL: 個|个
避暑 | bìshǔ | to be away for the summer holidays / to spend a holiday at a summer resort / to prevent sunstroke
前往 | qiánwǎng | to leave for / to proceed towards / to go
往往 | wǎngwǎng | usually / in many cases / more often than not
往年 | wǎngnián | in former years / in previous years
往返 | wǎngfǎn | to go back and forth / to go to and fro / round trip
过往 (過往) | guòwǎng | to come and go / to have friendly relations with / in the past / previous
交往 | jiāowǎng | to associate (with) / to have contact (with) / to hang out (with) / to date / (interpersonal) relationship / association / contact
以往 | yǐwǎng | in the past / formerly
往事 | wǎngshì | past events / former happenings
秋季 | qiūjì | autumn / fall
春秋 | chūnqiū | spring and autumn / four seasons / year / a person's age / annals (used in book titles)
冬季 | dōngjì | winter
冬天 | dōngtiān | winter / CL: 個|个
春夏秋冬 | chūnxiàqiūdōng | the four seasons / spring, summer, autumn and winter
冬瓜 | dōngguā | wax gourd (Cucurbitaceae, Benincasa hispida) / white gourd / white hairy melon / Chinese squash
收藏 | shōucáng | to hoard / to collect / collection / to bookmark (Internet)
@@ -0,0 +1,94 @@
---
title: "千字文 - 1/4"
date: "2019-08-14"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 閏餘成歲,律呂調陽。
.w-100
figure.d-inline-block
.hanzi-img 閏
figcaption.text-center run4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39192.gif" )
figcaption.text-center yu2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25104.gif" )
figcaption.text-center cheng2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27506.gif" )
figcaption.text-center sui4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24459.gif" )
figcaption.text-center lu:4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21570.gif" )
figcaption.text-center lu:3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/35519.gif" )
figcaption.text-center diao4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38525.gif" )
figcaption.text-center yang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
闰年 | rùnnián | leap year / (lunar calendar) year with a thirteen intercalary month
闰月 | rùnyuè | intercalary month in the lunar calendar / leap month
敖闰 | Áorùn | Dragon King of the West Sea, Ao Run, also Ao Ji (敖吉)
余额 (餘額) | yú'é | balance (of an account, bill etc) / surplus / remainder
剩余 (剩餘) | shèngyú | remainder / surplus
其余 (其餘) | qíyú | the rest / the others / remaining / remainder / apart from them
业余 (業餘) | yèyú | in one's spare time / outside working hours / amateur (historian etc)
多余 (多餘) | duōyú | superfluous / unnecessary / surplus
岁月 (歲月) | suìyuè | years / time
周岁 (週歲) | zhōusuì | one full year (e.g. on child's first birthday)
万岁 (萬歲) | wànsuì | Long live (the king, the revolution etc)! / Your Majesty / His Majesty
岁时 (歲時) | suìshí | season / time of the year
贺岁 (賀歲) | hèsuì | to extend New Year's greetings / to pay a New Year's visit
法律 | fǎlǜ | law / CL: 條|条, 套, 個|个
律师 | lǜshī | lawyer
规律 | guīlǜ | rule (e.g. of science) / law of behavior / regular pattern / rhythm / discipline
纪律 | jìlǜ | discipline
吕 | lǚ | pitchpipe, pitch standard, one of the twelve semitones in the traditional tone system
吕梁 | Lǚliáng | Lüliang prefecture-level city in Shanxi 山西
调研 | diàoyán | to investigate and research / research / investigation
调 | diào | to transfer / to move (troops or cadres) / to investigate / to enquire into / accent / view / argument / key (in music) / mode (music) / tune / tone / melody
调 | tiáo | to harmonize / to reconcile / to blend / to suit well / to adjust / to regulate / to season (food) / to provoke / to incite
调整 | tiáozhěng | to adjust / adjustment / revision / CL: 個|个
空调 | kōngtiáo | air conditioning / air conditioner (including units that have a heating mode) / CL: 臺|台
调查 | diàochá | investigation / inquiry / to investigate / to survey / survey / (opinion) poll / CL: 項|项, 個|个
强调 (強調) | qiángdiào | to emphasize (a statement) / to stress
调节 (調節) | tiáojié | to adjust / to regulate / to harmonize / to reconcile (accountancy etc)
调试 | tiáoshì | to debug / to adjust components during testing / debugging
调用 | diàoyòng | to transfer (for a specific purpose) / to allocate / (computing) to invoke (a command, an application etc)
协调 (協調) | xiétiáo | to coordinate / to harmonize / to fit together / to match (colors etc) / harmonious / concerted
调剂 (調劑) | tiáojì | to adjust / to balance / to make up a medical prescription
色调 | sèdiào | hue / tone
调理 | tiáolǐ | to nurse one's health / to recuperate / to take care of / to look after / to discipline / to educate / to train / to prepare food / (dialect) to make fun of / (medicine) to opsonize
太阳 (太陽) | tàiyang | sun / CL: 個|个 / abbr. for 太陽穴|太阳穴
阳光 (陽光) | yángguāng | sunshine / CL: 線|线 / transparent (open to public scrutiny)
斜阳 (斜陽) | xiéyáng | setting sun
朝阳 (朝陽) | cháoyáng | to be exposed to the sun / in a position facing the sun
朝阳 (朝陽) | zhāoyáng | the morning sun
@@ -0,0 +1,104 @@
---
title: "千字文 - 1/5"
date: "2019-08-15"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 雲騰致雨,露結為霜。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38642.gif" )
figcaption.text-center yun2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39472.gif" )
figcaption.text-center teng2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33268.gif" )
figcaption.text-center zhi4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38632.gif" )
figcaption.text-center yu3
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38706.gif" )
figcaption.text-center lu4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32080.gif" )
figcaption.text-center jie2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28858.gif" )
figcaption.text-center wei4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38684.gif" )
figcaption.text-center shuang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
风云 | fēngyún | weather / unstable situation
白云 | báiyún | white cloud
腾讯 (騰訊) | Téngxùn | Tencent see 騰訊控股有限公司|腾讯控股有限公司
腾 | téng | to soar / to gallop / to prance / to turn over / to vacate / to clear
奔腾 | Bēnténg | Pentium (microprocessor by Intel)
奔腾 | bēnténg | (of waves) to surge forward / to roll on in waves / to gallop
腾飞 | téngfēi | lit. to fly upwards swiftly / fig. rapid advance / rapidly developing (situation)
折腾 | zhēteng | to toss from side to side (e.g. sleeplessly) / to repeat sth over and over again / to torment sb / to play crazy / to squander (time, money)
图腾 | túténg | totem (loanword)
一致 | yīzhì | unanimous / identical (views or opinions)
致力 | zhìlì | to work for / to devote one's efforts to
致 (緻) | zhì | fine / delicate
致 | zhì | to send / to devote / to deliver / to cause / to convey
导致 (導致) | dǎozhì | to lead to / to create / to cause / to bring about
致辞 (致辭) | zhìcí | to express in words or writing / to make a speech (esp. short introduction, vote of thanks, afterword, funeral homily etc) / to address (an audience) / same as 致詞|致词
精致 (精緻) | jīngzhì | delicate / fine / exquisite / refined
致命 | zhìmìng | fatal / mortal / deadly / to sacrifice one's life
细致 (細緻) | xìzhì | delicate / fine / careful / meticulous / painstaking
致敬 | zhìjìng | to greet / to pay respects to
下雨 | xiàyǔ | to rain
风雨 | fēngyǔ | wind and rain / the elements / trials and hardships
暴雨 | bàoyǔ | torrential rain / rainstorm / CL: 場|场, 陣|阵
烟雨 (煙雨) | yānyǔ | misty rain / drizzle
雨伞 (雨傘) | yǔsǎn | umbrella / CL: 把
降雨 | jiàngyǔ | precipitation / rainfall
雷阵雨 | léizhènyǔ | thunder shower
结构 (結構) | jiégòu | structure / composition / makeup / architecture / CL: 座, 個|个
结果 | jiēguǒ | to bear fruit / CL: 個|个
结果 | jiéguǒ | outcome / result / conclusion / in the end / as a result / to kill / to dispatch
结合 | jiéhé | to combine / to link / to integrate / binding / CL: 次
结束 | jiéshù | termination / to finish / to end / to conclude / to close
总结 (總結) | zǒngjié | to sum up / to conclude / summary / résumé / CL: 個|个
结婚 | jiéhūn | to marry / to get married / CL: 次
结算 | jiésuàn | to settle a bill / to close an account
结局 | jiéjú | conclusion / ending
成为 | chéngwéi | to become / to turn into
行为 | xíngwéi | action / conduct / behavior / activity
为什么 | wèishénme | why? / for what reason?
因为 | yīnwèi | because / owing to / on account of
华为 (華為) | Huáwéi | Huawei (brand)
为何 | wèihé | why
作为 | zuòwéi | one's conduct / deed / activity / accomplishment / achievement / to act as / as (in the capacity of) / qua / to view as / to look upon (sth as) / to take sth to be
为了 | wèile | in order to / for the purpose of / so as to
分为 | fēnwéi | to divide sth into (parts) / to subdivide
为准 | wéizhǔn | to serve as the norm / ...shall prevail (as standard for rules, regulations, price etc)
面霜 | miànshuāng | facial cream (cosmetics)
眼霜 | yǎnshuāng | eye cream
风霜 | fēngshuāng | wind and frost / fig. hardships
冰霜 | bīngshuāng | moral integrity / austerity
防晒霜 (防曬霜) | fángshàishuāng | suntan lotion / sunscreen cream
雪上加霜 | xuěshàngjiāshuāng | to add hail to snow (idiom); one disaster on top of another / to make things worse in a bad situation
隔离霜 (隔離霜) | gélíshuāng | pre-makeup cream / makeup base / foundation primer
披露 | pīlù | to reveal / to publish / to make public / to announce
露 | lòu | to show / to reveal / to betray / to expose
露 | lù | dew / syrup / nectar / outdoors (not under cover) / to show / to reveal / to betray / to expose
透露 | tòulù | to leak out / to divulge / to reveal
泄露 | xièlù | to leak (information) / to divulge / also pr. [xie4 lou4]
露营 (露營) | lùyíng | to camp out / camping
@@ -0,0 +1,95 @@
---
title: "千字文 - 1/6"
date: "2019-08-16"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 金生麗水,玉出崑岡。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/37329.gif" )
figcaption.text-center jin1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29983.gif" )
figcaption.text-center sheng1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40599.gif" )
figcaption.text-center li4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27700.gif" )
figcaption.text-center shui3
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29577.gif" )
figcaption.text-center yu4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20986.gif" )
figcaption.text-center chu1
figure.d-inline-block
.hanzi-img 崑
figcaption.text-center kun1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23713.gif" )
figcaption.text-center gang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
资金 | zījīn | funds / funding / capital
基金 | jījīn | fund
黄金 (黃金) | huángjīn | gold / golden (opportunity) / prime (time)
金属 (金屬) | jīnshǔ | metal / CL: 種|种
公积金 (公積金) | gōngjījīn | official reserves / accumulated fund
金额 (金額) | jīn'é | sum of money / monetary value
金币 (金幣) | jīnbì | gold coin
五金 | wǔjīn | metal hardware (nuts and bolts) / the five metals: gold, silver, copper, iron and tin 金銀銅鐵錫|金银铜铁锡
生产 (生產) | shēngchǎn | to produce / to manufacture / to give birth to a child
招生 | zhāoshēng | to enroll new students / to get students
本科生 | běnkēshēng | undergraduate student
卫生 (衛生) | wèishēng | health / hygiene / sanitation
发生 (發生) | fāshēng | to happen / to occur / to take place / to break out
生活 | shēnghuó | life / activity / to live / livelihood
学生 (學生) | xuésheng | student / schoolchild
生态 (生態) | shēngtài | ecology
美丽 (美麗) | měilì | beautiful
华丽 (華麗) | huálì | gorgeous
高丽 (高麗) | Gāolí | Korean Goryeo dynasty, 918-1392 / Korea, esp. in context of art and culture
艳丽 (艷麗) | yànlì | gorgeous / garish and beautiful
水平 | shuǐpíng | level (of achievement etc) / standard / horizontal
水利 | shuǐlì | water conservancy / irrigation works
水果 | shuǐguǒ | fruit / CL: 個|个
水电 (水電) | shuǐdiàn | hydroelectric power / plumbing and electricity
防水 | fángshuǐ | waterproof
热水 (熱水) | rèshuǐ | hot water
水晶 | shuǐjīng | crystal
玉米 | yùmǐ | corn / maize / CL: 粒
出口 | chūkǒu | an exit / CL: 個|个 / to speak / to export / (of a ship) to leave port
出游 (出遊) | chūyóu | to go on a tour / to have an outing
提出 | tíchū | to raise (an issue) / to propose / to put forward / to suggest / to post (on a website) / to withdraw (cash)
出现 (出現) | chūxiàn | to appear / to arise / to emerge / to show up
出来 (出來) | chūlái | to come out / to appear / to arise
出来 (出來) | chulai | (after a verb, indicates coming out, completion of an action, or ability to discern or detect)
出版 | chūbǎn | to publish
退出 | tuìchū | to withdraw / to abort / to quit / to log out (computing)
昆山 (崑山) | Kūnshān | Kunshan county level city in Suzhou 蘇州|苏州, Jiangsu
昆仑 (崑崙) | Kūnlún | Kunlun (Karakorum) mountain range in Xinjiang
山冈 (山岡) | shāngāng | mound / small hill
@@ -0,0 +1,100 @@
---
title: "千字文 - 1/7"
date: "2019-08-17"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 劍號巨闕,珠稱夜光。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21133.gif" )
figcaption.text-center jian4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/34399.gif" )
figcaption.text-center hao4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24040.gif" )
figcaption.text-center ju4
figure.d-inline-block
.hanzi-img 闕
figcaption.text-center que4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29664.gif" )
figcaption.text-center zhu1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/31281.gif" )
figcaption.text-center cheng1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22812.gif" )
figcaption.text-center ye4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20809.gif" )
figcaption.text-center guang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
刀剑 (刀劍) | dāojiàn | sword
剑桥 (劍橋) | Jiànqiáo | Cambridge
利剑 (利劍) | lìjiàn | sharp sword
剑道 (劍道) | jiàndào | kendō (sports)
账号 (賬號) | zhànghào | account / username
号码 (號碼) | hàomǎ | number / CL: 堆, 個|个
编号 (編號) | biānhào | to number / numbering / serial number
型号 (型號) | xínghào | model (particular version of a manufactured article) / type (product specification in terms of color, size etc)
巨大 | jùdà | huge / immense / very large / tremendous / gigantic / enormous
巨人 | jùrén | giant
巨头 (巨頭) | jùtóu | tycoon / magnate / big player (including company, country, school etc) / big shot
巨蟹 | Jùxiè | Cancer (star sign)
巨蟒 | jùmǎng | python
巨型 | jùxíng | giant / enormous
阙 (闕) | quē | used in place of 缺 (old) / mistake
阙 (闕) | què | Imperial city watchtower (old) / fault / deficiency
宫阙 (宮闕) | gōngquè | palace
城阙 (城闕) | chéngquè | watchtower on either side of a city gate / (literary) city / imperial palace
金阙 (金闕) | jīnquè | the imperial palace
珠宝 (珠寶) | zhūbǎo | pearls / jewels / precious stones
珍珠 | zhēnzhū | pearl / CL: 顆|颗
明珠 | míngzhū | pearl / jewel (of great value)
简称 (簡稱) | jiǎnchēng | to be abbreviated to / abbreviation / short form
名称 (名稱) | míngchēng | name (of a thing) / name (of an organization)
称 (稱) | chèn | to fit / balanced / suitable
称 (稱) | chēng | to weigh / to state / to name / name / appellation / to praise
职称 (職稱) | zhíchēng | one's professional position / title / job title
人称 (人稱) | rénchēng | person (first person, second person etc in grammar) / called / known as
称为 (稱為) | chēngwéi | called / to call sth (by a name) / to name
夜间 (夜間) | yèjiān | nighttime / evening or night (e.g. classes)
夜晚 | yèwǎn | night / CL: 個|个
深夜 | shēnyè | very late at night
午夜 | wǔyè | midnight
黑夜 | hēiyè | night
夜色 | yèsè | night scene / the dim light of night
夜景 | yèjǐng | nightscape
熬夜 | áoyè | to stay up late or all night
阳光 (陽光) | yángguāng | sunshine / CL: 線|线 / transparent (open to public scrutiny)
时光 (時光) | shíguāng | time / era / period of time
光明 | guāngmíng | light / radiance / (fig.) bright (prospects etc) / openhearted
光电 (光電) | guāngdiàn | photoelectric
风光 (風光) | fēngguāng | scene / view / sight / landscape / to be well-regarded / to be well-off / grand (dialect) / impressive (dialect)
曝光 | bàoguāng | to expose (photography) / (fig.) to expose (a scandal) / (advertising) exposure / Taiwan pr. [pu4 guang1]
激光 | jīguāng | laser
@@ -0,0 +1,108 @@
---
title: "千字文 - 1/8"
date: "2019-08-18"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 果珍李柰,菜重芥薑。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26524.gif" )
figcaption.text-center guo3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29645.gif" )
figcaption.text-center zhen1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26446.gif" )
figcaption.text-center li3
figure.d-inline-block
.hanzi-img 柰
figcaption.text-center nai4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33756.gif" )
figcaption.text-center cai4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/37325.gif" )
figcaption.text-center zhong4
figure.d-inline-block
.hanzi-img 柰
figcaption.text-center jie4
figure.d-inline-block
.hanzi-img 薑
figcaption.text-center jiang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
如果 | rúguǒ | if / in case / in the event that
结果 (結果) | jiēguǒ | to bear fruit / CL: 個|个
结果 (結果) | jiéguǒ | outcome / result / conclusion / in the end / as a result / to kill / to dispatch
效果 | xiàoguǒ | result / effect / quality / CL: 個|个
成果 | chéngguǒ | result / achievement / gain / profit / CL: 個|个
苹果 (蘋果) | píngguǒ | apple / CL: 個|个, 顆|颗
珍珠 | zhēnzhū | pearl / CL: 顆|颗
珍惜 | zhēnxī | to treasure / to value / to cherish
珍爱 (珍愛) | zhēn'ài | to cherish
珍贵 (珍貴) | zhēnguì | precious
珍藏 | zhēncáng | collection / to collect (valuables)
珍稀 | zhēnxī | rare / precious and uncommon
珍品 | zhēnpǐn | valuable object / curio
行李 | xíngli | luggage / CL: 件
李子 | lǐzi | plum / CL: 個|个
柰 | nài | crab-apple / how can one help
菜单 (菜單) | càidān | menu / CL: 份, 張|张
蔬菜 | shūcài | vegetables / CL: 種|种
白菜 | báicài | Chinese cabbage / pak choi / CL: 棵, 個|个
菜鸟 | càiniǎo | (coll.) sb new to a particular subject / rookie / beginner / newbie
重新 | chóngxīn | again / once more / re-
重点 (重點) | chóngdiǎn | to recount (e.g. results of election) / to re-evaluate
重点 (重點) | zhòngdiǎn | important point / main point / focus / key (project etc) / to focus on / to put the emphasis on
重大 | zhòngdà | great / important / major / significant
重要 | zhòngyào | important / significant / major
严重 (嚴重) | yánzhòng | grave / serious / severe / critical
重复 (重複|重覆) | chóngfù | to repeat / to duplicate / CL: 個|个
重生 | chóngshēng | rebirth
重视 (重視) | zhòngshì | to attach importance to sth / to value
隆重 | lóngzhòng | grand / prosperous / ceremonious / solemn
注重 | zhùzhòng | to pay attention to / to emphasize
重置 | chóngzhì | to reset / reset / replacement
郑重 | zhèngzhòng | serious / solemn
菜谱 (菜譜) | càipǔ | menu (in restaurant) / recipe / cookbook
菜单栏 (菜單欄) | càidānlán | menu bar (computing)
韭菜 | jiǔcài | garlic chives (Allium tuberosum), aka Chinese chives / (fig.) retail investors who lose their money to more experienced operators (i.e. they are "harvested" like garlic chives)
菠菜 | bōcài | spinach / CL: 棵
芥末 | jièmo | mustard / wasabi
芥 | jiè | mustard
芥菜 | jiècài | leaf mustard (Brassica juncea) / also pr. [gai4 cai4]
荆芥 (荊芥) | jīngjiè | schizonepeta, herb used in Chinese medicine
芥蒂 | jièdì | an obstruction / barrier / ill-feeling / grudge
芥蓝 (芥藍) | gàilán | Chinese broccoli / Chinese kale / cabbage mustard / Brassica oleracea var. alboglabra / also pr. [jie4 lan2]
芥子气 (芥子氣) | jièzǐqì | mustard gas
芥菜籽 | jiècàizǐ | mustard seed
青芥辣 | qīngjièlà | horseradish / wasabi / green mustard
拾芥 | shíjiè | to pick up cress / fig. sth easy to do / a piece of cake
生姜 (生薑) | shēngjiāng | fresh ginger
姜黄 (薑黃) | jiānghuáng | turmeric
干姜 (乾薑) | gānjiāng | dried ginger
姜汁 (薑汁) | jiāngzhī | ginger ale
仔姜 (仔薑) | zǐjiāng | stem ginger
@@ -0,0 +1,110 @@
---
title: "千字文 - 1/9"
date: "2019-08-19"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 海咸河淡,鱗潛羽翔。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28023.gif" )
figcaption.text-center hai3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21688.gif" )
figcaption.text-center xian2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27827.gif" )
figcaption.text-center he2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28129.gif" )
figcaption.text-center dan4
.w-100
figure.d-inline-block
.hanzi-img 鱗
figcaption.text-center lin2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28507.gif" )
figcaption.text-center qian2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32701.gif" )
figcaption.text-center yu3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32724.gif" )
figcaption.text-center xiang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
海报 (海報) | hǎibào | poster / playbill / notice
海外 | hǎiwài | overseas / abroad
海洋 | hǎiyáng | ocean / CL: 個|个
海口 | hǎikǒu | estuary / coastal inlet / river mouth / seaport / see also 誇海口|夸海口
海关 (海關) | hǎiguān | customs (i.e. border crossing inspection) / CL: 個|个
南海 | Nán Hǎi | South China Sea
海绵 (海綿) | hǎimián | sponge (zoology) / sponge (piece of absorbent material, either natural or made from plastic etc) / foam rubber
航海 | hánghǎi | sailing / navigation / voyage by sea
海贼 (海賊) | hǎizéi | pirate
海鲜 (海鮮) | hǎixiān | seafood
咸鱼 (鹹魚) | xiányú | salted fish
咸 | xián | all / everyone / each / widespread / harmonious
咸 (鹹) | xián | salted / salty / stingy / miserly
咸水 (鹹水) | xiánshuǐ | salt water / brine
咸鸭蛋 (鹹鴨蛋) | xiányādàn | salted duck egg
咸菜 (鹹菜) | xiáncài | salted vegetables / pickles
黄河 (黃河) | Huáng Hé | Yellow River or Huang He
银河 (銀河) | Yínhé | Milky Way / our galaxy
天河 | Tiānhé | Milky Way / Tianhe district of Guangzhou city 廣州市|广州市, Guangdong
河流 | héliú | river / CL: 條|条
淡 | dàn | insipid / diluted / weak / mild / light in color / tasteless / fresh / indifferent / nitrogen
淡定 | dàndìng | calm and collected / unperturbed
平淡 | píngdàn | flat / dull / ordinary / nothing special
淡化 | dànhuà | to water down / to play down / to trivialize / to weaken / to become dull with time / to desalinate / desalination
淡淡 | dàndàn | faint / dim / dull / insipid / unenthusiastic / indifferent
淡水 | dànshuǐ | potable water (water with low salt content) / fresh water
淡雅 | dànyǎ | simple and elegant
淡出 | dànchū | to fade out (cinema) / to withdraw from (politics, acting etc) / to fade from (memory)
清淡 | qīngdàn | light (of food, not greasy or strongly flavored) / insipid / slack (sales)
暗淡 | àndàn | dark / dim (light) / dull (color) / drab / (fig.) gloomy / bleak
惨淡 (慘淡) | cǎndàn | dark / gloomy / dismal / by painstaking effort
淡漠 | dànmò | apathetic / indifferent / unsympathetic
鳞 (鱗) | lín | scales (of fish)
鳞片 (鱗片) | línpiàn | scale / fish scales
鱼鳞 (魚鱗) | yúlín | fish scales
鳞甲 (鱗甲) | línjiǎ | scale / plate of armor
鳞状细胞癌 (鱗狀細胞癌) | línzhuàngxìbāo'ái | squamous cell carcinoma
遍体鳞伤 (遍體鱗傷) | biàntǐlínshāng | covered all over with cuts and bruises / beaten black and blue / be a mass of bruises
鳞状 (鱗狀) | línzhuàng | scaly / squamous
潜力 (潛力) | qiánlì | potential / capacity
潜 (潛) | qián | hidden / secret / latent / to hide / to conceal / to submerge / to dive
潜水 (潛水) | qiánshuǐ | to dive / to go under water / lurker (Internet slang for sb who reads forum posts but never replies)
潜能 (潛能) | qiánnéng | potential / hidden capability
潜在 (潛在) | qiánzài | hidden / potential / latent
潜艇 (潛艇) | qiántǐng | submarine
羽毛 | yǔmáo | feather / plumage / plume
关羽 (關羽) | Guān Yǔ | Guan Yu (-219), general of Shu and blood-brother of Liu Bei in Romance of the Three Kingdoms, fearsome fighter famous for virtue and loyalty / posthumously worshipped and identified with the guardian Bodhisattva Sangharama
羽绒 (羽絨) | yǔróng | down (soft feathers)
羽翼 | yǔyì | wing / (fig.) assistant
羽化 | yǔhuà | levitation (of Daoist immortal) / to become as light as a feather and ascend to heaven / (in Daoism) to become immortal / to die / of winged insects, to emerge from the cocoon in adult form / eclosion
翔 | xiáng | to soar / to glide / variant of 詳|详
飞翔 (飛翔) | fēixiáng | to circle in the air / to soar
翱翔 | áoxiáng | to soar / to wheel about in the sky
滑翔 | huáxiáng | to glide
@@ -0,0 +1,53 @@
---
title: "千字文 - 2/1"
date: "2019-08-20"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 龍師火帝,鳥官人皇。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40845.gif" )
figcaption.text-center long2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24107.gif" )
figcaption.text-center shi1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28779.gif" )
figcaption.text-center huo3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24093.gif" )
figcaption.text-center di4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40165.gif" )
figcaption.text-center niao3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23448.gif" )
figcaption.text-center guan1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20154.gif" )
figcaption.text-center ren2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/30343.gif" )
figcaption.text-center huang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
官方 | guānfāng | government / official (approved or issued by an authority)
官员 (官員) | guānyuán | official (in an organization or government) / administrator
法官 | fǎguān | judge
警官 | jǐngguān | constable / police officer
感官 | gǎnguān | sense / sense organ
指挥官 (指揮官) | zhǐhuīguān | commander
收官 | shōuguān | final part of a go game (see 官子) / endgame / to finish up / to come to the final stage
@@ -0,0 +1,120 @@
---
title: "千字文 - 2/2"
date: "2019-08-21"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 始制文字,乃服衣裳。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22987.gif" )
figcaption.text-center shi3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21046.gif" )
figcaption.text-center zhi4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25991.gif" )
figcaption.text-center wen2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/23383.gif" )
figcaption.text-center zi4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20035.gif" )
figcaption.text-center nai3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26381.gif" )
figcaption.text-center fu2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/34915.gif" )
figcaption.text-center yi1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/35059.gif" )
figcaption.text-center chang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
开始 (開始) | kāishǐ | to begin / beginning / to start / initial / CL: 個|个
始终 (始終) | shǐzhōng | from beginning to end / all along
初始 | chūshǐ | initial / starting (point)
创始 (創始) | chuàngshǐ | to initiate / to found
控制 | kòngzhì | control / to exercise control over / to contain
制造 (製造) | zhìzào | to manufacture / to make
制作 (製作) | zhìzuò | to make / to manufacture
制度 | zhìdù | system (e.g. political, adminstrative etc) / institution / CL: 個|个
复制 (複製) | fùzhì | to duplicate / to make a copy of / to copy / to reproduce / to clone
制品 (製品) | zhìpǐn | products / goods
编制 (編制) | biānzhì | to establish (a unit or department) / staffing structure (excluding temporary and casual staff)
编制 (編製) | biānzhì | to weave / to plait / to compile / to put together (a lesson plan, budget etc)
强制 (強制) | qiángzhì | to enforce / enforcement / forcibly / compulsory
法制 | fǎzhì | legal system and institutions
法制 (法製) | Fǎzhì | made in France
制药 (制藥) | zhìyào | to manufacture medicine
限制 | xiànzhì | to restrict / to limit / to confine / restriction / limit / CL: 個|个
文件 | wénjiàn | document / file / CL: 份
英文 | Yīngwén | English (language)
文字 | wénzì | character / script / writing / written language / writing style / phraseology / CL: 個|个
文化 | wénhuà | culture / civilization / cultural / CL: 個|个, 種|种
文章 | wénzhāng | article / essay / literary works / writings / hidden meaning / CL: 篇, 段, 頁|页
文明 | wénmíng | civilized / civilization / culture / CL: 個|个
文库 (文庫) | wénkù | collection of documents / library / book series / sequence of data, esp. genome
文学 (文學) | wénxué | literature / CL: 種|种
人文 | rénwén | humanities / human affairs / culture
字符 | zìfú | character (computing)
文字 | wénzì | character / script / writing / written language / writing style / phraseology / CL: 個|个
名字 | míngzi | name (of a person or thing) / CL: 個|个
数字 (數字) | shùzì | numeral / digit / number / figure / amount / digital (electronics etc) / CL: 個|个
字典 | zìdiǎn | dictionary / character dictionary / CL: 本
字母 | zìmǔ | letter (of the alphabet) / CL: 個|个
字体 (字體) | zìtǐ | calligraphic style / typeface / font
汉字 (漢字) | hànzì | Chinese character / CL: 個|个 / Japanese: kanji / Korean: hanja / Vietnamese: hán tự
关键字 (關鍵字) | guānjiànzì | keyword
字词 (字詞) | zìcí | letters or words / words or phrase
数字化 (數字化) | shùzìhuà | to digitalize / digital
写字楼 (寫字樓) | xiězìlóu | office building
字号 (字號) | zìhào | characters and numbers (as used in a code) / alphanumeric code / serial number
字号 (字號) | zìhao | character size / font size / fame / reputation / shop / name of a shop
写字 (寫字) | xiězì | to write characters
字幕 | zìmù | caption / subtitle
字节 (字節) | zìjié | byte
字符串 | zìfúchuàn | string (computer science)
乃至 | nǎizhì | and even / to go so far as to
木乃伊 | mùnǎiyī | mummy (preserved corpse) (loanword)
乃是 | nǎishì | equivalent to either 是 or 就是
康乃馨 | kāngnǎixīn | carnation or clove pink / Dianthus caryophyllus (botany)
乃尔 (乃爾) | nǎi'ěr | thus / like this
服务 (服務) | fúwù | to serve / service / CL: 項|项
服务器 (服務器) | fúwùqì | server (computer) / CL: 臺|台
服装 (服裝) | fúzhuāng | dress / clothing / costume / clothes / CL: 身
衣服 | yīfu | clothes / CL: 件, 套
服饰 (服飾) | fúshì | apparel / clothing and personal adornment
服务业 (服務業) | fúwùyè | service industry
伺服 | sìfú | servo (small electric motor) / computer server
征服 | zhēngfú | to conquer / to subdue / to vanquish
舒服 | shūfu | comfortable / feeling well
内衣 (內衣) | nèiyī | undergarment / underwear / CL: 件
衣柜 (衣櫃) | yīguì | wardrobe / armoire / CL: 個|个
洗衣 | xǐyī | laundry
连衣裙 (連衣裙) | liányīqún | woman's dress / frock / gown
制衣 | zhìyī | clothing manufacture
睡衣 | shuìyī | night clothes / pajamas
卫衣 (衛衣) | wèiyī | sweatshirt
成衣 | chéngyī | ready-made clothes
穿衣 | chuānyī | to wear clothes / clothing
上衣 | shàngyī | jacket / upper outer garment / CL: 件
大衣 | dàyī | overcoat / topcoat / cloak / CL: 件
裳 | cháng | lower garment / skirts / petticoats / garments
霓裳 | Nícháng | Nichang, abbr. for the Tang Dynasty song "Raiment of Rainbows and Feathers" 霓裳羽衣曲 or 霓裳羽衣舞
霓裳 | nícháng | nichang, rainbow colored clothes worn by the Eight Immortals 八仙
衣裳 | yīshang | clothes
衣裳钩儿 (衣裳鈎兒) | yīshanggōur | clothes hook
@@ -0,0 +1,111 @@
---
title: "千字文 - 2/3"
date: "2019-08-23"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 推位讓國,有虞陶唐。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25512.gif" )
figcaption.text-center tui1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20301.gif" )
figcaption.text-center wei4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/35731.gif" )
figcaption.text-center rang4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22283.gif" )
figcaption.text-center guo2
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26377.gif" )
figcaption.text-center you3
figure.d-inline-block
.hanzi-img 虞
figcaption.text-center fu2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38518.gif" )
figcaption.text-center tao2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21776.gif" )
figcaption.text-center tang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
推荐 (推薦) | tuījiàn | to recommend / recommendation
推广 (推廣) | tuīguǎng | to extend / to spread / to popularize / generalization / promotion (of a product etc)
推动 (推動) | tuīdòng | to push (for acceptance of a plan) / to push forward / to promote / to actuate / CL: 個|个
推进 (推進) | tuījìn | to impel / to carry forward / to push on / to advance / to drive forward
推 | tuī | to push / to cut / to refuse / to reject / to decline / to shirk (responsibility) / to put off / to delay / to push forward / to nominate / to elect / massage
推出 | tuīchū | to push out / to release / to launch / to publish / to recommend
推理 | tuīlǐ | reasoning / inference / to infer / to deduce
推介 | tuījiè | promotion / to promote / to introduce and recommend
推行 | tuīxíng | to put into effect / to carry out
单位 (單位) | dānwèi | unit (of measure) / unit (group of people as a whole) / work unit (place of employment, esp. in the PRC prior to economic reform) / CL: 個|个
地位 | dìwèi | position / status / place / CL: 個|个
位置 | wèizhi | position / place / seat / CL: 個|个
位 | wèi | position / location / place / seat / classifier for people (honorific) / classifier for binary bits (e.g. 十六位 16-bit or 2 bytes) / (physics) potential
定位 | dìngwèi | to orientate / to position / to categorize (as) / to characterize (as) / positioning / position / niche
学位 (學位) | xuéwèi | academic degree / place in school
岗位 (崗位) | gǎngwèi | a post / a job
位于 (位於) | wèiyú | to be located at / to be situated at / to lie
各位 | gèwèi | everybody / all (guests, colleagues etc) / all of you
职位 (職位) | zhíwèi | post / office / position
方位 | fāngwèi | direction / points of the compass / bearing / position / azimuth
让 (讓) | ràng | to yield / to permit / to let sb do sth / to have sb do sth / to make sb (feel sad etc) / by (indicates the agent in a passive clause, like 被)
转让 (轉讓) | zhuǎnràng | to transfer (ownership, rights etc)
让球 (讓球) | ràngqiú | to concede points (in a game)
出让 (出讓) | chūràng | to transfer (one's property or rights to sb else)
礼让 (禮讓) | lǐràng | to show consideration for (others) / to yield to (another vehicle etc) / courtesy / comity
让步 (讓步) | ràngbù | to concede / to give in / to yield / a concession / (linguistics) concessive
避让 (避讓) | bìràng | to avoid / to yield (in traffic) / to get out of the way
国际 (國際) | guójì | international
国家 (國家) | guójiā | country / nation / state / CL: 個|个
国内 (國內) | guónèi | domestic / internal (to a country) / civil
中国 (中國) | Zhōngguó | China
王国 (王國) | wángguó | kingdom / realm
开国 (開國) | kāiguó | to found a state / to open a closed country
版权所有 (版權所有) | bǎnquánsuǒyǒu | all rights reserved (copyright statement)
有限 | yǒuxiàn | limited / finite
有限公司 | yǒuxiàngōngsī | limited company / corporation
拥有 (擁有) | yōngyǒu | to have / to possess
虞 | yú | to expect / to anticipate / to worry / to cheat
尔虞我诈 (爾虞我詐) | ěryúwǒzhà | lit. you hoodwink me and I cheat you (idiom); fig. mutual deception / each tries to outwit the other / dog eats dog and devil take the hindmost
无虞 (無虞) | wúyú | not to be worried about / all taken care of
安全无虞 (安全無虞) | ānquánwúyú | safe and secure
有效 | yǒuxiào | effective / in effect / valid
所有 | suǒyǒu | all / to have / to possess / to own
陶瓷 | táocí | pottery and porcelain / ceramics
陶 | táo | pottery / pleased
陶艺 (陶藝) | táoyì | ceramic art
陶醉 | táozuì | to be infatuated with / to be drunk with / to be enchanted with / to revel in
熏陶 (薰陶) | xūntáo | to seep in / to influence / to nurture / influence / training
陶器 | táoqì | pottery
陶冶 | táoyě | lit. to fire pots and smelt metal / fig. to educate
唐 | Táng | Tang dynasty (618-907) / surname Tang
唐 | táng | to exaggerate / empty / in vain / old variant of 螗
唐诗 (唐詩) | Tángshī | Tang poetry / a Tang poem
唐人街 | Tángrén Jiē | Chinatown / CL: 條|条, 座
荒唐 | huāngtáng | beyond belief / preposterous / absurd / intemperate / dissipated
@@ -0,0 +1,112 @@
---
title: "千字文 - 2/4"
date: "2019-08-27"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 弔民伐罪,周發殷湯。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24340.gif" )
figcaption.text-center diao1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27665.gif" )
figcaption.text-center min2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20240.gif" )
figcaption.text-center fa2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32618.gif" )
figcaption.text-center zui4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21608.gif" )
figcaption.text-center zhou1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/30332.gif" )
figcaption.text-center fa1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27575.gif" )
figcaption.text-center yin1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/28271.gif" )
figcaption.text-center tang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
吊 (弔) | diào | a string of 100 cash (arch.) / to lament / to condole with / variant of 吊
吊客 (弔客) | diàokè | a visitor offering condolences
吊古 (弔古) | diàogǔ | to revisit the past / to commemorate
吊诡 (弔詭) | diàoguǐ | bizarre / paradoxical / a paradox (from Daoist classic Zhuangzi 莊子|庄子)
凭吊 (憑弔) | píngdiào | to visit a place for the memories / to pay homage to (the deceased)
开吊 (開弔) | kāidiào | to hold memorial service / to hold a funeral
吊孝 (弔孝) | diàoxiào | a condolence visit
吊民伐罪 (弔民伐罪) | diàomínfázuì | to console the people and punish the tyrant
民族 | mínzú | nationality / ethnic group / CL: 個|个
民生 | mínshēng | people's livelihood / people's welfare
人民网 (人民網) | Rénmínwǎng | online version of the People's Daily, 人民日報|人民日报
移民 | yímín | to immigrate / to migrate / emigrant / immigrant
中华人民共和国 (中華人民共和國) | Zhōnghuá Rénmín Gònghéguó | People's Republic of China
全民 | quánmín | entire population (of a country)
民政 | mínzhèng | civil administration
伐 | fá | to cut down / to fell / to dispatch an expedition against / to attack / to boast / Taiwan pr. [fa1]
步伐 | bùfá | pace / (measured) step / march
伐木 | fámù | to cut wood / tree-felling / lumbering
砍伐 | kǎnfá | to hew / to cut down
讨伐 (討伐) | tǎofá | to suppress by armed force / to send a punitive expedition against / to crusade against
采伐 (採伐) | cǎifá | to fell / to cut
犯罪 | fànzuì | to commit a crime / crime / offense
罪案 | zuì'àn | a criminal case
罪 | zuì | guilt / crime / fault / blame / sin
罪恶 (罪惡) | zuì'è | crime / evil / sin
罪犯 | zuìfàn | criminal
认罪 (認罪) | rènzuì | to admit guilt / to plead guilty
无罪 (無罪) | wúzuì | innocent / guileless / not guilty (of crime)
罪行 | zuìxíng | crime / offense
下周 (下週) | xiàzhōu | next week
周边 (周邊) | zhōubiān | periphery / rim / surroundings / all around / perimeter / peripheral (computing) / spin-offs
周 | Zhōu | surname Zhou / Zhou Dynasty (1046-256 BC)
周 | zhōu | to make a circuit / to circle / circle / circumference / lap / cycle / complete / all / all over / thorough / to help financially
周 (週) | zhōu | week / weekly / variant of 周
周年 (週年) | zhōunián | anniversary / annual
周围 (周圍) | zhōuwéi | surroundings / environment / to encompass
周期 (週期) | zhōuqī | period / cycle
周末 (週末) | zhōumò | weekend
发展 (發展) | fāzhǎn | development / growth / to develop / to grow / to expand
发布 (發佈) | fābù | to release / to issue / to announce / to distribute / also written 發布|发布
发布 (發布) | fābù | to release / to issue / to announce / to distribute
开发 (開發) | kāifā | to exploit (a resource) / to open up (for development) / to develop
发 (發) | fā | to send out / to show (one's feeling) / to issue / to develop / to make a bundle of money / classifier for gunshots (rounds)
发现 (發現) | fāxiàn | to find / to discover
发表 (發表) | fābiǎo | to issue / to publish
发生 (發生) | fāshēng | to happen / to occur / to take place / to break out
发行 (發行) | fāxíng | to publish / to issue (stocks, currency etc) / to release / to distribute (a film)
开发区 (開發區) | kāifāqū | development zone
批发 (批發) | pīfā | wholesale / bulk trade / distribution
殷 | Yīn | surname Yin / dynasty name at the end the Shang dynasty, after their move to Yinxu 殷墟 in modern Henan province
殷 | yān | dark red
殷 | yīn | flourishing / abundant / earnest / hospitable
殷 | yǐn | roll of thunder
殷切 | yīnqiè | ardent / eager / earnest
殷勤 | yīnqín | politely / solicitously / eagerly attentive
殷殷 | yīnyīn | earnest / ardent (hope etc)
献殷勤 (獻殷勤) | xiànyīnqín | to be particularly attentive to (an attractive young lady or man etc) / to fawn upon (an influential politician etc) / to court sb's favor / to ingratiate oneself
殷红 (殷紅) | yānhóng | dark red
殷实 (殷實) | yīnshí | thriving / well-off / substantial
汤 (湯) | shāng | rushing current
汤 (湯) | tāng | soup / hot or boiling water / decoction of medicinal herbs / water in which sth has been boiled
汤姆 (湯姆) | Tāngmǔ | Tom (name)
鸡汤 (雞湯) | jītāng | chicken stock / chicken soup / (fig.) chicken soup for the soul – i.e. feel-good motivational stories (often used disparagingly because the stories don't really effect change in people's lives)
汤普森 (湯普森) | Tāngpǔsēn | Thompson (name)
汤汁 (湯汁) | tāngzhī | soup / broth
汤圆 (湯圓) | tāngyuán | boiled balls of glutinous rice flour, eaten during the Lantern Festival
@@ -0,0 +1,115 @@
---
title: "千字文 - 2/5"
date: "2019-08-29"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 坐朝問道,垂拱平章。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22352.gif" )
figcaption.text-center zuo4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26397.gif" )
figcaption.text-center zhao1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21839.gif" )
figcaption.text-center wen4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36947.gif" )
figcaption.text-center dao4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22402.gif" )
figcaption.text-center chui2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25329.gif" )
figcaption.text-center gong3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24179.gif" )
figcaption.text-center ping2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/31456.gif" )
figcaption.text-center zhang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
坐标 (坐標) | zuòbiāo | coordinate (geometry)
坐落 | zuòluò | to be situated / to be located (of a building)
乘坐 | chéngzuò | to ride (in a vehicle)
坐标系 (座標系) | zuòbiāoxì | coordinate system (geometry)
坐骑 (坐騎) | zuòqí | saddle horse / mount
坐垫 (坐墊) | zuòdiàn | cushion / (motorbike) seat / CL: 塊|块
极坐标 (極座標) | jízuòbiāo | polar coordinates (math.)
坐镇 (坐鎮) | zuòzhèn | (of a commanding officer) to keep watch / to oversee
坐车 (坐車) | zuòchē | to take the car, bus, train etc
朝 | cháo | imperial or royal court / government / dynasty / reign of a sovereign or emperor / court or assembly held by a sovereign or emperor / to make a pilgrimage to / facing / towards
朝 | zhāo | morning
朝阳 (朝陽) | cháoyáng | to be exposed to the sun / in a position facing the sun
朝阳 (朝陽) | zhāoyáng | the morning sun
朝鲜 (朝鮮) | Cháoxiǎn | North Korea / Korea as geographic term / Taiwan pr. [Chao2 xian1]
朝着 (朝著) | cháozhe | facing / advancing (towards)
唐朝 | Tángcháo | Tang dynasty (618-907)
朝向 | cháoxiàng | toward / to face / to open onto / to turn towards / orientation / exposure / Qibla (Islam)
问题 (問題) | wèntí | question / problem / issue / topic / CL: 個|个
访问 (訪問) | fǎngwèn | to visit / to call on / to interview / CL: 次
常见问题 (常見問題) | chángjiànwèntí | common problems / FAQ
问答 (問答) | wèndá | question and answer
顾问 (顧問) | gùwèn | adviser / consultant
疑问 (疑問) | yíwèn | question / interrogation / doubt
提问 (提問) | tíwèn | to question / to quiz / to grill
追问 (追問) | zhuīwèn | to question closely / to investigate in detail / to examine minutely / to get to the heart of the matter
问道 (問道) | wèndào | to ask the way / to ask
具体问题 | jùtǐwèntí | concrete issue
频道 (頻道) | píndào | frequency / (television) channel
报道 (報道) | bàodào | to report (news) / report / CL: 篇, 份
知道 | zhīdào | to know / to become aware of / also pr. [zhi1 dao5]
有道 | yǒudào | to have attained the Way / (of a government or a ruler) enlightened / wise and just
大道 | dàdào | main street / avenue
道路 | dàolù | road / path / way / CL: 條|条
渠道 | qúdào | irrigation ditch / (fig.) channel / means
街道 | jiēdào | street / CL: 條|条 / subdistrict / residential district
垂直 | chuízhí | perpendicular / vertical
垂 | chuí | to hang (down) / droop / dangle / bend down / hand down / bequeath / nearly / almost / to approach
垂钓 | chuídiào | angling
垂柳 | chuíliǔ | weeping willow (Salix babylonica)
垂下 | chuíxià | to hang down
脱垂 (脫垂) | tuōchuí | prolapse
垂直线 (垂直線) | chuízhíxiàn | vertical line
永垂不朽 | yǒngchuíbùxiǔ | eternal glory / will never be forgotten
下垂 | xiàchuí | to droop / to sag / to hang down / sagging / drooping / prolapse (medicine)
拱 | gǒng | to cup one's hands in salute / to surround / to arch / to dig earth with the snout / arched
拱形 | gǒngxíng | arch
拱手 | gǒngshǒu | to cup one's hands in obeisance or greeting / (fig.) submissive
拱门 (拱門) | gǒngmén | arched door
斗拱 | dǒugǒng | interlocking wooden brackets between the top of a column and crossbeams used in traditional Chinese architecture
拱桥 (拱橋) | gǒngqiáo | arch bridge
拱顶 (拱頂) | gǒngdǐng | an arched roof / a dome / a vault
打拱 | dǎgǒng | to bow with clasped hands
水平 | shuǐpíng | level (of achievement etc) / standard / horizontal
平台 (平臺) | píngtái | platform / terrace / flat-roofed building
平房 | píngfáng | bungalow / single-story house
平 | píng | flat / level / equal / to tie (make the same score) / to draw (score) / calm / peaceful / see also 平聲|平声
平均 | píngjūn | average / on average / evenly / in equal proportions
平安 | píng'ān | safe and sound / well / without mishap / quiet and safe / at peace
习近平 (習近平) | Xí Jìnpíng | Xi Jinping (1953-), PRC politician, General Secretary of the CPC from 2012, president of the PRC from 2013
章 | zhāng | chapter / section / clause / movement (of symphony) / seal / badge / regulation / order
文章 | wénzhāng | article / essay / literary works / writings / hidden meaning / CL: 篇, 段, 頁|页
简章 (簡章) | jiǎnzhāng | concise list of rules / brochure / pamphlet
规章 (規章) | guīzhāng | rule / regulation
章程 | zhāngchéng | rules / regulations / constitution / statute / articles of association (of company) / articles of incorporation / charter (of a corporation) / by-laws
违章 (違章) | wéizhāng | to break the rules / to violate regulations
章节 (章節) | zhāngjié | chapter / section
徽章 | huīzhāng | badge / emblem / insignia / crest / logo / coat of arms
勋章 (勛章) | xūnzhāng | medal / decoration
盖章 (蓋章) | gàizhāng | to affix a seal / to stamp (a document) / to sign off on sth
@@ -0,0 +1,106 @@
---
title: "千字文 - 2/6"
date: "2019-08-30"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 愛育黎首,臣伏戎羌。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24859.gif" )
figcaption.text-center ai4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32946.gif" )
figcaption.text-center yu4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40654.gif" )
figcaption.text-center li2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39318.gif" )
figcaption.text-center shou3
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33251.gif" )
figcaption.text-center chen2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20239.gif" )
figcaption.text-center fu2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25102.gif" )
figcaption.text-center rong2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/32652.gif" )
figcaption.text-center qiang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
爱情 (愛情) | àiqíng | romance / love (romantic) / CL: 個|个, 份
爱好 (愛好) | àihào | to like / to take pleasure in / keen on / fond of / interest / hobby / appetite for / CL: 個|个
可爱 (可愛) | kě'ài | adorable / cute / lovely
爱上 (愛上) | àishàng | to fall in love with / to be in love with
爱心 (愛心) | àixīn | compassion / kindness / care for others / love / CL: 片 / charity (bazaar, golf day etc) / heart (the symbol ♥)
爱国 (愛國) | àiguó | to love one's country / patriotic
喜爱 (喜愛) | xǐ'ài | to like / to love / to be fond of / favorite
恋爱 (戀愛) | liàn'ài | (romantic) love / CL: 個|个, 場|场 / in love / to have an affair
爱好者 (愛好者) | àihàozhě | lover (of art, sports etc) / amateur / enthusiast / fan
关爱 (關愛) | guān'ài | to show concern and care for
体育 (體育) | tǐyù | sports / physical education
教育 | jiàoyù | to educate / to teach / education
生育 | shēngyù | to bear / to give birth / to grow / to rear / to bring up (children) / fertility
体育运动 (體育運動) | tǐyùyùndòng | sports / physical culture
育儿 (育兒) | yù'ér | to raise a child
高等教育 | gāoděngjiàoyù | higher education
培育 | péiyù | to train / to breed
计划生育 (計劃生育) | jìhuàshēngyù | family planning
发育 (發育) | fāyù | to develop / to mature / growth / development / (sexually) mature
巴黎 | Bālí | Paris, capital of France
黎 | lí | (literary) black / dark / many / multitude
黎明 | límíng | dawn / daybreak
首页 (首頁) | shǒuyè | home page (of a website) / title page / front page / first page / fig. beginning / cover letter
首次 | shǒucì | first / first time / for the first time
首 | shǒu | head / chief / first (occasion, thing etc) / classifier for poems, songs etc
首先 | shǒuxiān | first (of all) / in the first place
首都 | shǒudū | capital (city) / CL: 個|个
首饰 (首飾) | shǒushì | jewelry / head ornament
首届 (首屆) | shǒujiè | first session (of a conference etc)
首选 (首選) | shǒuxuǎn | first choice / premium / to come first in the imperial examinations
首席 | shǒuxí | chief (representative, correspondent etc)
首发 (首發) | shǒufā | first issue / first public showing
臣 | chén | state official or subject in dynastic China / I, your servant (used in addressing the sovereign) / Kangxi radical 131
大臣 | dàchén | chancellor (of a monarchy) / cabinet minister
功臣 | gōngchén | minister who has given outstanding service
君臣 | jūnchén | a ruler and his ministers (old)
奸臣 | jiānchén | a treacherous court official / a minister who conspires against the state
忠臣 | zhōngchén | faithful official
臣服 | chénfú | to acknowledge allegiance to (some regime) / to serve
文臣 | wénchén | civilian court official (in former times)
臣子 | chénzǐ | official in feudal court / subject
伏 | fú | to lean over / to fall (go down) / to hide (in ambush) / to conceal oneself / to lie low / hottest days of summer / to submit / to concede defeat / to overcome / to subdue / volt
光伏 | guāngfú | photovoltaic (e.g. cell)
潜伏 (潛伏) | qiánfú | to hide / to cover up / to conceal
千伏 | qiānfú | kilovolt
伏 (伏筆) | fúbǐ | foreshadowing (literary device) / foretaste of material to come (in essay or story)
伏安 | fú'ān | volt-ampere (measure of apparent power in alternating current circuits)
伏地 | fúdì | to lie prostrate
起伏 | qǐfú | to move up and down / to undulate / ups and downs
戎 | róng | generic term for weapons (old) / army (matters) / military affairs
戎装 (戎裝) | róngzhuāng | martial attire
投笔从戎 (投筆從戎) | tóubǐcóngróng | to lay down the pen and take up the sword (idiom) / to join the military (esp. of educated person)
戎马 (戎馬) | róngmǎ | military horse / by extension, military matters
戎行 | róngháng | troops / military affairs
戎机 (戎機) | róngjī | opportunity for a fight / war
戎事 | róngshì | military affairs
羌 | Qiāng | Qiang ethnic group of northwestern Sichuan / surname Qiang
羌 | qiāng | muntjac / grammar particle indicating nonsense (classical)
羌无故实 (羌無故實) | qiāngwúgùshí | to have no basis in fact (idiom)
羌鹫 (羌鷲) | qiāngjiù | sea eagle / CL: 隻|只
@@ -0,0 +1,113 @@
---
title: "千字文 - 2/7"
date: "2019-09-01"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 遐邇一體,率賓歸王。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36944.gif" )
figcaption.text-center xia2
figure.d-inline-block
.hanzi-img 邇
figcaption.text-center er3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/19968.gif" )
figcaption.text-center yi1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39636.gif" )
figcaption.text-center ti3
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29575.gif" )
figcaption.text-center lu:4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36051.gif" )
figcaption.text-center bin1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27512.gif" )
figcaption.text-center gui1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/29579.gif" )
figcaption.text-center wang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
遐想 | xiáxiǎng | reverie / daydream / to be lost in wild and fanciful thoughts
闻名遐迩 (聞名遐邇) | wénmíngxiá'ěr | to be famous far and wide (idiom)
遐 | xiá | distant / long-lasting / to abandon
遐思 | xiásī | to fancy from afar / reverie / wild and fanciful thoughts
遐迩 (遐邇) | xiá'ěr | near and far / far and wide
遐举 (遐舉) | xiájǔ | to go a long way away
遐龄 (遐齡) | xiálíng | advanced age / longevity / long life
遐迩闻名 (遐邇聞名) | xiá'ěrwénmíng | famous everywhere
遐福 | xiáfú | great and lasting happiness / lasting blessings
室迩人遐 (室邇人遐) | shì'ěrrénxiá | to long for sb far away / to grieve over the dead
迩 (邇) | ěr | recently / near / close
遐迩一体 (遐邇一體) | xiá'ěryītǐ | both near and distant treated alike (idiom)
名驰遐迩 (名馳遐邇) | míngchíxiá'ěr | To have one's fame spread far and wide. (idiom)
遐迩皆知 (遐邇皆知) | xiá'ěrjiēzhī | well-known far and near (idiom)
体育 (體育) | tǐyù | sports / physical education
体验 (體驗) | tǐyàn | to experience for oneself
繁体 (繁體) | fántǐ | traditional form of Chinese, as opposed to simplified form 簡體|简体
整体 (整體) | zhěngtǐ | whole entity / entire body / synthesis / as a whole (situation, construction, team etc) / global / macrocosm / integral / holistic / whole
简体 (簡體) | jiǎntǐ | simplified form of Chinese characters, as opposed to traditional form 繁體|繁体
体 (體) | tǐ | body / form / style / system / substance / to experience / aspect (linguistics)
媒体 (媒體) | méitǐ | media, esp. news media
体系 (體系) | tǐxì | system / setup / CL: 個|个
效率 | xiàolǜ | efficiency
率 | lǜ | rate / frequency
率 | shuài | to lead / to command / rash / hasty / frank / straightforward / generally / usually
市盈率 | shìyínglǜ | PE ratio
分辨率 | fēnbiànlǜ | resolution (of images, monitors, scanners etc)
功率 | gōnglǜ | rate of work / power (output)
利率 | lìlǜ | interest rates
概率 | gàilǜ | probability (math.)
频率 (頻率) | pínlǜ | frequency
汇率 (匯率) | huìlǜ | exchange rate
比率 | bǐlǜ | ratio / rate / percentage
嘉宾 (嘉賓) | jiābīn | esteemed guest / honored guest / guest (on a show)
宾馆 (賓館) | bīnguǎn | guesthouse / lodge / hotel / CL: 個|个, 家
来宾 (來賓) | láibīn | guest / visitor
菲律宾 (菲律賓) | Fēilǜbīn | the Philippines
宾 (賓) | bīn | visitor / guest / object (in grammar)
贵宾 (貴賓) | guìbīn | honored guest / distinguished guest / VIP
宾语 (賓語) | bīnyǔ | object (grammar)
宾客 (賓客) | bīnkè | guests / visitors
迎宾 (迎賓) | yíngbīn | to welcome a guest / to entertain a customer (of prostitute)
归 (歸) | guī | to return / to go back to / to give back to / (of a responsibility) to be taken care of by / to belong to / to gather together / (used between two identical verbs) despite / to marry (of a woman) (old) / division on the abacus with a one-digit divisor
回归 (回歸) | huíguī | to return to / to retreat / regression (statistics)
归档 (歸檔) | guīdàng | to file away / to place on file
归属 (歸屬) | guīshǔ | to belong to / to be affiliated to / to fall under the jurisdiction of / a place where one feels that one belongs / one's final destination (where one need look no further)
海归 (海歸) | hǎiguī | sb who has come back to China after gaining overseas experience (a pun on 海龜|海龟) / to return to China after a period of study or work overseas
归纳 (歸納) | guīnà | to sum up / to summarize / to conclude from facts / induction (method of deduction in logic)
归口 (歸口) | guīkǒu | to return to one's original trade / to put (a business etc) under the administration of the relevant central authority / (the) relevant (department in charge of sth)
归类 (歸類) | guīlèi | to classify / to categorize
王子 | wángzǐ | prince / son of a king
海贼王 (海賊王) | Hǎizéiwáng | One Piece (manga and anime)
王牌 | wángpái | trump card
霸王 | bàwáng | hegemon / overlord / despot
大王 | dàwáng | king / magnate / person having expert skill in something
大王 | dàiwang | robber baron (in opera, old stories) / magnate
女王 | nǚwáng | queen
@@ -0,0 +1,133 @@
---
title: "千字文 - 2/8"
date: "2019-09-02"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 鳴鳳在竹,白駒食場。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40180.gif" )
figcaption.text-center ming2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/40179.gif" )
figcaption.text-center feng4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22312.gif" )
figcaption.text-center zai4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/31481.gif" )
figcaption.text-center zhu2
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/30333.gif" )
figcaption.text-center bai2
figure.d-inline-block
.hanzi-img 駒
figcaption.text-center ju1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39135.gif" )
figcaption.text-center shi2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22580.gif" )
figcaption.text-center chang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
鸣 (鳴) | míng | to cry (of birds, animals and insects)
共鸣 (共鳴) | gòngmíng | resonance (physics) / sympathetic response to sth
争鸣 (爭鳴) | zhēngmíng | to contend
耳鸣 (耳鳴) | ěrmíng | tinnitus
鸣谢 (鳴謝) | míngxiè | to express gratitude (esp. in public) / vote of thanks
蜂鸣器 (蜂鳴器) | fēngmíngqì | buzzer
奏鸣曲 (奏鳴曲) | zòumíngqǔ | sonata
鸣笛 (鳴笛) | míngdí | to hoot / to whistle
鸣叫 (鳴叫) | míngjiào | to emit a sound / (of birds, insects etc) to chirp, hoot etc / (of a siren, steam whistle etc) to sound
蝉鸣 (蟬鳴) | chánmíng | song of cicadas / chirping of insects
雷鸣 (雷鳴) | léimíng | thunder rolls
凤凰 (鳳凰) | fènghuáng | phoenix
龙凤 (龍鳳) | lóngfèng | dragon and phoenix
丹凤 (丹鳳) | dānfèng | red phoenix
凤爪 (鳳爪) | fèngzhǎo | chicken feet (cuisine)
凤梨 (鳳梨) | fènglí | pineapple
凤仙花 (鳳仙花) | fèngxiānhuā | balsam / Balsaminaceae (a flower family including Impatiens balsamina) / touch-me-not / busy Lizzie
望女成凤 (望女成鳳) | wàngnǚchéngfèng | lit. to hope one's daughter becomes a phoenix (idiom) / fig. to hope one's daughter is a success in life
凤眼 (鳳眼) | fèngyǎn | elegant, almond-shaped eyes with the inner canthus pointing down and the outer canthus up, like the eye of a phoenix
在线 (在線) | zàixiàn | online
存在 | cúnzài | to exist / to be / existence
正在 | zhèngzài | just at (that time) / right in (that place) / right in the middle of (doing sth)
现在 (現在) | xiànzài | now / at present / at the moment / modern / current / nowadays
所在 | suǒzài | place / location / (after a noun) place where it is located
在此 | zàicǐ | hereto / here
旨在 | zhǐzài | to have as its purpose / to be intended to / to aim to (do sth)
竹林 | zhúlín | bamboo forest
腐竹 | fǔzhú | roll of dried tofu strips
爆竹 | bàozhú | firecracker
竹马 (竹馬) | zhúmǎ | bamboo stick used as a toy horse
竹子 | zhúzi | bamboo / CL: 棵, 支, 根
竹节 (竹節) | zhújié | bamboo joint
青梅竹马 (青梅竹馬) | qīngméizhúmǎ | lit. green plums and hobby-horse (idiom) / fig. innocent children's games / childhood sweethearts / a couple who grew up as childhood friends
白色 | báisè | white / fig. reactionary / anti-communist
小白 | xiǎobái | (slang) novice / greenhorn / fool / idiot / abbr. for 小白臉|小白脸, pretty boy
白云 (白雲) | báiyún | white cloud
空白 | kòngbái | blank space
白银 (白銀) | báiyín | silver
蛋白 | dànbái | egg white / protein / albumen
白菜 | báicài | Chinese cabbage / pak choi / CL: 棵, 個|个
黑白 | hēibái | black and white / right and wrong / monochrome
白领 (白領) | báilǐng | white-collar / white-collar worker
白金 | báijīn | platinum / silver / (slang) handcuffs
驹 (駒) | jū | colt
马驹 (馬駒) | mǎjū | young horse (colt or filly)
龙驹 (龍駒) | lóngjū | fine horse / brilliant young man
白驹过隙 (白駒過隙) | báijūguòxì | a white steed flits past a crack (idiom); How time flies!
驹子 (駒子) | jūzi | young horse, ass or mule / foal / colt / filly
龙驹凤雏 (龍駒鳳雛) | lóngjūfèngchú | brilliant young man / talented young scholar
驴驹子 (驢駒子) | lǘjūzi | donkey foal
食品 | shípǐn | foodstuff / food / provisions / CL: 種|种
美食 | měishí | culinary delicacy / fine food / gourmet food
食 | shí | to eat / food / animal feed / eclipse
食 | sì | to feed
食物 | shíwù | food / CL: 種|种
粮食 (糧食) | liángshi | foodstuff / cereals / CL: 種|种
食堂 | shítáng | dining hall / CL: 個|个, 間|间
饮食 (飲食) | yǐnshí | food and drink / diet
食谱 (食譜) | shípǔ | cookbook / recipe / diet / CL: 份, 個|个
食用 | shíyòng | food product / to use as food / edible
膳食 | shànshí | meal
零食 | língshí | between-meal nibbles / snacks
市场 (市場) | shìchǎng | marketplace / market (also in abstract)
现场 (現場) | xiànchǎng | the scene (of a crime, accident etc) / (on) the spot / (at) the site
场 (場) | cháng | threshing floor / classifier for events and happenings: spell, episode, bout
场 (場) | chǎng | large place used for a specific purpose / stage / scene (of a play) / classifier for sporting or recreational activities / classifier for number of exams
广场 (廣場) | guǎngchǎng | public square / plaza
剧场 (劇場) | jùchǎng | theater / CL: 個|个
机场 (機場) | jīchǎng | airport / airfield / CL: 家, 處|处
职场 (職場) | zhíchǎng | workplace / workforce (of a nation or industry etc) / job market
全场 (全場) | quánchǎng | everyone present / the whole audience / across-the-board / unanimously / whole duration (of a competition or match)
立场 (立場) | lìchǎng | position / standpoint / CL: 個|个
场所 (場所) | chǎngsuǒ | location / place
场景 (場景) | chǎngjǐng | scene / scenario / setting
商场 (商場) | shāngchǎng | shopping mall / shopping center / department store / emporium / CL: 家 / the business world
战场 (戰場) | zhànchǎng | battlefield / CL: 個|个
市场营销 (市場營銷) | shìchǎngyíngxiāo | marketing
@@ -0,0 +1,125 @@
---
title: "千字文 - 2/9"
date: "2019-09-03"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 化被草木,賴及萬方。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21270.gif" )
figcaption.text-center hua4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/34987.gif" )
figcaption.text-center bei4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33609.gif" )
figcaption.text-center cao3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26408.gif" )
figcaption.text-center mu4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36084.gif" )
figcaption.text-center lai4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/21450.gif" )
figcaption.text-center ji2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33836.gif" )
figcaption.text-center wan4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/26041.gif" )
figcaption.text-center fang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
化学 (化學) | huàxué | chemistry / chemical
优化 (優化) | yōuhuà | optimization / to optimize / to make superior
信息化 | xìnxīhuà | informatization (the Information Age analog of industrialization)
自动化 (自動化) | zìdònghuà | automation
绿化 (綠化) | lǜhuà | to make green with plants / to reforest / (Internet slang) Islamization
文化 | wénhuà | culture / civilization / cultural / CL: 個|个, 種|种
变化 (變化) | biànhuà | change / variation / to change / to vary / CL: 個|个
化工 | huàgōng | chemical industry, abbr. of 化學工業|化学工业 / chemical engineering, abbr. of 化學工程|化学工程
化妆 (化妝) | huàzhuāng | to put on makeup
被动 (被動) | bèidòng | passive
被迫 | bèipò | to be compelled / to be forced
被子 | bèizi | quilt / CL: 床
被捕 | bèibǔ | to be arrested / under arrest
被执行人 (被執行人) | bèizhíxíngrén | person who has failed to fulfill a court order
被告 | bèigào | defendant
被窝 (被窩) | bèiwō | quilt wrapped around the body as a tube (traditional bedding) / (contemporary) bedding / quilt / blankets / cover / bed
植被 | zhíbèi | vegetation / plant cover
被除数 (被除數) | bèichúshù | dividend
草原 | cǎoyuán | grassland / prairie / CL: 片
烟草 (煙草) | yāncǎo | tobacco
花草 | huācǎo | flowers and plants
草坪 | cǎopíng | lawn
草莓 | cǎoméi | strawberry / CL: 顆|颗 / (Taiwan) hickey / love bite
草案 | cǎo'àn | draft (legislation, proposal etc)
草根 | cǎogēn | grass roots (lit. and fig.)
稻草 | dàocǎo | rice straw
草地 | cǎodì | lawn / meadow / sod / turf / CL: 片
薰衣草 | xūnyīcǎo | lavender
四叶草 (四葉草) | sìyècǎo | four-leaf clover
草药 (草藥) | cǎoyào | herbal medicine
药草 (藥草) | yàocǎo | medicinal herb
土木 | tǔmù | building / construction / civil engineering
土木工程 | tǔmùgōngchéng | civil engineering
树木 (樹木) | shùmù | tree
铃木 (鈴木) | Língmù | Suzuki (Japanese surname)
木马 (木馬) | mùmǎ | wooden horse / rocking horse / vaulting horse (gymnastics) / trojan horse (computing)
木耳 | mù'ěr | edible tree fungus / CL: 朵
木材 | mùcái | wood
花木兰 (花木蘭) | Huā Mùlán | Hua Mulan, legendary woman warrior (c. fifth century), Northern dynasties folk hero recorded in Sui and Tang literature
信赖 (信賴) | xìnlài | to trust / to have confidence in / to have faith in / to rely on
依赖 (依賴) | yīlài | to depend on / to be dependent on
赖 (賴) | lài | to depend on / to hang on in a place / bad / to renege (on promise) / to disclaim / to rat (on debts) / rascally / to blame / to put the blame on
值得信赖 (值得信賴) | zhídexìnlài | trustworthy
老赖 (老賴) | lǎolài | (coll.) debt dodger
赖以 (賴以) | làiyǐ | to rely on / to depend on
无赖 (無賴) | wúlài | hoodlum / rascal / rogue / rascally / scoundrelly
达赖 (達賴) | Dálài | the Dalai Lama / abbr. of 達賴喇嘛|达赖喇嘛
赖床 (賴床) | làichuáng | to have a lie-in / to dawdle in bed
有赖于 (有賴於) | yǒulàiyú | to rely on / to depend on
以及 | yǐjí | as well as / too / and
及 | jí | and / to reach / up to / in time for
及时 (及時) | jíshí | in time / promptly / without delay / timely
及其 | jíqí | (conjunction linking two nouns) and its ... / and their ... / and his ... / and her ...
涉及 | shèjí | to involve / to touch upon (a topic)
普及 | pǔjí | to spread extensively / to generalize / widespread / popular / universal / ubiquitous / pervasive
埃及 | Āijí | Egypt
及时处理 (及時處理) | jíshíchǔlǐ | timely handling / a stitch in time
及时性 (及時性) | jíshíxìng | timeliness / promptness
提及 | tíjí | to mention / to raise (a subject) / to bring to sb's attention
遍及 | biànjí | to extend (everywhere)
来不及 (來不及) | láibují | there's not enough time (to do sth) / it's too late (to do sth)
万能 (萬能) | wànnéng | omnipotent / all-purpose / universal
百万 (百萬) | bǎiwàn | million / millions
万人 (萬人) | wànrén | ten thousand people / all the people / everyman
万里 (萬里) | Wàn Lǐ | Wan Li (1916-2015), PRC politician
万里 (萬里) | Wànlǐ | Wanli township in New Taipei City 新北市, Taiwan
万里 (萬里) | wànlǐ | far away / thousands of miles / 10000 li
数万 (數萬) | shùwàn | several tens of thousands / many thousand
十万 (十萬) | shíwàn | hundred thousand
万年历 (萬年曆) | wànniánlì | perpetual calendar / ten thousand year calendar / Islamic calendar introduced to Yuan China by Jamal al-Din 紮馬剌丁|扎马剌丁
官方 | guānfāng | government / official (approved or issued by an authority)
联系方式 (聯繫方式) | liánxìfāngshì | contact details
方案 | fāng'àn | plan / program (for action etc) / proposal / proposed bill / CL: 個|个, 套
东方 (東方) | Dōngfāng | the East / the Orient / two-character surname Dongfang
东方 (東方) | dōngfāng | east
方式 | fāngshì | way / manner / style / mode / pattern / CL: 個|个
方 | fāng | square / power or involution (math.) / upright / honest / fair and square / direction / side / party (to a contract, dispute etc) / place / method / prescription (medicine) / just when / only or just / classifier for square things / abbr. for square or cubic meter
方法 | fāngfǎ | method / way / means / CL: 個|个
方便 | fāngbiàn | convenient / suitable / to facilitate / to make things easy / having money to spare / (euphemism) to relieve oneself
@@ -0,0 +1,103 @@
---
title: "千字文 - 3/1"
date: "2019-09-12"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 蓋此身髮,四大五常。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33995.gif" )
figcaption.text-center gai4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27492.gif" )
figcaption.text-center ci3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/36523.gif" )
figcaption.text-center shen1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39662.gif" )
figcaption.text-center fa4
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22235.gif" )
figcaption.text-center si4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22823.gif" )
figcaption.text-center da4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20116.gif" )
figcaption.text-center wu3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24120.gif" )
figcaption.text-center chang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
```
覆盖 (覆蓋) | fùgài | to cover
盖 (蓋) | gài | lid / top / cover / canopy / to cover / to conceal / to build
涵盖 (涵蓋) | hángài | to cover / to comprise / to include
加盖 (加蓋) | jiāgài | to seal (with official stamp) / to stamp / fig. to ratify / to put lid on (cooking pot) / to cap / to build an extension or additional storey
盖章 (蓋章) | gàizhāng | to affix a seal / to stamp (a document) / to sign off on sth
膝盖 (膝蓋) | xīgài | knee / (Internet slang) to kneel down (in admiration)
盖帽 (蓋帽) | gàimào | block (basketball)
掩盖 (掩蓋) | yǎngài | to conceal / to hide behind / to cover up
盖世 (蓋世) | gàishì | unrivalled / matchless
此 | cǐ | this / these
因此 | yīncǐ | thus / consequently / as a result
此处 (此處) | cǐchù | this place / here (literary)
在此 | zàicǐ | hereto / here
此外 | cǐwài | besides / in addition / moreover / furthermore
如此 | rúcǐ | in this way / so
由此 | yóucǐ | hereby / from this
此时 (此時) | cǐshí | now / this moment
特此 | tècǐ | hereby
彼此 | bǐcǐ | each other / one another
为此 (為此) | wèicǐ | for this reason / with regards to this / in this respect / in order to do this / to this end
此刻 | cǐkè | this moment / now / at present
从此 (從此) | cóngcǐ | from now on / since then / henceforth
此次 | cǐcì | this time
身 | shēn | body / life / oneself / personally / one's morality and conduct / the main part of a structure or body / pregnant / classifier for sets of clothes: suit, twinset / Kangxi radical 158
身份 | shēnfèn | identity / status / capacity / dignity / position / rank
身体 (身體) | shēntǐ | the body / one's health / CL: 具, 個|个 / in person
身份证 (身份證) | shēnfènzhèng | identity card / ID
身高 | shēngāo | (a person's) height
身边 (身邊) | shēnbiān | at one's side / on hand
本身 | běnshēn | itself / in itself / per se
随身 (隨身) | suíshēn | to (carry) on one's person / to (take) with one
健身 | jiànshēn | to exercise / to keep fit / to work out / physical exercise
自身 | zìshēn | itself / oneself / one's own
终身 (終身) | zhōngshēn | lifelong / all one's life / marriage
身后 (身後) | shēnhòu | posthumous / one's social background / behind the body
发 (髮) | fà | hair / Taiwan pr. [fa3]
头发 (頭髮) | tóufa | hair (on the head)
发型 (髮型) | fàxíng | hairstyle / coiffure / hairdo
直发 (直髮) | zhífà | straight hair
美发 (美髮) | měifà | hairdressing / beautiful hair
理发 (理髮) | lǐfà | a barber / hairdressing
长发 (長髮) | chángfà | long hair
白发 (白髮) | báifà | white or gray hair / CL: 根
金发 (金髮) | jīnfà | blond / blonde / fair-haired
发卡 (髮卡) | fàqiǎ | hair grip / hair clip
发包 (髮包) | fàbāo | bun hair extension
常见 (常見) | chángjiàn | commonly seen / common / to see sth frequently
常见问题 (常見問題) | chángjiànwèntí | common problems / FAQ
常 | cháng | always / ever / often / frequently / common / general / constant
日常 | rìcháng | daily / everyday
非常 | fēicháng | very / very much / unusual / extraordinary
常用 | chángyòng | in common usage
经常 (經常) | jīngcháng | frequently / constantly / regularly / often / day-to-day / everyday / daily
正常 | zhèngcháng | regular / normal / ordinary
异常 (異常) | yìcháng | exceptional / abnormal / an anomaly
常识 (常識) | chángshí | common sense / general knowledge / CL: 門|门
常州 | Chángzhōu | Changzhou prefecture-level city in Jiangsu
@@ -0,0 +1,129 @@
---
title: "千字文 - 3/2"
date: "2019-09-15"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 恭惟鞠養,豈敢毀傷。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24685.gif" )
figcaption.text-center gong1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24799.gif" )
figcaption.text-center wei2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/38816.gif" )
figcaption.text-center ju1
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/39178.gif" )
figcaption.text-center yang3
.w-100
figure.d-inline-block
.hanzi-img 豈
figcaption.text-center qi3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25954.gif" )
figcaption.text-center gan3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/27584.gif" )
figcaption.text-center hui3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/20663.gif" )
figcaption.text-center shang1
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
恭喜 | gōngxǐ | congratulations / greetings
恭 | gōng | respectful
恭贺 (恭賀) | gōnghè | to congratulate respectfully / to express good wishes
恭候 | gōnghòu | to look forward to sth / to wait respectfully
恭喜发财 (恭喜發財) | gōngxǐfācái | May you have a prosperous New Year! (New Year's greeting)
恭敬 | gōngjìng | deferential / respectful
恭维 (恭維) | gōngwei | to praise / to speak highly of / compliment / praise
恭祝 | gōngzhù | to congratulate respectfully / to wish good luck and success (esp. to a superior) / with best wishes (in writing)
玩世不恭 | wánshìbùgōng | to trifle without respect (idiom); to despise worldly conventions / frivolous
惟 | wéi | -ism / only
惟有 | wéiyǒu | variant of 唯有
惟一 | wéiyī | only / sole / variant of 唯一
惟妙惟肖 | wéimiàowéixiào | to imitate to perfection / to be remarkably true to life
惟恐 | wéikǒng | for fear that / lest / also written 唯恐
惟独 (惟獨) | wéidú | only / solely / this one alone
伏惟 | fúwéi | to lie prostrate / to prostrate oneself (in veneration)
鞠 | jū | to bring up / to rear / Taiwan pr. [ju2]
鞠躬 | jūgōng | to bow / (literary) to bend down
鞠躬尽瘁 (鞠躬盡瘁) | jūgōngjìncuì | to bend to a task and spare no effort (idiom); striving to the utmost
鞠躬尽瘁,死而后已 (鞠躬盡瘁,死而後已) | jūgōngjìncuì, sǐ'érhòuyǐ | to bend to a task and spare no effort unto one's dying day (idiom); striving to the utmost one's whole life / with every breath in one's body, unto one's dying day
蹴鞠 | cùjū | cuju, ancient Chinese football (soccer)
鞠躬尽力 (鞠躬盡力) | jūgōngjìnlì | to bend to a task and spare no effort (idiom); striving to the utmost / same as 鞠躬盡瘁|鞠躬尽瘁
培养 (培養) | péiyǎng | to cultivate / to breed / to foster / to nurture / to educate / to groom (for a position) / education / fostering / culture (biology)
营养 (營養) | yíngyǎng | nutrition / nourishment / CL: 種|种
保养 (保養) | bǎoyǎng | to take good care of (or conserve) one's health / to keep in good repair / to maintain / maintenance
养生 (養生) | yǎngshēng | to maintain good health / to raise a child or animal / curing (of concrete etc)
养 (養) | yǎng | to raise (animals) / to bring up (children) / to keep (pets) / to support / to give birth
养殖 (養殖) | yǎngzhí | to cultivate / cultivation / to further / to encourage
养护 (養護) | yǎnghù | to maintain / to conserve / curing (concrete etc)
养老 (養老) | yǎnglǎo | to provide for the elderly (family members) / to enjoy a life in retirement
养成 (養成) | yǎngchéng | to cultivate / to raise / to form (a habit) / to acquire
素养 (素養) | sùyǎng | (personal) accomplishment / attainment in self-cultivation
养老保险 (養老保險) | yǎnglǎobǎoxiǎn | old-age insurance
岂不 (豈不) | qǐbù | how couldn't...? / wouldn't it...?
岂 (豈) | kǎi | old variant of 愷|恺 / old variant of 凱|凯
岂 (豈) | qǐ | how? (emphatic question)
岂止 (豈止) | qǐzhǐ | not only / far from / more than
岂有此理 (豈有此理) | qǐyǒucǐlǐ | how can this be so? (idiom); preposterous / ridiculous / absurd
岂非 (豈非) | qǐfēi | wouldn't it be ... ?
岂敢 (豈敢) | qǐgǎn | how could one dare? / I don't deserve such praise
敢于 (敢於) | gǎnyú | to have the courage to do sth / to dare to / bold in
勇敢 | yǒnggǎn | brave / courageous
敢死队 (敢死隊) | gǎnsǐduì | suicide squad / kamikaze unit
敢达 (敢達) | Gǎndá | Gundam, Japanese animation franchise
果敢 | guǒgǎn | courageous / resolute and daring
胆敢 (膽敢) | dǎngǎn | to dare (negative connotation) / to have the audacity to (do sth)
敢为人先 (敢為人先) | gǎnwéirénxiān | to dare to be first / to pioneer (idiom)
敢为 (敢為) | gǎnwéi | to dare to do
石敢当 (石敢當) | shígǎndāng | stone tablet erected to ward off evil spirits
竟敢 | jìnggǎn | to have the impertinence / to have the cheek to
不敢当 (不敢當) | bùgǎndāng | lit. I dare not (accept the honor); fig. I don't deserve your praise / you flatter me
不敢恭维 (不敢恭維) | bùgǎngōngwei | to be underwhelmed / to be less than impressed
不敢苟同 | bùgǎngǒutóng | to beg to differ (idiom)
毁 (毀) | huǐ | to destroy / to damage / to ruin / to defame / to slander
毁灭 (毀滅) | huǐmiè | to perish / to ruin / to destroy
摧毁 (摧毀) | cuīhuǐ | to destroy / to wreck
销毁 (銷毀) | xiāohuǐ | to destroy (by melting or burning) / to obliterate
坠毁 (墜毀) | zhuìhuǐ | (of an airplane etc) to fall to the ground and crash
毁掉 (毀掉) | huǐdiào | to destroy
损毁 (損毀) | sǔnhuǐ | to cause damage to / to ruin / to destroy
诋毁 (詆毀) | dǐhuǐ | to vilify / to slander / vilification
毁损 (毀損) | huǐsǔn | impair, damage
毁灭性 (毀滅性) | huǐmièxìng | destructive / devastating
伤害 (傷害) | shānghài | to injure / to harm
伤 (傷) | shāng | to injure / injury / wound
伤感 (傷感) | shānggǎn | sad / emotional / sentimental / pathos
悲伤 (悲傷) | bēishāng | sad / sorrowful
受伤 (受傷) | shòushāng | to sustain injuries / wounded (in an accident etc) / harmed
损伤 (損傷) | sǔnshāng | to harm / to damage / to injure / impairment / loss / disability
忧伤 (憂傷) | yōushāng | distressed / laden with grief
伤心 (傷心) | shāngxīn | to grieve / to be broken-hearted / to feel deeply hurt
伤口 (傷口) | shāngkǒu | wound / cut
伤亡 (傷亡) | shāngwáng | casualties / injuries and deaths
@@ -0,0 +1,128 @@
---
title: "千字文 - 3/3"
date: "2019-09-23"
tag:
- 千字文
- 汉字
---
// nuxt
```pug
.w-100.mt-3
h3.text-center 女慕貞絜,男效才良。
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/22899.gif" )
figcaption.text-center nu:3
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/24917.gif" )
figcaption.text-center mu4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/35998.gif" )
figcaption.text-center zhen1
figure.d-inline-block
.hanzi-img 絜
figcaption.text-center xie2
.w-100
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/30007.gif" )
figcaption.text-center nan2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25928.gif" )
figcaption.text-center xiao4
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/25165.gif" )
figcaption.text-center cai2
figure.d-inline-block
img.hanzi-img(src="https://www.mdbg.net/chinese/rsc/img/stroke_anim/33391.gif" )
figcaption.text-center liang2
```
===
// nuxt
```css
table td:first-child {
width: 10em;
}
figure {
width: 100px;
}
.hanzi-img {
font-size: 80px;
text-align: center;
font-family: san;
}
```
女性 | nǚxìng | woman / the female sex
女子 | nǚzǐ | woman / female
女孩 | nǚhái | girl / lass
美女 | měinǚ | beautiful woman
女人 | nǚrén | woman
女人 | nǚren | wife
才女 | cáinǚ | talented girl
女生 | nǚshēng | schoolgirl / female student / girl
女神 | nǚshén | goddess / nymph
女士 | nǚshì | lady / madam / CL: 個|个, 位 / Miss / Ms
少女 | shàonǚ | girl / young lady
女装 (女裝) | nǚzhuāng | women's clothes
妇女 (婦女) | fùnǚ | woman
女儿 (女兒) | nǚ'ér | daughter
男女 | nánnǚ | male-female / male and female
处女 (處女) | chǔnǚ | virgin / maiden / inaugural
慕 | mù | to admire
羡慕 (羨慕) | xiànmù | to envy / to admire
慕尼黑 | Mùníhēi | München or Munich, capital of Bavaria, Germany
爱慕 (愛慕) | àimù | to adore / to admire
百慕大 | Bǎimùdà | Bermuda
慕容 | Mùróng | a branch of the Xianbei 鮮卑|鲜卑 nomadic people / two-character surname Murong
慕丝 (慕絲) | mùsī | mousse (loanword)
慕斯 | mùsī | mousse (loanword)
慕名 | mùmíng | to admire sb's reputation / to seek out famous person or location
倾慕 (傾慕) | qīngmù | to adore / to admire greatly
慕名而来 (慕名而來) | mùmíng'érlái | to come to a place on account of its reputation (idiom); attracted to visit a famous location
仰慕 | yǎngmù | to admire
百慕达 (百慕達) | Bǎimùdá | Bermuda (Tw)
思慕 | sīmù | to cherish the memory of sb / to think of with respect
童贞 (童貞) | tóngzhēn | virginity / chastity
贞操 (貞操) | zhēncāo | (usually of women) chastity / virginity / virtue / honor / loyalty / moral integrity
贞德 (貞德) | Zhēndé | Jeanne d'Arc (1412-1431), French heroine and liberator, executed as a witch by the Burgundians and English / also called Jehanne Darc, the Maid or Orleans, Joan of Arc or St Joan
贞洁 (貞潔) | zhēnjié | chastity
忠贞 (忠貞) | zhōngzhēn | loyal and dependable
坚贞不屈 (堅貞不屈) | jiānzhēnbùqū | faithful and unchanging (idiom); steadfast
圣女贞德 (聖女貞德) | Shèngnǚ Zhēndé | Joan of Arc (1412-1431), French heroine and liberator, executed as a witch by the Burgundians and English
絜 | jié | clean
絜 | xié | marking line / pure / to regulate
较长絜短 (較長絜短) | jiàochángxiéduǎn | to compare long and short / to compare the pros and cons
较短絜长 (較短絜長) | jiàoduǎnxiécháng | to compare long and short / to compare the pros and cons
男人 | nánrén | a man / a male / men / CL: 個|个
男星 | nánxīng | male star / famous actor
男士 | nánshì | man / gentleman
男生 | nánshēng | schoolboy / male student / boy / guy (young adult male)
男子 | nánzǐ | a man / a male
男孩 | nánhái | boy / CL: 個|个
男友 | nányǒu | boyfriend
男装 (男裝) | nánzhuāng | men's clothes
男篮 (男籃) | nánlán | men's basketball / men's basketball team
男性 | nánxìng | the male sex / a male
宅男 | zháinán | a guy who stays at home all the time, typically spending a lot of time playing online games (derived from Japanese "otaku")
有效 | yǒuxiào | effective / in effect / valid
高效 | gāoxiào | efficient / highly effective
效果 | xiàoguǒ | result / effect / quality / CL: 個|个
效率 | xiàolǜ | efficiency
特效 | tèxiào | special effect / specially good effect / especially efficacious
才能 | cáinéng | talent / ability / capacity
才女 | cáinǚ | talented girl
刚才 (剛纔) | gāngcái | just now / a moment ago
专业人才 (專業人才) | zhuānyèréncái | expert (in a field)
才艺 (才藝) | cáiyì | talent
才华 (才華) | cáihuá | talent / CL: 份
天才 | tiāncái | talent / gift / genius / talented / gifted
良好 | liánghǎo | good / favorable / well / fine
优良 (優良) | yōuliáng | fine / good / first-rate
精良 | jīngliáng | excellent / of superior quality
善良 | shànliáng | good and honest / kindhearted
良心 | liángxīn | conscience
驯良 (馴良) | xùnliáng | docile / tame
改良 | gǎiliáng | to improve (sth) / to reform (a system)
良性 | liángxìng | positive (in its effect) / leading to good consequences / virtuous / (medicine) benign (tumor etc)
+188
View File
@@ -0,0 +1,188 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
太酷了!
---
真酷!
---
哇!
---
哎呀[哎哟],你的帽子被风刮走了!
---
妙不可言!
---
干得不错!
---
好样儿的!
---
好极了!
---
好家伙!
---
真有你的!
---
太棒了!
---
真厉害! 太了不起了!
---
真行!
---
真不得了!
---
这才像话。
---
真不像话 !
---
太不像话了!
---
你当真吗?
---
真的吗?
---
太可惜了、 真可惜!
---
真是的,质量真次。
---
真想不到
---
真受不了!
---
太过分了!
---
可恶极了!
---
真惊人!
---
天哪!
---
我的天哪!
---
妈呀!
---
我的妈呀!
---
真倒霉 !、 真不走运!、真不幸 !
---
太糟糕了!、真糟糕!
---
糟了!、惨了!完蛋了!坏了!
---
* 这回我可亲眼看见啦!
* 他早就走啦。
---
* 特殊情况吗,还是特殊对待。
* 你难道没看见我正在忙着吗?
---
* 既然你忙,就别去嘛。
* 喂, 汽车开慢点嘛!
* 有意见就提嘛! 你怎么不提呀?
---
* 多好的消息呀! 这个瓜呀,甜得恨!
* 她是谁呀?
* 你怎么不学一学呀!
---
* 多好的地方啊 !
* 这是多么鼓舞人心的消息啊 !
* 你可要小心啊 !
---
* 春天了,桃花都开了。
* 好了,别再提那件事了。
---
* 好吧! 这事儿就这样办啦。
* 他好像是这么说的吧。
* 大概是前天吧。
* 好吧。
---
* 天下着雨呢。
* 老吴, 有人找你呢。
---
* 菊花开, 有红的, 有黄的 。
* 明天他会来的。
* 屋子里静悄悄的。
* 好的。
* 是的。
+104
View File
@@ -0,0 +1,104 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
罗马人的黄金时代已过去了。
--
- 罗 马 luó mǎ Rome, capital of Italy
- 黄 金 时 代 huáng jīn shí dài golden age
- 已 yǐ already; to stop
- 过 去 guò qù (in the) past
---
黄河是中国的第二大河流。
--
- 河 流 hé liú river
---
哲学上的玄想出自实际情况。
--
- 哲 学 zhé xué philosophy
- 玄 xuán black; mysterious
- 想 出 xiǎng chū to figure out
- 实 际 情 况 shí jì qíng kuàng actual circumstances
---
宇宙毫无疑问是无限的。
--
- 宇 宙 yǔ zhòu universe; cosmos
- 毫 无 疑 问 háo wú yí wèn certainty
- 无 限 wú xiàn unlimited
---
许多房屋被洪水冲走了。
--
- 许 多 xǔ duō many; a lot of
- 房 屋 fáng wū house; building
- 被 bèi quilt; by
- 洪 水 hóng shuǐ deluge; flood
- 冲 走 chōng zǒu to flush away
---
多么荒唐的故事!
--
- 荒 唐 huāng táng beyond belief
- 故 事 gù shì old practice
---
我当初荒废了岁月。
--
- 当 初 dāng chū at that time
- 荒 废 huāng fèi to abandon (cultivated fields)
- 岁 月 suì yuè years; time
---
资产盈利能力或一些其他的价值,它们的主人。
--
- 资 产 zī chǎn property; assets
- 盈 利 yíng lì profit; gain
- 能 力 néng lì capability; ability
- 或 huò maybe; perhaps; or
- 一 些 yī xiē some; a few
- 其 他 qí tā other; the rest
- 价 值 jià zhí value; worth
- 主 人 zhǔ rén master; host; owner
---
庆祝历史上的每个圣人的诞辰
--
- 庆 祝 qìng zhù to celebrate
- 历 史 上 lì shǐ shàng historical
- 圣 人 shèng rén saint; sage
- 诞 辰 dàn chén birthday
---
那张CD是我儿子的。
+156
View File
@@ -0,0 +1,156 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
一股寒流侵袭了欧洲。
--
- 寒 流 hán liú cold stream
- 侵 袭 qīn xí to invade
- 欧 洲 ōu zhōu Europe
---
天气非常寒冷。
--
- 寒 冷 hán lěng cold (climate)
---
寒风席卷北方。
--
- 席 卷 xí juǎn to engulf; to sweep
- 北 方 běi fāng north
---
暑假期间,我在邮局工作。
--
- 暑 假 shǔ jià summer vacation
- 期 间 qī jiān period of time
- 邮 局 yóu jú post office
---
他们去了爱丁堡避暑。
--
- 爱 丁 堡 ài dīng bǎo Edinburgh, capital of Scotland
- 避 暑 bì shǔ to be away for the summer holidays
---
然而,相反的理论往往也是真的。
--
- 然 而 rán ér however; yet; but
- 相 反 xiāng fǎn opposite; contrary
- 理 论 lǐ lùn theory; to argue
- 往 往 wǎng wǎng often; frequently
---
我不能再往前走了。
--
- 往 前 wǎng qián to move forwards
---
春天和秋天,你更喜欢哪个?
---
今年中秋节是星期一吗?
--
- 中 秋 节 zhōng qiū jié the Mid-Autumn Festival on 15th of 8th lunar month
---
你有没有收据?
--
- 收 据 shōu jù receipt
---
对不起。我收回我的话。
--
- 收 回 shōu huí to regain
---
我今天收到了她的信。
--
- 收 到 shōu dào to receive
---
西藏的好水就是世界的好水。
--
- 西 藏 xī zàng Tibet
- 世 界 shì jiè world
---
他把它藏在了门后。
---
谁在影子里藏着?
--
- 影 子 yǐng zi shadow; reflection
---
我想知道这个冬天在我们的城市会不会下雪。
--
- 城 市 chéng shì city; town
- 下 雪 xià xuě to snow
---
冬季是一年中最冷的季节。
--
- 冬 季 dōng jì winter
- 年 中 nián zhōng within the year
- 季 节 jì jié time; season
---
我们为过冬储备了10吨煤。
--
- 过 冬 guò dōng to get through the winter
- 储 备 chǔ bèi reserves
- 吨 dūn ton (loanword)
- 煤 méi coal
+126
View File
@@ -0,0 +1,126 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
用闰表来测定的格林尼治时间。
--
- 测 定 cè dìng to survey and evaluate
- 格 林 尼 治 gé lín ní zhì Greenwich (former location of Greenwich observatory, at zero longitude)
---
闰的(闰日、闰年的)在日历中加入一天或一月而使历年与太阳年相吻合的
--
- 加 入 jiā rù to become a member
- 日 历 rì lì calendar
- 历 年 lì nián calendar year
- 吻 合 wěn hé to be a good fit
---
尽管现在中国人的生活越来越好了,可是还有改进的余地。
--
- 尽 管 jǐn guǎn despite; although
- 越 来 越 yuè lái yuè more and more
- 改 进 gǎi jìn to improve
- 余 地 yú dì margin; leeway
---
你留在这儿,其余的人去外面
--
- 其 余 qí yú the rest; remaining
---
他和我同岁。
---
你多大岁数了?
---
法律有很多不明确的地方。
--
- 法 律 fǎ lǜ law
- 不 明 确 bù míng què indefinite; unclear
---
嚴以律己, 寬以待人。
--
- 严 以 律 己 yǎn yǐ lǜ jǐ to be strict with oneself (idiom)
- 宽 以 待 人 kuān yǐ dài rén to be lenient with others (idiom)
---
心里正在捉着迷藏,吕校长鞠躬请他演讲,下面一阵鼓掌。
--
- 捉 zhuō to clutch; to grab
- 着 迷 zháo mí to be fascinated
- 校 长 xiào zhǎng (college, university) president
- 鞠 躬 jū gōng to bow
- 演 讲 yǎn jiǎng lecture
- 一 阵 yī zhèn a burst; a fit
- 鼓 掌 gǔ zhǎng to applaud; to clap
---
他强调都市生活的便利方面。
--
- 强 调 qiáng diào to emphasize (a statement)
- 都 市 dū shì city; metropolis
- 生 活 shēng huó life; activity
- 便 利 biàn lì convenient; easy
- 方 面 fāng miàn respect; aspect
---
现今人们没有空调无法生活。
--
- 无 法 wú fǎ unable; incapable
---
众口难调。
---
我想特别强调这一点。
---
如果没有太阳,那所有生物都会死。
---
住家的阳台都对着广
--
- 阳 台 yáng tái balcony; porch
---
这间房照不到很多阳光。
+111
View File
@@ -0,0 +1,111 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
他们俩相爱已经多年。
---
她特别地恨那个男孩。
---
听了这消息我心里很不安。
---
她的优点是临危不乱。
---
多数旧电影片都是黑白的。
---
这个墨颜色很黑。
---
冰太薄,承受不住你的重量。
---
厚厚的云把风景遮住了。
---
我饱了,一点也吃不下了。
---
这孩子不是肚子饿,就是馋嘴。
---
他的境遇很可悲。
---
大厅里充满了他们的欢笑声。
---
他的背上有一个蛇形的红斑。
---
病人服药后腹痛逐止。
---
虽然笨,可是他很刻苦。
---
他很年轻,身子骨很灵巧。
---
这本书的缺点是太长。
---
他把头发剪成时兴的短发。
---
他发誓要为父亲报仇。
---
你不像是忘恩负义的人。
---
安居乐业
---
黑名单
---
厚此薄彼
---
悲欢离合
---
笨手笨脚
---
日短夜长
---
恩将仇报
@@ -0,0 +1,95 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
假若要起风,就不要出海。
---
人们蜂拥而进入电影院。
---
他穿了一套很坏的粗布衣服。
---
她纺的线又细又匀。
---
你把我的鼻子画得太大了。
---
那只小钟丁当丁当地报时。
---
他定了一间有两张单人床的房间。
---
中国人一般都是单性双名。
---
淡而无味
---
一般而论,美国食物味道清淡。
---
茶太浓了,给我对点儿水。
---
贪多必失
---
他得到了一笔奖金。
---
在家庭里,我们不计较得失。
---
太阳从东向西移动。
---
塔里木盆地在中国西部。
---
他扭了腰,动不了。
---
生活永远不是静止的。
---
或多或少
---
他多嘴多舌,是个碎嘴子。
---
懂得最多的人,说得最少。
---
这个繁难的问题解决了。
---
房间没有装饰,极为简陋。
@@ -0,0 +1,172 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
source: https://th.hujiang.com/new/p394824/
---
调味料
--
เครื่องปรุงรส
---
沙拉油
--
น้ำมันสลัด
---
蚝油
--
น้ำมันหอย
---
面包屑
--
เศษขนมปัง
---
酦粉
--
แป้งฟู
---
调味汁
--
น้ำปรุงรสอาหาร
---
面粉
--
แป้งข้าวสาลี
---
香料
--
เครื่องเทศ
---
盐
--
เกลือ
---
胡椒
--
พริกไทย
---
蕃茄酱
--
ซอสมะเขือเทศ
---
酱油
--
ซีอิ๊ว
---
糖
--
น้ำตาล
---
辣酱
--
ซอสพริก
---
醋
--
น้ำส้ม
---
黄油
--
เนย
---
花生酱
--
เนยถั่ว
---
椰浆
--
น้ำกะทิ
---
牛奶
--
นม
---
虾酱
--
กะปิ
---
鱼露
--
น้ำปลา
+112
View File
@@ -0,0 +1,112 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
我们应当用右手拿着坚固的盾牌去捍卫我们在中东的利益。
--
- 应 当 yīng dāng should; ought to
- 右 手 yòu shǒu right hand
- 拿 ná to hold; to seize
- 坚 固 jiān gù firm; firmly; hard
- 盾 牌 dùn pái shield; pretext
- 捍 卫 hàn wèi to defend
- 利 益 lì yì benefit
---
倾盆大雨劈头盖脸地浇了下来。
--
- 倾 盆 大 雨 qīng pén dà yǔ a downpour
- 劈 头 盖 脸 pī tóu gài liǎn lit. splitting the head and covering the face (idiom)
- 浇 jiāo to pour liquid
- 下 来 xià lai to come down
---
我踢足球的時候弄傷了腿。
--
- 踢 tī to kick
- 足 球 zú qiú soccer ball; soccer
- 弄 伤 nòng shāng to bruise
- 腿 tuǐ hip bone
---
你认为汤姆的腰围是多少?
--
- 汤 姆 tāng mǔ Tom (name)
- 腰 围 yāo wéi waist measurement
---
一定是有人偷了你的手錶。
--
- 偷 tōu to steal; to pilfer
- 手 表 shǒu biǎo wrist watch
---
抡锤子的工作使胳膊上的肌肉结成了一块块硬疙瘩。
--
- 抡 lūn to swing (one's arms, a heavy object)
- 锤 子 chuí zi hammer
- 胳 膊 gē bo arm
- 肌 肉 jī ròu muscle; flesh
- 结 成 jié chéng to form
- 硬 yìng hard; stiff; strong
- 疙 瘩 gē da swelling or lump on skin
---
吃些火腿。
--
- 些 xiē some; few; several
- 火 腿 huǒ tuǐ ham
---
他脸上显出一副严肃的神色。
--
- 脸 liǎn face
- 显 出 xiǎn chū to express
- 严 肃 yán sù solemn; grave
- 神 色 shén sè expression; look
---
鸟的翅膀相当于人的胳膊。
--
- 翅 膀 chì bǎng wing
- 相 当 于 xiāng dāng yú equivalent to
- 胳 膊 gē bo arm
---
这事他早就扔在脖子后边了。
--
- 早 就 zǎo jiù already at an earlier time
- 扔 rēng to throw
- 脖 子 bó zi neck
- 后 边 hòu bian back; rear; behind
@@ -0,0 +1,163 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
^^speak 你把别人想得太复杂,是因为你也不简单。
---
^^speak 有人对我说,下辈子,你早点来!我说,上辈子你也是这么说的。
---
^^speak 小时候上课玩手机,组长说别玩了,我说不玩手机玩你啊。
---
^^speak 人家考高分就要求我也考高分,人家开法拉利了你怎么不买一辆。
--
^^speak 法拉利
---
^^speak 现在都不流行作弊了,流行交白卷。
---
^^speak 凡是在食堂,自习室,教学楼前当众疯狂接吻--都是开不起房的!
---
^^speak 大学四年没有一个女生问过我路,今天带一次开宝马回母校办点事,结果一会功夫就有五个女生来问路。
--
^^speak 宝马
---
^^speak 长得丑的女孩子我一般不甩她,但你是个例外。
---
^^speak 打死你我也不说。
---
^^speak 打死我我也不说。
---
^^speak 年轻时不懂事,经常拉着mm逛街,结果伤害了不少mm;现在不拉了,没想到又伤害不少......
--
mm
--
^^speak 妹妹
---
^^speak 女人对你说“讨厌”的时候表明她喜欢你,男人对你说“讨厌”的时候他是真的讨厌你。
---
^^speak 男人读到博士是因为智商低,女人读到博士是因为情商低。
--
^^speak 智商
^^speak 情商
--
IQ
EQ
---
^^speak 最丢脸是和几个同学讨论薪水,原以为他们说的是年薪,后来才发现他们说的都是月薪...
---
^^speak 若不弃,此生不离;若嫌弃,死一边去。
---
^^speak 如果美丽是一种罪,那我已经犯下了滔天大罪。
---
^^speak 滔天大罪
---
^^speak 长得丑不是你的错,只是上帝打了个盹儿你要有勇气面对一切啊。
---
^^speak 打了个盹儿
---
^^speak 爷爷说:周杰伦出家一定是个好和尚,因为他念的经实在太好听了。
---
^^speak 那天,你说讨厌我,我笑了,笑得撕心裂肺
---
^^speak 撕心裂肺
---
^^speak 你出生后是不是被扔上去三次,但只被接住2次。
---
^^speak 工资就像大姨妈,一个月一次,一周左右就没了。
--
^^speak 大姨妈
---
^^speak 亲爱的,你可得一定要相信我啊,我连坐船都头晕,更何况是脚踏两只船呢!
---
^^speak 脚踏两只船
---
^^speak 有的人,做面膜的时候,比真人好看多了。
--
^^speak 面膜
---
^^speak 别谢,写完还怎么好意思想你收钱啊!
---
^^speak 别以为我长的帅就认为我遥不可及高不可攀,其实我是海纳百川啊。
---
^^speak 海纳百川
---
^^speak 不要把我对你的容忍当成你不要脸的资本!
@@ -0,0 +1,131 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
骨
--
🦴
---
肌肉
--
💪
---
大腿
--
![](https://pic1.zhimg.com/ec5d25d6aadb0c6fff8411792fdfbe5c_1200x500.jpg)
---
胡须
--
![](http://pic.616pic.com/ys_bnew_img/00/08/27/XTgEsnGle8.jpg)
---
鼻子
--
👃
---
眼睛
--
👀
---
脚
--
🦶
---
食指
--
☝️
---
手掌
--
🖐️
---
牙齿
--
🦷
---
唇
--
👄
---
舌头
--
👅
---
大脑
--
🧠
---
胡子
--
![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSfPYTsGJKC3Z9jUQbmYccy9cnnClgITQgZ9yppOPRMwkW9fBf-)
---
心脏
--
❤️
---
耳朵
--
👂
@@ -0,0 +1,125 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
害怕
--
😨
---
担心
--
😓
---
生气
--
😠
---
高兴
--
😊
---
睡觉
--
😪
---
休息
--
♨️
---
举手
--
🙋
🙋‍♂️
---
微笑
--
😊
---
哭
--
😢
---
泪流满面
--
😭
---
啜泣
--
😢
---
辛苦
--
![](https://stickershop.line-scdn.net/stickershop/v1/sticker/8829663/android/sticker.png)
---
呕吐
--
🤮
---
害羞
--
😳
---
大便
--
💩
@@ -0,0 +1,195 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
兄弟
--
👬
---
家庭
--
👨‍👩‍👧‍👦
---
新郎
--
🤵
---
新娘
--
👰
---
男孩
--
👦
---
女孩
--
👱‍♀️
---
婴儿
--
👶
---
男人
--
👱
---
女人
--
👩
---
好朋友
--
(●'◡'●)ノ*\\(๑•₃•๑)*
---
工人
--
👷
---
厨师
--
👩‍🍳
---
农民
--
👨‍🌾
---
美发
--
💇
---
理发
--
💇‍♂️
---
警察
--
👮
---
运动员
--
🏃
---
飞行员
--
👩‍✈️
---
学生
--
👨‍🎓
---
科学家
--
👩‍🔬
---
侦探
--
🕵
---
服务员
--
💁
---
法官
--
👨‍⚖️
---
医生
--
👩‍⚕️
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,267 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
^^speak(s="维基百科") ![](https://upload.wikimedia.org/wikipedia/en/thumb/8/80/Wikipedia-logo-v2.svg/1200px-Wikipedia-logo-v2.svg.png)
--
维基百科
===
^^speak(s="谷歌") ![](https://sites.google.com/site/khxmuleleasarsnthes/_/rsrc/1480953778509/watthuprasngkh/googlelogo_color_284x96dp.png)
--
谷歌
===
^^speak(s="新浪") ![](https://upload.wikimedia.org/wikipedia/en/thumb/6/6e/Sina_Weibo.svg/1200px-Sina_Weibo.svg.png)
--
新浪
===
^^speak(s="苹果") ![](https://www.apple.com/ac/structured-data/images/knowledge_graph_logo.png?201809210816)
--
苹果
蘋果
===
^^speak(s="三星") ![](https://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Samsung_Logo.svg/512px-Samsung_Logo.svg.png)
--
三星
===
^^speak(s="华为") ![](https://www.broadcastingcable.com/.image/t_share/MTYyMTM4MjE0MzY5MzM5MDA1/huawei-logo.jpg)
--
华为
華為
===
^^speak(s="索尼") ![](https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/062011/sony.ai_.png?itok=Bvdz4vkc)
--
索尼
===
^^speak(s="宏达电") ![](https://ksassets.timeincuk.net/wp/uploads/sites/54/2015/08/HTC-Logo-2-1.jpg)
--
宏达电
宏達電
===
^^speak(s="华硕") ![](https://res.cloudinary.com/teepublic/image/private/s--JAy8aDN2--/t_Preview/b_rgb:fffffe,c_limit,f_jpg,h_630,q_90,w_630/v1492302895/production/designs/1460411_1.jpg)
--
华硕
華碩
===
^^speak(s="宏碁") ![](https://i.ytimg.com/vi/zNuARfhntk8/maxresdefault.jpg)
--
宏碁
===
^^speak(s="摩托罗拉") ![](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Motorola_M_symbol_blue.svg/1024px-Motorola_M_symbol_blue.svg.png)
--
摩托罗拉
===
^^speak(s="小米") ![](https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Xiaomi_logo.svg/1024px-Xiaomi_logo.svg.png)
--
小米
===
^^speak(s="乐金") ![](https://images.techhive.com/images/article/2015/11/lg-logo-100629042-large.jpg)
--
乐金
===
^^speak(s="維沃") ![](https://i.pinimg.com/originals/4a/2d/f1/4a2df1cfe75dfcddabd8ca7471a03c94.jpg)
--
維沃
===
^^speak(s="一加") ![](https://i.pinimg.com/originals/f1/37/c8/f137c8e169d6a1ac74198400eeb949e0.jpg)
--
一加
===
^^speak(s="夏普") ![](https://4.bp.blogspot.com/-5kAVWKFJb4M/UaVApIPvlZI/AAAAAAAAAWE/Dc-pVqYLRxE/w1200-h630-p-k-no-nu/Logo+Sharp.JPG)
--
夏普
===
^^speak(s="诺基亚") ![](https://live.staticflickr.com/4087/4990083882_2017834867_b.jpg)
--
诺基亚
===
^^speak(s="微软") ![](https://img.bhs4.com/d7/c/d7c61e7c18d8c9122ece27c0ebc99ebb1ba7a22b_large.jpg)
--
微软
===
^^speak(s="联想") ![](http://1.bp.blogspot.com/-1eowmz6Ri4w/VEfkJ9dClEI/AAAAAAAAF7o/37N7iGUi4bo/s1600/Logo%2BLenovo.png)
--
联想
===
^^speak(s="惠烈-普克") ![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/HP_logo_2012.svg/1200px-HP_logo_2012.svg.png)
--
惠烈-普克
===
^^speak(s="戴尔") ![](https://cdn.vox-cdn.com/thumbor/89gfexVszaKSQuxcpsq6y9W61sY=/0x29:574x412/1200x800/filters:focal(0x29:574x412)/cdn.vox-cdn.com/assets/977369/Dell_Logo_Tagline.jpeg)
--
戴尔
===
^^speak(s="微星科技") ![](https://ih1.redbubble.net/image.517392525.3904/flat,800x800,070,f.u1.jpg)
--
微星科技
===
^^speak(s="东芝") ![](https://assets.brandinside.asia/uploads/2017/04/toshiba-logo.jpg)
--
东芝
東芝
===
^^speak(s="富士通") ![](https://ir0.mobify.com/project-oss-www-fujitsu-com/c8/webp80/1536/https://www.fujitsu.com/global/Images/logo_tcm100-871390.gif)
--
富士通
===
^^speak(s="黑莓") ![](https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Blackberry_Logo_without_wordmark.svg/1280px-Blackberry_Logo_without_wordmark.svg.png)
--
黑莓
===
^^speak(s="阿里巴巴") ![](http://logosvg.com/wp-content/uploads/Alibaba_group_logo.png)
--
阿里巴巴
===
^^speak(s="亚马逊") ![](https://img.maximummedia.ie/her_ie/eyJkYXRhIjoie1widXJsXCI6XCJodHRwOlxcXC9cXFwvbWVkaWEtaGVyLm1heGltdW1tZWRpYS5pZS5zMy5hbWF6b25hd3MuY29tXFxcL3dwLWNvbnRlbnRcXFwvdXBsb2Fkc1xcXC8yMDE1XFxcLzA4XFxcLzA2MTUzOTM0XFxcL2FtYXpvbi5qcGdcIixcIndpZHRoXCI6NzY3LFwiaGVpZ2h0XCI6NDMxLFwiZGVmYXVsdFwiOlwiaHR0cHM6XFxcL1xcXC93d3cuaGVyLmllXFxcL2Fzc2V0c1xcXC9pbWFnZXNcXFwvaGVyXFxcL25vLWltYWdlLnBuZz9pZD1iNmY4NGQ2MjdiNDExNGYwMGY1MFwiLFwib3B0aW9uc1wiOltdfSIsImhhc2giOiJmMWQ0YzY3YWQ0MThmMWViZTU1MjI2OTE5YmE0ODg4MTg1MDRiMGQ3In0=/amazon.jpg)
--
亚马逊
亞馬遜
===
^^speak(s="電子灣") ![](https://cdn.britannica.com/81/103081-050-3502F550/logo-eBay-Inc-Meg-Whitman-auction-April-2001.jpg)
--
^^speak 電子灣
^^speak 億貝
^^speak 易贝
===
^^speak(s="猫途鹰") ![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQBUABCQXtkze6ip7CkSkG1kMd5hPJbOHQBfUVkn6rO4LBrvyDJ)
--
猫途鹰
===
^^speak(s="雅虎") ![](https://upload.wikimedia.org/wikipedia/commons/9/94/Yahoo-logo.jpg)
--
雅虎
===
^^speak(s="威訊") ![](https://cdn.vox-cdn.com/thumbor/NmAHqcPGe--HTYSmTXdNgzYJv4c=/106x0:1300x796/1200x800/filters:focal(106x0:1300x796)/cdn.vox-cdn.com/uploads/chorus_image/image/47080648/Screen_Shot_2015-09-02_at_2.20.55_pm.0.0.png)
--
威訊
@@ -0,0 +1,199 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
^^speak(s="长骨") ![](https://upload.wikimedia.org/wikipedia/commons/2/27/603_Anatomy_of_Long_Bone_zh.jpg)
--
長骨
---
^^speak(s="肌肉") ![](http://www.tswongsir-runners.guide/articles/images/muscular_system.jpg)
--
肌肉
---
^^speak(s="胡须") ![](http://pic.616pic.com/ys_bnew_img/00/08/27/XTgEsnGle8.jpg)
--
^^speak 胡子
^^speak 胡须
---
^^speak(s="大脑") ![](https://previews.123rf.com/images/coolvectorstock/coolvectorstock1811/coolvectorstock181107405/111339101-brain-inside-human-head-icon-brain-inside-human-head-symbol-design-from-human-body-parts-collection-.jpg)
--
大脑
---
^^speak(s="大腿") ![](https://pic1.zhimg.com/ec5d25d6aadb0c6fff8411792fdfbe5c_1200x500.jpg)
--
大腿
---
^^speak(s="鼻子") 👃
--
鼻子
---
^^speak(s="眼睛") 👁
--
眼睛
--
^^speak 眼镜
👓
---
^^speak(s="脚") 🦶
--
脚
---
^^speak(s="食指") ☝️
--
食指
---
^^speak(s="手掌") 🖐️
--
手掌
---
^^speak(s="牙齿") 🦷
--
牙齿
---
^^speak(s="嘴") 👄
--
嘴
---
^^speak(s="舌头") 👅
--
舌头
---
^^speak(s="心脏") ❤️
--
心脏
---
^^speak(s="耳朵") 👂
--
耳朵
---
^^speak(s="肺脏") ![](https://pic3.zhimg.com/v2-3da8467bca97a14bc9cd8eace35fe8ee_b.jpg)
--
肺脏
---
^^speak(s="胃") ![](https://pgw.udn.com.tw/gw/photo.php?u=https://uc.udn.com.tw/photo/2018/04/01/1/4618139.png&x=0&y=0&sw=0&sh=0&sl=W&fw=1050)
--
胃
---
^^speak(s="肝脏") ![](http://pic2.zhimg.com/20a454035139f7668d94233defd610d1.jpg)
--
肝脏
---
^^speak(s="胆囊") ![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT0rx9S5RcZcqnu2H_m4QfnHLhCBfP3KPP4BB19LIJ-l9KtfVDr)
--
胆囊
---
^^speak(s="胰脏") ![](https://pbs.twimg.com/media/D12MVnIUkAEbccE.png)
--
胰脏
---
^^speak(s="大肠") ![](https://pic4.zhimg.com/v2-f24e54e8099f4e6288ce8074f64183af_b.jpg)
--
大肠
--
![](https://ali.xinshipu.cn/20110625/original/1308977379903.jpg@300w_225h_90q_1e_1c.jpg)
---
^^speak(s="小肠") ![](https://thumbs.dreamstime.com/z/%E5%9C%A8%E7%99%BD%E8%89%B2%E8%83%8C%E6%99%AF%E9%9A%94-%E7%9A%84%E7%8E%B0%E5%AE%9E%E4%BA%BA%E7%9A%84%E5%B0%8F%E8%82%A0-97596337.jpg)
--
小肠
---
^^speak(s="子宫") ![](http://himg2.huanqiu.com/attachment2010/2017/0912/17/09/20170912050910547.png)
--
子宫
@@ -0,0 +1,131 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
^^speak(s="手插胸") ![](https://cdn.clickme.net/Gallery/2014/07/04/58af3970ecc143f6c004ce7a544335b7.jpg)
--
手插胸
---
^^speak(s="害羞") ![](https://www.fun01.cc/ups/227/post/600x314/5aa67a45eed3585.jpg)
--
害羞
😊
---
^^speak(s="生气") ![](https://pic3.zhimg.com/v2-a10ccfbeedb9ef03d166dd266afa02d1_1200x500.jpg)
--
生气
😡
---
^^speak(s="举手") ![](http://pic.616pic.com/ys_bnew_img/00/12/24/HVNTqfW6hs.jpg)
--
举手
🙋‍♂️
---
^^speak(s="睡醒") ![](http://img95.699pic.com/photo/50068/3811.jpg_wh860.jpg)
--
睡醒
---
^^speak(s="跑") ![](http://cw1.tw/CH/images/channel_master/8d95b303-29e3-4ef7-a59c-440a8eb08f31.jpg)
--
跑
🏃
---
^^speak(s="摔倒") ![](http://www.nongli.net/img/20161208160226235.jpg)
--
^^speak 摔倒
^^speak 跌倒
---
^^speak(s="害怕") ![](http://5b0988e595225.cdn.sohucs.com/images/20181227/26b3c1e0872e40e1862ccb94a2319e6d.png)
--
^^speak 害怕
^^speak 恐怕
^^speak 😨
---
^^speak(s="蹲下") ![](https://gss0.baidu.com/-Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/3b87e950352ac65c63c8be11fbf2b21192138a87.jpg)
--
蹲下
---
^^speak(s="咬耳朵") ![](http://m.tztzc.com/files/2017/9/20/29-480009400917-a.jpg)
--
咬耳朵
---
^^speak(s="起床晚") ![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS_oMAWOQ9BhnfmNOAIfnw-JYkWzEbrPAVLp2SOxo59jYpFw-riVQ)
--
起床晚
---
^^speak(s="睡午觉") ![](https://n.sinaimg.cn/sinacn10111/354/w1280h674/20190906/32ef-ieftthx6713905.jpg)
--
睡午觉
---
^^speak(s="跷二郎腿") ![](https://pic1.zhimg.com/v2-5b7e01f3714b9a99e7f91e4dc4f75540_b.jpg)
--
跷二郎腿
---
^^speak(s="泪流满面") ![](http://www.bqmao.com/hahafile/images/2364.jpg)
--
泪流满面
〒▽〒
@@ -0,0 +1,67 @@
---
shuffle: true
js:
- https://patarapolw.github.io/s2speak/index.min.js?key=x
---
^^speak(s="积极") ![](http://img.mp.itc.cn/upload/20170615/293ed946c0514838beb092663b4d78a2_th.jpg)
--
积极
---
^^speak(s="勇敢") ![](https://s.yimg.com/ny/api/res/1.2/R8cfMSwh6DJ4QWhWN7sFxg--~A/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAw/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/06cfed43e9221b9e5c81e5813cd85a01)
--
勇敢
---
^^speak(s="勤奋") ![](data:image/jpeg;base64,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 truncated
--
勤奋
---
^^speak(s="聪明") ![](https://images.lnka.cn/article/20170630022706731.jpg)
--
聪明
---
^^speak(s="健谈") ![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxITEhUTEhIWFRUXGRoXGRgYGBcaHhgXGxcYFx0YGBgaHiggGBolGxcZITEhJSkrLi4uGB8zODMsNygtLisBCgoKDg0OGxAQGislHyYrLS0tLTAtLS0tLS0tLy8tKy0tLSstLy0tLS0vLSstLS0tLS0tLS0tLy0tLS0tLS0tLf/AABEIALoBDgMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAAFAQIDBAYABwj/xABKEAACAQIDBAYFCAgEBQQDAAABAgMAEQQSIQUTMUEGIjJRYXEUI0KBkQcVM1JyobHBQ1NigpLR0vAkorLhRFRzg5MWFzTCJaPx/8QAGgEAAgMBAQAAAAAAAAAAAAAAAAMBAgQFBv/EAC4RAAICAQQCAQIFAwUAAAAAAAABAhEDBBIhMUFRExRhIjKRofAjgeEFcbHB0f/aAAwDAQACEQMRAD8A9xrq6uoA6upCaFz7Vu2SBN8w0JBsi/afhfwFzQAVofitsQI2RpAX+ot3f+BLsB42oRt8iGIz42WRkzIu6iui3d1jF8pzuLsAbnKe6huH6c7PhRljiMaIkz5UjCi0MgjewHPMaANJ86MexhpT4tlQf5jcfCnek4k8IEHnL/JaAy/KHhFJBEmm+v1f1OH9Jb/9fDxqRen2FLhLSXLZOz7W4GI/0Ee+gAyZ8VyhjP8A3D/TStj5h2sMxH7Dox+BtQLB/KDhJDGFEnrTAF6vOdiqX96691Mw3yjYN1RgJLOImF15TTNCl/3kPuoAPfP0I+lzw/8AVRlH8fY/zUShlVgGVgyngQQQR4Ecaxz/ACjYPKxIksBIT1eUcm6b76o43pNs9GlZBLA6HEhnhAW7YYJvCy9iT6RbZgaAPQb116DR4yZFDSLvYyAc6DrAEe3Hz81+FEcLiUdcyMGU8wb+7wPhVW6AnJrr03NTc1UcyaJL116jzU15QASSABqSTYAd5PKo3k0S3pb0MXGySfQp1T+ke6r7h2j91DekUww8ayztJNmliiyK27QGSQR3yr2gL8GLVdWQG8RtGFDleRQ31b3b3IOsfhTBtIHsRSsO8Jl/1lT91YfD/KJBGh3eDyKBKbLlUXjm3R0HMnWrGJ+UmNDKPR29UcUD1hr6LHDIbfaEwHuq1EGxXFSnhAf3nUH4a0oxE36kf+QfyrI4j5RkWRk3DdWR475hxSBZr/BrUkXyjI0iJuGu74dL5hp6RFLID7tyR76kDX+kTfqR/wCQfypvpsg7UD/ulG/MVjY/lLjIjPo7esXDN2l09JZ1HwyG9Nl+U6MJn9Hc9TP2hw9ISC3n17+6gDZ/OsY7edO/MjADzYDKPjVqDEI4zI6uO9SCPiKw2P8AlJSNZCcOx3YxJ0Ya+jTJCfiXvUG0OmmHLOWwhzK0yZ1YI/qkz6OtmAPDjUUB6JeuvWQ6K7dkxJl3VyIhCcs1iTvYVmADr3BwNQbkca0OHx4LBHUxvyVuf2W4N7taq7RJepQaZelvQpBQ69LTaUVYgWmu4AJJsOOtOoJjDv5DHe0MestvbewYR+QBu3uHfUgdd8VwJTD66i6vNy0IN0j8eLcrDjUPSzAwyHDAlTG4hyhGsH3RlAGlrZFJvUsXTDAkKVmFmVGWwPB5TAvxkUr7qyuMw+yHmfENi5Q0khxBAK2vGrYRrDJfLckcb3HHlQAV2t0n2bi4hDI7lHOGYWV1N5L4iHW2lxCSe61jxoAy7CZSS01pI2/Wapi5wO7QmS3lT02VsePKfS5vV5OJX/gIGQ39XyTEXa3HS1tQUbYex1AQ4qbq5IdSnHDlcXb6PtZbE+B0tQB2KGw7M7NNa07H6ThIU2bJpbvdVHnepJDsRGMhaa6NK5PrO1BF6NJy1sgt48RTG2LseQBPS5uuRELFO1PiVxqger4l4rD9m44610mydjyqf8XNllz8Cn/Hu1rer5srBb8La3oAfho9ixFCpmG6ZMt8/awsLYoctbRkk9/CmYTD7ECxqhmsvo6L2+QONiB07pCT52pZMBsfKznFy5evITddBJD6CT9HwsdP2teGlO+a9kR5icVN6s5muV09EiTBt+j5Arf9o6aaUARQw7DkUBWmIkC2+kFxi5rry0vIPdTpPmSQOxaYiUTSN9JwxU4wsnLS8mHsO61+dOw2xtkRWQYqb1W7SxKccG2919X3t1u8cLUmG2LscWjXFTHqpENU5ySbRX9HxOdj9kAcdaANGnTvZ6JpI+VEkbsP2YGCPy1sbefKjE+BNxNhyEc2LDgso07YHBrWs41HDUaVgF2LsZwVGLm9YjJxS+XGeuBHq+eU5e4XvethB0vwICqJwQFS2hvZpNwvxcWoAJ4HGCQHQqwNmU8VPj4dx51YzULZ0nAxWGbM0ZdDbQSBGKvG4PEhgcp4hh3FgbkE6uoZTcHX+xyNY8qcWXQ/EYhUVnY2VRcnu/vhWd2ztZYGhkxaORIX3cS2shjjaXNJcjM+VNOIU2560Zli3k0aMLqnrSORYGyX77HM3mqnlQ/pnJglMHpiM9zLu8pcWO4cvfKw/R5hr9xpmGNrcyGUMP8AKNh3MYEMo3ggIvk03/Zv1uXP86qz9OMFiY4hLhpGVvR5lDZdGkxLQxk2birx5j4W41QweJ2LeHJBLqMLk602gN9ze78uf33pMFitiZIcmHkClMPku0uinGSLEDd73E4cm/I63GlaCpE23NkZA3oDWKzNbTgMQUcdv2pBm8vhUmL23sm0rNgWP/zi3DrFI4N/7ftqYwPscqacVsPdqfR5cuSawzTdn0lhIO3xMtz328NKkxOJ2JlkzYeQj/HZutLySE4i3X9pTHa3CxtagB2J2xsrO2bAsW30qE6auuGRmbtcDGyr5j30uF2zssvHlwTBjNhkU6aOYJmibtcFQOv73OuxOJ2LmOaCTNvpr2aUet9GjLnR+BiKDuuO/WlweI2NmjyQSX3+GC3aU2lMMpiOr8BGJAfPW/GgCCDbmySkZGBcC2CyjTQSPJufb9gqx9+l6ZLtzZG7YnAMVWNSRp2GxSrbt/rMr+73VLBitiZI8uHky2wOXrS6AtJ6Nfr+yc9/PW9RS4nYW6e+HlyZFzdabsekqAPpL/S2OnLw0oAm2jtrZQWYyYF2CrjC406wTExpN7ftyFWHlyp+I21svNIDgmJVsRm4assfrD2vaXSk2hiti5Z95BIQFxm860uqjExifg/tS5SLW4aWGlWsJFsibEGFYJN5I86El5QCxQbz29ARYacOVqAHbG6W4CIkQYV03hiVrZdf8F6Ql+twEKhPMe+jOwekeH2lnjETACOGU57cJk3i2Km4YA8eXI1Yi6FYFSCINQVP0kvFYfRx7X6o5fv461b2N0cw2FLNh48hZI4z15G6kS5EFmYgWXS/E870AJFI0LiOQllbSOQ8Sdeo/wC1YaNz8+JENUe0cKJI2TmRp4MNQfcbVBs7EF4kc8WUE+dtaTNbXZKLwNLTAacKmLCittbFmKJmUZm0CDvdiFUHwzEX8L0OjxOGwsYgknRWy3YuwDMZGIMjDveQk+ZNXscmaSFTwDM/vVbD3dasr0w6MR4jEGVsYkJ3cS5GQMbJMXDXzroezw0PfTSARD0b2bGqj5xFo0VCS0fDDYtsUxPdZ5Mrd2nOkl6K7OAKHaAGQTxnWPQmUYmS/cUDrpyBB503FdBYGEoO0YxnGMB6g6onaNmv632Mmvfm5VJj+hMLvK3zhGueTFMQUBymWGFCv0ovkEYY8L5xw5gCz9F9nNdTtAXY4lLXTji4UBA8QkWYe+ny9HdnOwb5wF2l3osU1OIw24QDvukbMvfY0g6FQ70P84R3EsTgZBxXDSRBfpOJDF7+Frc6iw/QaFTDbaMZ3ZwVuoOtuIp0X9JpvBISO7IePIAkg6PbNUxv84iySYeYax2O7DQp7mZ/iNKZD0a2bGiA7QXLGMObkpwwc7C58N5LkbuNqiHQOHdonzlHpHAt92Nd3OJA30vBiMtvx4U7GdBYWjkX5xjXMk63yA2EmNjnJtvR2WUR+bX8KAOm6KbNEbxttGwyPGxJj03cu9cn7J0PdU2M6MbOcTKdoAbz0pTqnVOIKYpx5qkdx+zc0zaHQeFxKDtCNc5xhPUHV37XYfSa5Off4VIOhUNyfT49Xd+wNCcCcOR9JyU7zy08aAFPR3ZzM7jaAO8aRtDGdcTCrKB/2wGHeDSYPo7s4MrrtAHrQuNU1/w7YKP3Pckd5FqjwvQiFQttoRmxwp7A13WCGHX9J7YG8HhprxpMD0FhQJ/+Rjay4QaIBfczmRT9L7ZOUd3jQB2E6MbNXKRtEHIuHI60fZw+8wqnyZyyn9pbVd2b0AwkozRYtpAuSMlchF4cT6RY255uqR3VRToNCBptGP6IJ9GOHzhJis30vDM5i81v4Vq+ieHgwcLxnFRyZpJZs2i2Ba5Fsx7PAmgAl0e2KuFiMSuWBkkkuQBrJI0hGnIFiKiCbuZo/ZcbxfO9nHxKn96iuHxKPfIytY2NiDY2Bse42I+ND9ui26k+rIoPiJPVW8s7of3aVmjcGSuxqy5ZkJ7Lgp+9fMvx6w+FQ9Ktl4aWMTYnMEw4kkupIsDEyOSBqeoWqTERB1KsND/YIPIjjfvqCciWGTCYhioljeISiwzK6lOJGVZADwIsePhSNNmTW19lpLyZLC4fYoaMLJLdfR1W+8/RwekRA9X9Ubn4HWm7Pw+xCIVjllIy4ZY77zUb95ob3X9YzXvy40bg+TvDKVIlmJUoRcpxTC+iC/U+pqf2u4aU3CfJtho92Vmn9XuLXMf6A3W/U531+61bCgDjw+w2RQJJcpQgfSdmbGPH9XicQrDwA7taWePYZDgyy2IxZb6T9IyQz+z3xqB8Rekwew9kBUy42QgLHbVNQNoSyqexzxDPH5L360yXYWx7G+PkAyz800DT5pD9H7MnV/nxLine truncated
--
健谈
---
^^speak(s="懒惰") ![](http://i1.sinaimg.cn/dy/zl/zatan/blog/2015-09-10/09244490/1198521882/U12776P1T940D4490F24202DT20150910092437.jpg)
--
懒惰
---
^^speak(s="固执") ![](data:image/jpeg;base64,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 truncated
--
固执
---
^^speak(s="粗俗") ![](data:image/jpeg;base64,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 truncated
--
粗俗
@@ -0,0 +1,226 @@
---
title: Daily life stuff slide
type: reveal
date: '2019-10-03T00:00:00.000Z'
deck: emoji/human
tag:
- human
- vocab
- emoji
---
^^speak 🛁
--
^^srs 🛁
--
浴室
浴缸
--
缸 | gāng | jar / vat / classifier for loads of laundry / CL: 口
气缸 | qìgāng | cylinder (engine) | 氣缸
烟灰缸 | yānhuīgāng | ashtray | 煙灰缸
---
^^speak 🧽
--
^^srs 🧽
--
海绵
--
海绵 | hǎimián | sponge (zoology) / sponge (piece of absorbent material, either natural or made from plastic etc) / foam rubber | 海綿
海绵宝宝 | Hǎimián Bǎobǎo | SpongeBob SquarePants (US TV animated series, 1999-) | 海綿寶寶
缠绵 | chánmián | touching (emotions) / lingering (illness) | 纏綿
绵延 | miányán | continuous (esp. of mountain ranges) / to stretch long and unbroken / a continuous link / sostenuto (sustained, in music) | 綿延
绵 | mián | silk floss / continuous / soft / weak / mild-mannered (dialect) | 綿,緜
绵羊 | miányáng | sheep | 綿羊
绵绵 | miánmián | continuous / uninterrupted | 綿綿
---
🚽
--
马桶
--
桶 | tǒng | bucket / (trash) can / barrel (of oil etc) / CL: 個|个, 隻|只
马桶 | mǎtǒng | chamber pot / wooden pan used as toilet / toilet bowl | 馬桶
水桶 | shuǐtǒng | bucket
木桶 | mùtǒng | cask
甬 | tǒng | variant of 桶, bucket / (classifier) cubic dry measure (5 pecks 五斗, approx half-liter)
大桶 | dàtǒng | barrel / vat
冰桶 | bīngtǒng | ice bucket
半桶水 | bàntǒngshuǐ | (coll.) (of one's skills, knowledge etc) limited / superficial / half-baked / sb with a smattering of knowledge (of sth) / dabbler
第一桶金 | dìyītǒngjīn | the first pot of gold / the initial profits from an economic endeavour
---
🚰
--
水龙头
---
📰
--
报纸
---
📻
--
收音机
---
📼
--
录像带
--
登录 | dēnglù | to register / to log in | 登錄
记录 | jìlù | to record / record (written account) / note-taker / record (in sports etc) / CL: 個|个 | 記錄
目录 | mùlù | catalog / table of contents / directory (on computer hard drive) / list / contents | 目錄
纪录 | jìlù | variant of 記錄|记录 (but in Taiwan, not for the verb sense "to record")| 紀錄
录 | lù | diary / record / to hit / to copy | 錄
收录 | shōulù | to include (in a collection) / to put together (stories, poems etc) / to record / to employ / to recruit | 收錄
录取 | lùqǔ | to accept an applicant (prospective student, employee etc) who passes an entrance exam / to admit (a student) / to hire (a job candidate) | 錄取
录像 | lùxiàng | to videotape / to videorecord / video recording / CL: 盤|盘 | 錄像
名录| mínglù | directory | 名錄
纪录片 | jìlùpiàn | newsreel / documentary (film or TV program) / CL: 部 | 紀錄片
录音 | lùyīn | to record (sound) / sound recording / CL: 個|个 | 錄音
录制 | lùzhì | to record (video or audio) | 錄製
---
像
--
像 | xiàng | to resemble / to be like / to look as if / such as / appearance / image / portrait / image under a mapping (math.)
影像 | yǐngxiàng | image
图像 | túxiàng | image / picture / graphic | 圖像
头像 | tóuxiàng | portrait / bust | 頭像
录像 | lùxiàng | to videotape / to videorecord / video recording / CL: 盤|盘 | 錄像
摄像 | shèxiàng | to videotape | 攝像
镜像 | jìngxiàng | mirror image | 鏡像
好像 | hǎoxiàng | as if / to seem like
---
🔈
--
扬声器
--
扬 | yáng | to raise / to hoist / the action of tossing or winnowing / scattering (in the wind) / to flutter / to propagate | 揚,敭
弘扬 | hóngyáng | to enhance / to promote / to enrich | 弘揚
发扬 | fāyáng | to develop / to make full use of | 發揚
---
器
--
器 | qì | device / tool / utensil / CL: 臺|台
服务器 | fúwùqì | server (computer) / CL: 臺|台 | 服務器
浏览器 | liúlǎnqì | browser (software) | 瀏覽器
电器 | diànqì | (electrical) appliance / device | 電器
仪器 | yíqì | instrument / apparatus / CL: 臺|台 | 儀器
器械 | qìxiè | apparatus / instrument / equipment / weapon
机器 | jīqì | machine / CL: 臺|台, 部, 個|个 | 機器
计算器 | jìsuànqì | calculator / calculating machine | 計算器
机器人 | jīqìrén | mechanical person / robot / android | 機器人
武器 | wǔqì | weapon / arms / CL: 種|种
---
📺
--
电视
---
🛋
--
沙发
---
⏯
--
播放
--
传播 | chuánbō | to disseminate / to propagate / to spread | 傳播
播放 | bōfàng | to broadcast / to transmit
广播 | guǎngbō | broadcast / CL: 個|个 / broadcasting / to broadcast / (formal) to propagate / to publicize | 廣播
直播 | zhíbō | live broadcast (not recorded) / direct Internet broadcasting / (agriculture) direct seeding
主播 | zhǔbō | anchor (TV)
播 | bō | to sow / to scatter / to spread / to broadcast / Taiwan pr. [bo4]
播放列表 | bōfànglièbiǎo | playlist
联播 | liánbō | to broadcast over a network / (radio or TV) hookup / simulcast | 聯播
点播 | diǎnbō | webcast / to request item for broadcast on radio program / dibble seeding / spot seeding | 點播
播出 | bōchū | to broadcast / to air (a TV program etc)
播客 | bōkè | radio broadcast / podcast / Internet audio subscription service
播报 | bōbào | to announce / to read (the news) | 播報
重播 | chóngbō | to replay / to rerun / (agriculture) to reseed / to oversow
转播 | zhuǎnbō | relay / broadcast (on radio or TV) | 轉播
播音 | bōyīn | to transmit / to broadcast
播种 | bōzhǒng | to sow seeds / sowing / seed | 播種
现场直播 | xiànchǎngzhíbō | on-the-spot live broadcast | 現場直播
广播电台 | guǎngbōdiàntái | radio station | 廣播電台
---
放
--
放 | fàng | to put / to place / to release / to free / to let go / to let out / to set off (fireworks)
开放 | kāifàng | to bloom / to open / to be open (to the public) / to open up (to the outside) / to be open-minded / unrestrained by convention / unconstrained in one's sexuality | 開放
播放 | bōfàng | to broadcast / to transmit
放大 | fàngdà | to enlarge / to magnify
---
👪
--
家庭
@@ -0,0 +1,367 @@
---
title: 交通 listening quiz
shuffle: true
---
^^speak(lang="zh" s="交通岛") Click to speak
--
交通岛
===
^^speak(lang="zh" s="路标") Click to speak
--
路标
===
^^speak(lang="zh" s="道路交通标志") Click to speak
--
道路交通标志
===
^^speak(lang="zh" s="铁路道口") Click to speak
--
铁路道口
===
^^speak(lang="zh" s="车道") Click to speak
--
车道
===
^^speak(lang="zh" s="胡同") Click to speak
--
胡同
===
^^speak(lang="zh" s="巷子") Click to speak
--
巷子
===
^^speak(lang="zh" s="车道树") Click to speak
--
车道树
===
^^speak(lang="zh" s="交通警察") Click to speak
--
交通警察
===
^^speak(lang="zh" s="公共电话亭") Click to speak
--
公共电话亭
===
^^speak(lang="zh" s="邮筒") Click to speak
--
邮筒
===
^^speak(lang="zh" s="油桶") Click to speak
--
油桶
🛢
===
^^speak(lang="zh" s="街道") Click to speak
--
街道
===
^^speak(lang="zh" s="单行线") Click to speak
--
单行线
===
^^speak(lang="zh" s="高速公路") Click to speak
--
高速公路
===
^^speak(lang="zh" s="人行道") Click to speak
--
人行道
===
^^speak(lang="zh" s="人行横道") Click to speak
--
人行横道
===
^^speak(lang="zh" s="斑马线") Click to speak
--
斑马线
===
^^speak(lang="zh" s="上坡路") Click to speak
--
上坡路
===
^^speak(lang="zh" s="下坡路") Click to speak
--
下坡路
===
^^speak(lang="zh" s="掉头车道") Click to speak
--
掉头车道
===
^^speak(lang="zh" s="停车场") Click to speak
--
停车场
===
^^speak(lang="zh" s="路标") Click to speak
--
路标
===
^^speak(lang="zh" s="公共汽车") Click to speak
--
公共汽车
🚌
===
^^speak(lang="zh" s="公共汽车站") Click to speak
--
公共汽车站
===
^^speak(lang="zh" s="绿灯") Click to speak
--
绿灯
===
^^speak(lang="zh" s="红灯") Click to speak
--
红灯
===
^^speak(lang="zh" s="立交桥") Click to speak
--
立交桥
===
^^speak(lang="zh" s="天桥") Click to speak
--
天桥
===
^^speak(lang="zh" s="交通灯") Click to speak
--
交通灯
===
^^speak(lang="zh" s="红绿灯") Click to speak
--
红绿灯
🚥
===
^^speak(lang="zh" s="丁字路口") Click to speak
--
丁字路口
===
^^speak(lang="zh" s="十字路口") Click to speak
--
十字路口
===
^^speak(lang="zh" s="街角") Click to speak
--
街角
===
^^speak(lang="zh" s="隧道") Click to speak
--
隧道
===
^^speak(lang="zh" s="黄灯") Click to speak
--
黄灯
@@ -0,0 +1,387 @@
---
title: 火车站 vocab
shuffle: true
---
^^speak(lang="zh" s="火车") Click to speak
--
火车
🚄
===
^^speak(lang="zh" s="自动售票机") Click to speak
--
自动售票机
===
^^speak(lang="zh" s="搬运工人") Click to speak
--
搬运工人
===
^^speak(lang="zh" s="铁路工作人员") Click to speak
--
铁路工作人员
===
^^speak(lang="zh" s="售票处") Click to speak
--
售票处
===
^^speak(lang="zh" s="门票") Click to speak
--
门票
🎫
===
^^speak(lang="zh" s="二等") Click to speak
--
二等
===
^^speak(lang="zh" s="三等") Click to speak
--
三等
===
^^speak(lang="zh" s="一等") Click to speak
--
一等
===
^^speak(lang="zh" s="月台") Click to speak
--
月台
===
^^speak(lang="zh" s="枢纽站") Click to speak
--
枢纽站
===
^^speak(lang="zh" s="票") Click to speak
--
票
===
^^speak(lang="zh" s="列车时刻表") Click to speak
--
列车时刻表
===
^^speak(lang="zh" s="卧铺") Click to speak
--
卧铺
===
^^speak(lang="zh" s="行李列车") Click to speak
--
行李列车
===
^^speak(lang="zh" s="货运列车") Click to speak
--
货运列车
===
^^speak(lang="zh" s="餐车") Click to speak
--
餐车
===
^^speak(lang="zh" s="入口") Click to speak
--
入口
===
^^speak(lang="zh" s="地下过道") Click to speak
--
地下过道
===
^^speak(lang="zh" s="出口") Click to speak
--
出口
===
^^speak(lang="zh" s="列车员") Click to speak
--
列车员
===
^^speak(lang="zh" s="售货亭") Click to speak
--
售货亭
===
^^speak(lang="zh" s="留言板") Click to speak
--
留言板
===
^^speak(lang="zh" s="特快列车") Click to speak
--
特快列车
===
^^speak(lang="zh" s="特别加快列车") Click to speak
--
特别加快列车
===
^^speak(lang="zh" s="普通列车") Click to speak
--
普通列车
===
^^speak(lang="zh" s="观光列车") Click to speak
--
观光列车
===
^^speak(lang="zh" s="青藏铁路") Click to speak
--
青藏铁路
===
^^speak(lang="zh" s="地铁") Click to speak
--
地铁
🚇
===
^^speak(lang="zh" s="夜行列车") Click to speak
--
夜行列车
===
^^speak(lang="zh" s="火车去") Click to speak
--
火车去
===
^^speak(lang="zh" s="轻轨") Click to speak
--
轻轨
🚈
===
^^speak(lang="zh" s="铁道") Click to speak
--
铁道
===
^^speak(lang="zh" s="游客中心") Click to speak
--
游客中心
===
^^speak(lang="zh" s="始发站") Click to speak
--
始发站
===
^^speak(lang="zh" s="终点站") Click to speak
--
终点站
===
^^speak(lang="zh" s="行李") Click to speak
--
行李
===
^^speak(lang="zh" s="火车线") Click to speak
--
火车线
===
^^speak(lang="zh" s="补票处") Click to speak
--
补票处
===
^^speak(lang="zh" s="遗失物品") Click to speak
--
遗失物品
===
^^speak(lang="zh" s="行李寄存处") Click to speak
--
行李寄存处
===
^^speak(lang="zh" s="候车室") Click to speak
--
候车室
+142
View File
@@ -0,0 +1,142 @@
<template lang="pug">
section
b-navbar.navbar-shadow.noscroll.is-fixed-top(style="max-width: 100vw;")
template(slot="brand")
div(style="display: inline-flex; overflow: auto; max-width: calc(100vw - 3.25rem); flex-grow: 1")
b-navbar-item(tag="router-link" to="/")
h1.bold {{banner}}
template(slot="start")
b-navbar-item(v-for="t in tabs" @click="t.to ? $router.push(t.to) : open(t.url)" :key="t.name") {{t.name}}
template(slot="end")
form.field.m-sm.px-md(@submit.prevent="onSearch")
.control.has-icons-right
input.input.is-rounded(type="search" placeholder="Search" v-model="q")
span.icon.is-right
fa(icon="search")
section(style="margin-top: 3.25rem")
.container
.columns
main.column.is-8
nuxt
aside.column
section
.card.my-lg
header.card-header
p.card-header-title Tag cloud
.card-content(style="word-break: break-word")
span.bn-tag(v-for="t in tags" :key="t.name")
a(:class="t.class" href="#" @click="$router.push('/tag/' + t.name)") {{t.name}}
.card.my-lg
a.twitter-timeline(data-height="800" href="https://twitter.com/ChinesePol") Tweets by ChinesePol
</template>
<script lang="ts">
import PageSocial from '@/components/PageSocial.vue'
import { Vue, Component } from 'nuxt-property-decorator'
import { normalizeArray, TAGS } from '@/assets/util'
@Component
export default class Default extends Vue {
banner = '中文 Diary'
tabs = [
{
name: '千字文',
to: '/tag/千字文',
},
{
name: 'GitHub',
url: 'https://github.com/patarapolw/zhdiary',
},
]
q = ''
get tags () {
const tagList = TAGS
return Object.keys(tagList).sort((a, b) => {
return tagList[b] - tagList[a]
}).slice(0, 30).map((t) => {
if (t === 'pinned') {
return null
}
return {
name: t,
class: (() => {
const count = tagList[t]
if (count > 20) {
return 'c20'
} else if (count > 10) {
return 'c10'
} else if (count > 5) {
return 'c5'
} else if (count > 3) {
return 'c3'
} else if (count > 1) {
return 'c2'
}
return 'c1'
})(),
}
}).filter((el) => el)
}
mounted () {
this.q = normalizeArray(this.$route.query.q) || ''
}
onSearch () {
this.$router.push({
path: '/',
query: { q: this.q },
})
}
open (url: string) {
open(url, '_blank')
}
}
</script>
<style lang="scss">
.navbar-shadow {
$n: 0.1rem;
box-shadow: 0 $n $n rgba(0,0,0,.13),
$n $n $n rgba(0,0,0,.1),
-$n -$n $n rgba(0,0,0,.05);
}
.bold {
font-weight: bold;
}
.w-100 {
width: 100%;
margin: 0 auto;
}
.bn-tag {
white-space: nowrap;
margin-right: 10px;
$c-size: .6em;
.c20 {
font-size: 10 * $c-size;
}
.c10 {
font-size: 5 * $c-size;
}
.c5 {
font-size: 3 * $c-size;
}
.c3 {
font-size: 2 * $c-size;
}
.c2 {
font-size: 1.5 * $c-size;
}
.c1 {
font-size: $c-size;
}
}
</style>
@@ -1,11 +1,11 @@
<template lang="pug"> <template lang="pug">
:markdown nuxt
### Sorry, but no post can be found.
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import '@/assets/global'
export default Vue.extend({ export default Vue.extend({
}) })
</script> </script>
+8
View File
@@ -0,0 +1,8 @@
# MIDDLEWARE
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your application middleware.
Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
+114
View File
@@ -0,0 +1,114 @@
import { Configuration } from '@nuxt/types'
import tag from './static/build/tag/posts.json'
import posts from './static/build/header/posts.json'
const config: Configuration = {
mode: 'universal',
/*
** Headers of the page
*/
head: {
title: '中文 Diary',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: process.env.npm_package_description || '' },
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
],
script: [
{ src: 'https://platform.twitter.com/widgets.js', async: true, charset: 'utf-8' },
],
},
/*
** Customize the progress-bar color
*/
loading: { color: '#fff' },
/*
** Global CSS
*/
css: [
'@fortawesome/fontawesome-svg-core/styles.css',
'~/assets/app.scss',
],
/*
** Plugins to load before mounting the App
*/
plugins: [
'~/plugins/disqus',
'~/plugins/fontawesome',
],
/*
** Nuxt.js dev-modules
*/
buildModules: [
'@nuxt/typescript-build',
],
/*
** Nuxt.js modules
*/
modules: [
// Doc: https://buefy.github.io/#/documentation
['nuxt-buefy', {
materialDesignIcons: false,
defaultIconPack: 'fa',
defaultIconComponent: 'fa',
}],
['nuxt-mq', {
defaultBreakpoint: 'desktop',
breakpoints: {
mobile: 500,
tablet: 1024,
desktop: Infinity,
},
}],
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/axios',
'nuxt-payload-extractor',
['@nuxtjs/google-analytics', {
id: 'UA-146246917-2',
}],
],
/*
** Axios module configuration
** See https://axios.nuxtjs.org/options
*/
axios: {
},
/*
** Build configuration
*/
build: {
/*
** You can extend webpack config here
*/
extend (config, ctx) {
config.module?.rules!.push({
test: /\.md$/,
use: [
'raw-loader',
],
})
},
},
generate: {
routes: [
...Object.keys(tag).map((el) => `/tag/${el}`),
...Object.values(posts).map((el) => {
return el.y && el.mo ? `/post/${el.y}/${el.mo}/${el.name}` : `/post/${el.name}`
}),
],
fallback: true,
},
env: {
title: '中文 Diary',
tags: JSON.stringify(tag),
hash: JSON.stringify({
posts: require('./static/build/hash/posts.json'),
slides: require('./static/build/hash/slides.json'),
}),
},
}
export default config
+69
View File
@@ -0,0 +1,69 @@
{
"name": "zhdiary",
"version": "1.0.0",
"description": "My journey to Chinese language",
"author": "Pacharapol Withayasakpunt",
"private": true,
"scripts": {
"dev": "nuxt-ts",
"build": "nuxt-ts build",
"generate": "nuxt-ts generate",
"start": "nuxt-ts start",
"build-api": "ts-node -O '{\"module\": \"commonjs\"}' utils/build-api.ts",
"prebuild": "yarn build-api",
"pregenerate": "yarn build-api",
"deploy": "yarn generate && netlify deploy --dir dist"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.26",
"@fortawesome/free-solid-svg-icons": "^5.12.0",
"@fortawesome/vue-fontawesome": "^0.1.9",
"@nuxt/typescript-runtime": "^0.3.4",
"@nuxtjs/axios": "^5.3.6",
"@nuxtjs/google-analytics": "^2.2.2",
"@types/cheerio": "^0.22.15",
"@types/fs-extra": "^8.0.1",
"@types/html-to-text": "^1.4.31",
"@types/hyperscript": "^0.0.3",
"@types/reveal": "^3.3.33",
"@types/showdown": "^1.9.3",
"cheerio": "^1.0.0-rc.3",
"fast-glob": "^3.1.1",
"fast-json-stable-stringify": "^2.1.0",
"fs-extra": "^8.1.0",
"gray-matter": "^4.0.2",
"html-to-text": "^5.1.1",
"hyperpug": "^0.2.1",
"hyperscript": "^2.0.2",
"indented-filter": "^0.1.1",
"moment": "^2.24.0",
"nuxt": "^2.0.0",
"nuxt-buefy": "^0.3.2",
"nuxt-mq": "^2.0.1",
"nuxt-payload-extractor": "^0.0.14",
"nuxt-property-decorator": "^2.5.0",
"q2filter": "^1.1.0",
"scope-css": "^1.2.1",
"short-hash": "^1.0.0",
"showdown": "^1.9.1",
"vue-disqus": "^3.0.5",
"vuex-module-decorators": "^0.11.0"
},
"devDependencies": {
"@nuxt/typescript-build": "^0.5.3",
"@types/webpack-env": "^1.14.1",
"pug": "^2.0.4",
"pug-plain-loader": "^1.0.0",
"raw-loader": "^4.0.0",
"sass": "^1.24.0",
"sass-loader": "^8.0.0",
"ts-node": "^8.5.4"
},
"engines": {
"node": "10.x",
"yarn": "*"
},
"resolutions": {
"**/**/serialize-javascript": "^2.1.1"
}
}
+42
View File
@@ -0,0 +1,42 @@
<template lang="pug">
post-query(:defaults="defaults")
</template>
<script lang="ts">
import { Vue, Component } from 'nuxt-property-decorator'
import PostQuery from '@/components/PostQuery.vue'
@Component({
components: {
PostQuery,
},
})
export default class PageIndex extends Vue {
defaults = {
posts: [],
count: 0,
}
async asyncData ({ $axios, $payloadURL, route }: any) {
if (process.static && process.client && $payloadURL) {
return $axios.$get($payloadURL(route))
}
const now = new Date().toISOString()
let ps: any[] = require('@/static/build/header/posts.json')
ps = ps.filter((p) => p.date && p.date < now && p.path.startsWith('blog/'))
const posts = ps.slice(0, 5).map((h) => {
h.teaser = require(`@/static/build/teaser/${h.path}`).default
return h
})
return {
defaults: {
posts,
count: ps.length,
},
}
}
}
</script>
+91
View File
@@ -0,0 +1,91 @@
<template lang="pug">
post-full(:header="header")
</template>
<script lang="ts">
import { Vue, Component } from 'nuxt-property-decorator'
import PostFull from '@/components/PostFull.vue'
import htmlToText from 'html-to-text'
import { apiHash, HASH } from '@/assets/util'
import MakeHtml from '@/assets/make-html'
@Component({
components: {
PostFull,
},
})
export default class PostPage extends Vue {
header: any = {}
async asyncData ({ params, error, redirect }: any) {
const ps: any[] = JSON.parse(await apiHash('/build/header/posts.json', HASH.posts._header))
const header = ps.filter((p) => p.name === params.name)[0]
if (!header) {
return error({ statusCode: 404, message: 'Post not found' })
}
if (header.y && header.mo) {
return redirect(encodeURI(`/post/${header.y}/${header.mo}/${params.name}`))
}
header.teaser = await apiHash(`/build/teaser/${header.path}`, HASH.posts[header.path])
return {
header,
}
}
head () {
let { title } = this.header
title = `${title} - ${process.env.title}`
const description = htmlToText.fromString(this.header.teaser)
return {
title,
meta: [
{
hid: 'description',
name: 'description',
content: description,
},
{
hid: 'keywords',
name: 'keywords',
content: (this.header.tag || []).join(', '),
},
{
hid: 'og:title',
property: 'og:title',
content: title,
},
{
hid: 'og:description',
property: 'og:description',
content: description,
},
{
hid: 'og:image',
property: 'og:image',
content: this.header.image,
},
{
hid: 'twitter:title',
property: 'twitter:title',
content: title,
},
{
hid: 'twitter:description',
property: 'twitter:description',
content: description,
},
{
hid: 'twitter:image',
property: 'twitter:image',
content: this.header.image,
},
],
}
}
}
</script>
+89
View File
@@ -0,0 +1,89 @@
<template lang="pug">
post-full(:header="header")
</template>
<script lang="ts">
import { Vue, Component } from 'nuxt-property-decorator'
import PostFull from '@/components/PostFull.vue'
import htmlToText from 'html-to-text'
@Component({
components: {
PostFull,
},
})
export default class PostPage extends Vue {
header: any = {}
async asyncData ({ $axios, $payloadURL, route, params, error }: any) {
if (process.static && process.client && $payloadURL) {
return $axios.$get($payloadURL(route))
}
const ps: any[] = require('@/static/build/header/posts.json')
const header = ps.filter((p) => p.name === params.name && p.y === params.y && p.mo === params.mo)[0]
if (!header) {
return error({ statusCode: 404, message: 'Post not found' })
}
header.teaser = require(`@/static/build/teaser/${header.path}`).default
return {
header,
}
}
head () {
let { title } = this.header
title = `${title} - ${process.env.title}`
const description = htmlToText.fromString(this.header.teaser)
return {
title,
meta: [
{
hid: 'description',
name: 'description',
content: description,
},
{
hid: 'keywords',
name: 'keywords',
content: (this.header.tag || []).join(', '),
},
{
hid: 'og:title',
property: 'og:title',
content: title,
},
{
hid: 'og:description',
property: 'og:description',
content: description,
},
{
hid: 'og:image',
property: 'og:image',
content: this.header.image,
},
{
hid: 'twitter:title',
property: 'twitter:title',
content: title,
},
{
hid: 'twitter:description',
property: 'twitter:description',
content: description,
},
{
hid: 'twitter:image',
property: 'twitter:image',
content: this.header.image,
},
],
}
}
}
</script>
+402
View File
@@ -0,0 +1,402 @@
<template lang="pug">
div(style="width: 100vw; height: 100vh")
#global
.reveal
.slides
</template>
<script lang="ts">
import { Vue, Component } from 'nuxt-property-decorator'
import MakeHtml from '@/assets/make-html'
import matter from 'gray-matter'
import { apiHash, HASH } from '@/assets/util'
// @ts-ignore
import shortHash from 'short-hash'
import $ from 'cheerio'
// @ts-ignore
import scopeCss from 'scope-css'
import h from 'hyperscript'
import qs from 'querystring'
import stringify from 'fast-json-stable-stringify'
declare global {
interface Window {
Reveal: RevealStatic
hljs: any
revealMd: RevealMd
}
}
export interface ISlide {
id: string
type: 'hidden' | 'global' | 'regular'
html: string
raw: string
}
const revealCdn = 'https://cdn.jsdelivr.net/npm/reveal.js@3.8.0/'
const makeHtml = new MakeHtml()
@Component({
layout: 'full',
watchQuery: ['path'],
})
export default class RevealMd extends Vue {
trueHeader: any = {}
trueMarkdown = ''
queue: Array<(r?: RevealStatic) => void> = []
raw: ISlide[][] = [[]]
title = ''
defaults = {
header: {},
markdown: '',
}
isReady = false
async asyncData ({ $axios, query }: any) {
const { path } = query
if (path) {
try {
const raw = await apiHash(`/build/slides/${path}`, HASH.slides[path as string])
const { data, content } = matter(raw)
return {
defaults: {
header: data,
markdown: content,
},
}
} catch (e) {
console.error(e)
}
}
return {}
}
head () {
return {
title: this.title,
link: [
{
rel: 'stylesheet',
href: `${revealCdn}css/reveal.css`,
type: 'text/css',
},
{
rel: 'stylesheet',
href: `${revealCdn}css/theme/white.css`,
type: 'text/css',
id: 'reveal-theme',
},
],
}
}
async mounted () {
let currentSlide = ''
if (process.client) {
window.revealMd = this
const { path } = this.$route.query
if (!this.defaults.markdown && path) {
try {
const raw = await apiHash(`/build/slides/${path}`, HASH.slides[path as string])
const { data, content } = matter(raw)
this.defaults.markdown = content
this.defaults.header = data
} catch (e) {
console.error(e)
}
}
this.markdown = this.defaults.markdown
this.header = this.defaults.header
this.onReady(() => {
if (currentSlide) {
location.hash = currentSlide
}
})
currentSlide = location.hash.replace(/^#/, '')
const script = document.createElement('script')
script.onload = () => {
window.Reveal.initialize({
slideNumber: true,
// @ts-ignore
hash: true,
dependencies: [
{
src: `${revealCdn}plugin/highlight/highlight.js`,
async: true,
},
],
})
window.Reveal.addEventListener('ready', () => {
this.isReady = true
})
}
script.src = `${revealCdn}js/reveal.min.js`
document.body.appendChild(script)
}
}
get header (): RevealOptions & {
theme?: string
title?: string
} {
return this.trueHeader || {}
}
set header (h) {
const { theme, title, ...subH } = h
this.theme = theme || 'white'
this.title = title || ''
if (stringify(this.trueHeader) === stringify(subH)) {
return
}
this.onReady(() => {
window.Reveal.configure(subH)
})
this.trueHeader = subH
}
get markdown () {
return this.trueMarkdown
}
set markdown (s: string) {
this.trueMarkdown = s
const globalEl = this.$el.querySelector('#global') as HTMLElement
Array.from(globalEl.querySelectorAll('style.ref')).map((el) => el.remove())
let xOffset = 0
const newRaw = s.split(/\r?\n(?:===|---)\r?\n/g).map((el, x) => {
this.raw[x] = this.raw[x] || []
const newRawSs = el.split(/\r?\n--\r?\n/g).map((ss) => this.parseSlide(ss))
if (newRawSs.every((ss) => !ss.html)) {
xOffset++
}
x -= xOffset
let yOffset = 0
return newRawSs.map((thisRaw, y) => {
if (!thisRaw.html) {
yOffset++
return
}
y -= yOffset
let section = this.getSlide(x)
let subSection = this.getSlide(x, y)
if (!this.raw[x][y] || (this.raw[x][y] && this.raw[x][y].raw !== thisRaw.raw)) {
const container = document.createElement('div')
container.className = 'container'
container.innerHTML = thisRaw.html
if (section && subSection) {
const oldContainers = subSection.getElementsByClassName('container')
Array.from(oldContainers).forEach((el) => el.remove())
subSection.appendChild(container)
} else {
subSection = document.createElement('section')
subSection.append(container)
if (section) {
section.appendChild(subSection)
} else {
section = document.createElement('section')
section.appendChild(subSection)
this.$el.querySelector('.reveal .slides')!.appendChild(section)
}
}
Array.from(container.querySelectorAll('pre code:not(.hljs)')).forEach((el) => {
if (window.hljs) {
window.hljs.highlightBlock(el)
}
})
}
return thisRaw
}).filter((el) => el)
}).filter((el) => el && el.length > 0) as ISlide[][]
this.raw.map((el, x) => {
el.map((ss, j) => {
const y = el.length - j - 1
if (!newRaw[x] || !newRaw[x][y]) {
const subSection = this.getSlide(x, y)
if (subSection) {
subSection.remove()
}
}
})
if (!newRaw[x]) {
const section = this.getSlide(x)
if (section) {
section.remove()
}
}
})
this.raw = newRaw
}
get theme () {
const el = document.getElementById('reveal-theme') as HTMLLinkElement
const m = /\/(\S+)\.css$/.exec(el.href)
if (m) {
return m[1]
}
return ''
}
set theme (t) {
const el = document.getElementById('reveal-theme') as HTMLLinkElement
el.href = `${revealCdn}css/theme/${t}.css`
}
update (raw: string) {
const { data, content } = matter(raw)
this.markdown = content
this.header = data
}
onReady (fn?: () => void) {
if (this.isReady) {
if (this.queue.length > 0) {
this.queue.forEach(it => it())
window.Reveal.slide(-1, -1, -1)
window.Reveal.sync()
}
if (fn) {
fn()
}
} else {
if (fn) {
this.queue.push(fn)
}
setTimeout(() => {
this.onReady()
}, 1000)
}
}
parseSlide (text: string): ISlide {
const id = shortHash(text)
const raw = text
let type: 'hidden' | 'global' | 'regular' = 'regular'
let html = text
const [firstLine, ...lines] = html.split('\n')
const newType = firstLine.substr(3)
if (newType === 'hidden') {
type = 'hidden'
return { html: '', raw, id, type }
} else if (newType === 'global') {
type = 'global'
html = lines.join('\n')
}
html = html.replace(/(?:^|\n)\/\/ css=([A-Za-z0-9\-_]+\.css)(?:$|\n)/g, (p0, ref: string) => {
const i = raw.indexOf(p0)
const globalEl = this.$el.querySelector('#global') as HTMLDivElement
const className = `ref${i}`
let el = globalEl.querySelector(`style.ref.${className}`)
if (!el) {
el = document.createElement('style')
el.classList.add('ref', className)
globalEl.appendChild(el)
}
let url = ref
if (!ref.includes('://')) {
url = `/api/data?${qs.stringify({
filename: ref,
})}`
}
fetch(url).then((r) => r.text()).then((content) => {
if (type !== 'global') {
content = scopeCss(content, `#${id}`)
}
el!.innerHTML = content
})
return ''
})
html = html.replace(/(?:^|\n)(\/\/ slide\n)?```(\S+)\n([^]+?)\n```(?:$|\n)/g, (p0, subtype, lang, content) => {
if (type !== 'global' && !subtype) {
return p0
}
if (lang === 'css') {
const globalEl = this.$el.querySelector('#global') as HTMLDivElement
if (type !== 'global') {
content = scopeCss(content, `#${id}`)
}
let el = globalEl.querySelector('style.main')
if (!el) {
el = document.createElement('style')
el.className = 'main'
globalEl.appendChild(el)
}
el.innerHTML = content
return ''
} else if (lang === 'pre') {
return h('pre', content).outerHTML
// } else if (lang === 'pug') {
// return makeHtml.pugConvert(content)
} else if (lang === 'html') {
return content
}
return p0
})
return {
html: h(`#${id}`, {
innerHTML: makeHtml.mdConvert(html),
}).outerHTML,
raw,
id,
type,
}
}
getSlide (x: number, y?: number) {
const s = this.$el.querySelectorAll('.slides > section')
const hSlide = s[x]
if (typeof y === 'number') {
if (hSlide) {
return Array.from(hSlide.children).filter((el) => el.tagName.toLocaleUpperCase() === 'SECTION')[y]
}
return undefined
}
return hSlide
}
}
</script>
+43
View File
@@ -0,0 +1,43 @@
<template lang="pug">
post-query(:tag="$route.params.tagName" :defaults="defaults")
</template>
<script lang="ts">
import { Vue, Component } from 'nuxt-property-decorator'
import PostQuery from '@/components/PostQuery.vue'
@Component({
components: {
PostQuery,
},
})
export default class PageIndex extends Vue {
defaults = {
posts: [],
count: 0,
}
async asyncData ({ $axios, $payloadURL, route, params }: any) {
if (process.static && process.client && $payloadURL) {
return $axios.$get($payloadURL(route))
}
const now = new Date().toISOString()
let ps: any[] = require('@/static/build/header/posts.json')
ps = ps.filter((p) => p.date && p.date < now && p.path.startsWith('blog/'))
ps = ps.filter((p) => p.tag && p.tag.includes(params.tagName))
const posts = ps.slice(0, 5).map((h) => {
h.teaser = require(`@/static/build/teaser/${h.path}`).default
return h
})
return {
defaults: {
posts,
count: ps.length,
},
}
}
}
</script>
+4
View File
@@ -0,0 +1,4 @@
import Vue from 'vue'
import VueDisqus from 'vue-disqus'
Vue.use(VueDisqus)
+10
View File
@@ -0,0 +1,10 @@
import Vue from 'vue'
import { library, config } from '@fortawesome/fontawesome-svg-core'
import { faSearch, faCaretRight, faCaretLeft } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
config.autoAddCss = false
library.add(faSearch, faCaretRight, faCaretLeft)
Vue.component('fa', FontAwesomeIcon)
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File
Whitespace-only changes.
+38
View File
@@ -0,0 +1,38 @@
{
"compilerOptions": {
"target": "es2018",
"module": "esnext",
"moduleResolution": "node",
"lib": [
"esnext",
"esnext.asynciterable",
"dom"
],
"esModuleInterop": true,
"allowJs": true,
"sourceMap": true,
"strict": true,
"noEmit": true,
"experimentalDecorators": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"~/*": [
"./*"
],
"@/*": [
"./*"
]
},
"types": [
"@types/node",
"@nuxt/types",
"webpack-env",
"reveal"
]
},
"exclude": [
"node_modules"
]
}
+173
View File
@@ -0,0 +1,173 @@
import path from 'path'
import matter from 'gray-matter'
import moment from 'moment'
import fs from 'fs-extra'
// @ts-ignore
import shortHash from 'short-hash'
import stringify from 'fast-json-stable-stringify'
import glob from 'fast-glob'
export type DataType = 'posts' | 'slides'
export interface IData {
teaser?: string
full: string
}
export default class ApiBuilder {
_hash: Record<DataType, Record<string, string>> = {
posts: {},
slides: {},
}
_tag: Record<DataType, Record<string, number>> = {
posts: {},
slides: {},
}
_header: Record<DataType, any[]> = {
posts: [],
slides: [],
}
_data: Record<DataType, Record<string, IData>> = {
posts: {},
slides: {},
}
loadFile (dirName: DataType, fileName: string) {
const ROOT = path.join('data', dirName)
const raw = fs.readFileSync(path.join(ROOT, fileName), 'utf8')
const m = matter(raw)
const p = path.parse(fileName)
m.data = {
...m.data,
name: p.name,
path: fileName,
}
if (m.data.date) {
let mm = moment(m.data.date)
mm = mm.add(-mm.utcOffset(), 'minute')
Object.assign(m.data, {
date: mm.toISOString(),
y: mm.format('YYYY'),
mo: mm.format('MM'),
})
}
let data: IData = {
full: m.content,
}
if (dirName === 'posts') {
const [teaser, remaining] = m.content.split(/\n===\n(.+)/s)
data = {
teaser,
full: `${teaser}\n${remaining || ''}`,
}
}
return {
header: m.data,
data,
}
}
loadDir (dirName: DataType) {
const ROOT = path.join('data', dirName)
const now = new Date().toISOString()
glob.sync('**/*.md', {
cwd: ROOT,
}).map((f) => {
const { header, data } = this.loadFile(dirName, f)
this._hash[dirName][f] = shortHash(data.full)
if (dirName === 'posts' && header.date && header.date < now && header.path.startsWith('blog/')) {
if (Array.isArray(header.tag)) {
for (const t of header.tag) {
this._tag[dirName][t] = (this._tag[dirName][t] || 0) + 1
}
}
}
this._header[dirName].push(header)
this._data[dirName][f] = data
})
this._header[dirName] = this._header[dirName].sort((h1, h2) => {
if (typeof h1.date === 'string' && typeof h2.date === 'string') {
return -h1.date.localeCompare(h2.date)
}
return 0
})
this._hash[dirName]._header = shortHash(stringify(this._header[dirName]))
return {
header: this._header[dirName],
hash: this._hash[dirName]._header,
tag: this._tag[dirName],
}
}
emit () {
const dst = 'static/build'
this.loadDir('posts')
this.loadDir('slides')
/**
* Emit hash
*/
console.log('Emitting hash')
fs.ensureDirSync(`${dst}/hash`)
fs.writeFileSync(`${dst}/hash/posts.json`, JSON.stringify(this._hash.posts))
fs.writeFileSync(`${dst}/hash/slides.json`, JSON.stringify(this._hash.slides))
/**
* Emit header
*/
console.log('Emitting header')
fs.ensureDirSync(`${dst}/header`)
fs.writeFileSync(`${dst}/header/posts.json`, JSON.stringify(this._header.posts))
fs.writeFileSync(`${dst}/header/slides.json`, JSON.stringify(this._header.slides))
/**
* Emit tag
*/
console.log('Emitting tag')
fs.ensureDirSync(`${dst}/tag`)
fs.writeFileSync(`${dst}/tag/posts.json`, JSON.stringify(this._tag.posts))
/**
* Emit posts
*/
console.log('Emitting blog entries')
for (const [p, data] of Object.entries(this._data.posts)) {
fs.ensureFileSync(`${dst}/teaser/${p}`)
fs.ensureFileSync(`${dst}/full/${p}`)
fs.writeFileSync(`${dst}/teaser/${p}`, data.teaser)
fs.writeFileSync(`${dst}/full/${p}`, data.full)
}
/**
* Emit slides
*/
console.log('Emitting slides')
for (const [p, data] of Object.entries(this._data.slides)) {
fs.ensureFileSync(`${dst}/slides/${p}`)
fs.writeFileSync(`${dst}/slides/${p}`, data.full)
}
}
}
if (typeof require !== 'undefined' && require.main === module) {
new ApiBuilder().emit()
}
View File
File renamed without changes.
-5
View File
@@ -1,5 +0,0 @@
module.exports = {
plugins: {
autoprefixer: {}
}
}
Loaded 100 of 154 files, more files were not shown because too many files have changed in this diff. Show more